diff --git a/.golangci.yml b/.golangci.yml
index cdefececab..da2c7235f5 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -19,31 +19,36 @@ run:
- release
- integration
- # which dirs to skip: they won't be analyzed;
- # can use regexp here: generated.*, regexp is applied on full path;
- # default value is empty list, but next dirs are always skipped independently
- # from this option's value:
- # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
- skip-dirs:
- - ^vendor$
- - ^build$
- - ^pkg\/eks\/mocks$
-
- # which files to skip: they will be analyzed, but issues from them
- # won't be reported. Default value is empty list, but there is
- # no need to include all autogenerated files, we confidently recognize
- # autogenerated files. If it's not please let us know.
- skip-files:
- # - ".*\\.my\\.go$"
- # - lib/bad.go
- - ^pkg\/nodebootstrap\/assets.go
- - .*\/export_test.go
- - ^pkg\/cfn\/builder\/fakes\/fake_cfn_template.go
-
# output configuration options
output:
- # colored-line-number|line-number|json|tab|checkstyle, default is "colored-line-number"
- format: tab
+ # The formats used to render issues.
+ # Formats:
+ # - `colored-line-number`
+ # - `line-number`
+ # - `json`
+ # - `colored-tab`
+ # - `tab`
+ # - `html`
+ # - `checkstyle`
+ # - `code-climate`
+ # - `junit-xml`
+ # - `junit-xml-extended`
+ # - `github-actions`
+ # - `teamcity`
+ # - `sarif`
+ # Output path can be either `stdout`, `stderr` or path to the file to write to.
+ #
+ # For the CLI flag (`--out-format`), multiple formats can be specified by separating them by comma.
+ # The output can be specified for each of them by separating format name and path by colon symbol.
+ # Example: "--out-format=checkstyle:report.xml,json:stdout,colored-line-number"
+ # The CLI flag (`--out-format`) override the configuration file.
+ #
+ # Default:
+ # formats:
+ # - format: colored-line-number
+ # path: stdout
+ formats:
+ - format: tab
# print lines of code with issue, default is true
print-issued-lines: true
@@ -166,6 +171,31 @@ issues:
- linters: [golint]
text: "should not use dot imports|don't use an underscore in package name"
+ # Which dirs to exclude: issues from them won't be reported.
+ # Can use regexp here: `generated.*`, regexp is applied on full path,
+ # including the path prefix if one is set.
+ # Default dirs are skipped independently of this option's value (see exclude-dirs-use-default).
+ # "/" will be replaced by current OS file path separator to properly work on Windows.
+ # Default: []
+ exclude-dirs:
+ - ^vendor$
+ - ^build$
+ - ^pkg\/eks\/mocks$
+ - ^goformation$
+
+ # Which files to exclude: they will be analyzed, but issues from them won't be reported.
+ # There is no need to include all autogenerated files,
+ # we confidently recognize autogenerated files.
+ # If it's not, please let us know.
+ # "/" will be replaced by current OS file path separator to properly work on Windows.
+ # Default: []
+ exclude-files:
+ # - ".*\\.my\\.go$"
+ # - lib/bad.go
+ - ^pkg\/nodebootstrap\/assets.go
+ - .*\/export_test.go
+ - ^pkg\/cfn\/builder\/fakes\/fake_cfn_template.go
+
linters:
disable-all: true
enable:
diff --git a/ATTRIBUTIONS.md b/ATTRIBUTIONS.md
index 5ce8f58ba6..afc30caaac 100644
--- a/ATTRIBUTIONS.md
+++ b/ATTRIBUTIONS.md
@@ -80,7 +80,6 @@ License version 2.0, we include the full text of the package's License below.
* `github.com/tj/assert`
* `github.com/vburenin/ifacemaker`
* `github.com/vektra/mockery/v2`
-* `github.com/weaveworks/goformation/v4`
* `github.com/weaveworks/schemer`
* `github.com/xgfone/netaddr`
* `golang.org/x/crypto`
@@ -16962,27 +16961,6 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-### github.com/weaveworks/goformation/v4
-
-Apache License version 2.0
-
-Subdependencies:
-* `github.com/awslabs/goformation/v4`
-* `github.com/imdario/mergo`
-* `github.com/onsi/ginkgo`
-* `github.com/onsi/gomega`
-* `github.com/sanathkr/go-yaml`
-* `github.com/sanathkr/yaml`
-* `github.com/stretchr/testify`
-* `github.com/xeipuuv/gojsonpointer`
-* `github.com/xeipuuv/gojsonreference`
-* `github.com/xeipuuv/gojsonschema`
-
-#### github.com/awslabs/goformation/v4
-
-Apache License version 2.0
-
-
#### github.com/onsi/ginkgo
diff --git a/go.mod b/go.mod
index 4831470b6d..25bdfafb31 100644
--- a/go.mod
+++ b/go.mod
@@ -68,9 +68,9 @@ require (
github.com/tj/assert v0.0.3
github.com/vburenin/ifacemaker v1.2.1
github.com/vektra/mockery/v2 v2.38.0
- github.com/weaveworks/goformation/v4 v4.10.2-0.20241201182214-a53d427b2c56
github.com/weaveworks/schemer v0.0.0-20230525114451-47139fe25848
github.com/xgfone/netaddr v0.5.1
+ goformation/v4 v4.0.0
golang.org/x/crypto v0.22.0
golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc
golang.org/x/oauth2 v0.18.0
@@ -465,3 +465,6 @@ replace (
// Ensure k8s dependencies are also pinned accordingly
replace github.com/acomagu/bufpipe => github.com/acomagu/bufpipe v1.0.4
+
+// Use a local fork of goformation
+replace goformation/v4 => ./goformation
diff --git a/go.sum b/go.sum
index d2532e9378..643001319b 100644
--- a/go.sum
+++ b/go.sum
@@ -1813,8 +1813,6 @@ github.com/vektra/mockery/v2 v2.38.0 h1:I0LBuUzZHqAU4d1DknW0DTFBPO6n8TaD38WL2KJf
github.com/vektra/mockery/v2 v2.38.0/go.mod h1:diB13hxXG6QrTR0ol2Rk8s2dRMftzvExSvPDKr+IYKk=
github.com/voxelbrain/goptions v0.0.0-20180630082107-58cddc247ea2 h1:txplJASvd6b/hrE0s/Ixfpp2cuwH9IO9oZBAN9iYa4A=
github.com/voxelbrain/goptions v0.0.0-20180630082107-58cddc247ea2/go.mod h1:DGCIhurYgnLz8J9ga1fMV/fbLDyUvTyrWXVWUIyJon4=
-github.com/weaveworks/goformation/v4 v4.10.2-0.20241201182214-a53d427b2c56 h1:9iBSXXEXMvH9doiIOETQiV6138915L2XFJD64pJcSKA=
-github.com/weaveworks/goformation/v4 v4.10.2-0.20241201182214-a53d427b2c56/go.mod h1:3c2tyJmoge5qTS4PXS0niVJxR0YzroIBsts3dQI3EdI=
github.com/weaveworks/schemer v0.0.0-20230525114451-47139fe25848 h1:I7S+IHZIU49skVgTNArf9bIdy07mCn1Z0zv1r07ROws=
github.com/weaveworks/schemer v0.0.0-20230525114451-47139fe25848/go.mod h1:y8Luzq6JDsYVoIV0QAlnvIiq8bSaap0myMjWKyzVFTY=
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
diff --git a/goformation/.gitignore b/goformation/.gitignore
new file mode 100644
index 0000000000..4f885c4cc2
--- /dev/null
+++ b/goformation/.gitignore
@@ -0,0 +1,4 @@
+.idea
+.vscode
+debug
+debug.test
diff --git a/goformation/AUTHORS.md b/goformation/AUTHORS.md
new file mode 100644
index 0000000000..0f4db2ed27
--- /dev/null
+++ b/goformation/AUTHORS.md
@@ -0,0 +1,35 @@
+# Authors
+
+This list is sorted by the number of commits per contributor in _descending_ order.
+
+Avatar|Contributor|Contributions
+:-:|---|:-:
+ |[@PaulMaddox](https://github.com/PaulMaddox)|274
+ |[@goformation](https://github.com/goformation)|40
+ |[@grahamjenson](https://github.com/grahamjenson)|18
+ |[@semantic-release-bot](https://github.com/semantic-release-bot)|15
+ |[@pesama](https://github.com/pesama)|12
+ |[@parsnips](https://github.com/parsnips)|8
+ |[@clareliguori](https://github.com/clareliguori)|7
+ |[@sanathkr](https://github.com/sanathkr)|7
+ |[@resios](https://github.com/resios)|7
+ |[@neoandroid](https://github.com/neoandroid)|3
+ |[@stilvoid](https://github.com/stilvoid)|3
+ |[@evantorrie](https://github.com/evantorrie)|3
+ |[@aws-goformation](https://github.com/aws-goformation)|2
+ |[@majasb](https://github.com/majasb)|2
+ |[@sam-goodwin](https://github.com/sam-goodwin)|2
+ |[@adamchainz](https://github.com/adamchainz)|1
+ |[@billyshambrook](https://github.com/billyshambrook)|1
+ |[@statik](https://github.com/statik)|1
+ |[@lsuss](https://github.com/lsuss)|1
+ |[@michaelansel](https://github.com/michaelansel)|1
+ |[@nija-at](https://github.com/nija-at)|1
+ |[@pedrofaria](https://github.com/pedrofaria)|1
+ |[@rjlohan](https://github.com/rjlohan)|1
+ |[@manuel-trejo-rico](https://github.com/manuel-trejo-rico)|1
+ |[@rtim75](https://github.com/rtim75)|1
+
+---
+
+Auto-generated by [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2019-10-27.
diff --git a/goformation/CHANGELOG.md b/goformation/CHANGELOG.md
new file mode 100644
index 0000000000..40b2ea4851
--- /dev/null
+++ b/goformation/CHANGELOG.md
@@ -0,0 +1,397 @@
+# GoFormation Versioning Changelog
+
+## [4.15.5](https://github.com/awslabs/goformation/compare/v4.15.4...v4.15.5) (2020-11-06)
+
+
+### Bug Fixes
+
+* **schema:** CloudFormation Updates ([#331](https://github.com/awslabs/goformation/issues/331)) ([12f9c83](https://github.com/awslabs/goformation/commit/12f9c835cbd9b980e06e30c458f95b14e16a3771))
+
+## [4.15.4](https://github.com/awslabs/goformation/compare/v4.15.3...v4.15.4) (2020-11-01)
+
+
+### Bug Fixes
+
+* **schema:** CloudFormation Updates ([#330](https://github.com/awslabs/goformation/issues/330)) ([4070319](https://github.com/awslabs/goformation/commit/40703191771425b3519128027478cf740d10f2d9))
+
+## [4.15.3](https://github.com/awslabs/goformation/compare/v4.15.2...v4.15.3) (2020-10-23)
+
+
+### Bug Fixes
+
+* **schema:** CloudFormation Updates ([#329](https://github.com/awslabs/goformation/issues/329)) ([4c1362b](https://github.com/awslabs/goformation/commit/4c1362bac14a3d6fc2cebd56eddcaf440228a4e9))
+
+## [4.15.2](https://github.com/awslabs/goformation/compare/v4.15.1...v4.15.2) (2020-10-11)
+
+
+### Bug Fixes
+
+* **schema:** CloudFormation Updates ([#320](https://github.com/awslabs/goformation/issues/320)) ([49879b4](https://github.com/awslabs/goformation/commit/49879b45f79dc9880071facd32d76cc4bf0570eb))
+
+## [4.15.1](https://github.com/awslabs/goformation/compare/v4.15.0...v4.15.1) (2020-10-11)
+
+
+### Bug Fixes
+
+* **intrinsics:** Join function to allow to use parameters of type `List<>` ([#309](https://github.com/awslabs/goformation/issues/309)) ([6cc1cd3](https://github.com/awslabs/goformation/commit/6cc1cd329047227674caaf1b546066e3043c6616))
+
+# [4.15.0](https://github.com/awslabs/goformation/compare/v4.14.0...v4.15.0) (2020-08-16)
+
+
+### Features
+
+* **schema:** dummy commit - trigger CI for schema update ([66bc344](https://github.com/awslabs/goformation/commit/66bc344ed6a17a613abbb4d217afcc0b8ea02b48))
+
+# [4.14.0](https://github.com/awslabs/goformation/compare/v4.13.1...v4.14.0) (2020-07-26)
+
+
+### Features
+
+* **schema:** Add support for Template Outputs ([#291](https://github.com/awslabs/goformation/issues/291)) ([6875c50](https://github.com/awslabs/goformation/commit/6875c50d00d8e1af71d9bad5788446b29ab03513))
+
+## [4.13.1](https://github.com/awslabs/goformation/compare/v4.13.0...v4.13.1) (2020-07-26)
+
+
+### Bug Fixes
+
+* **schema:** Add Change and Update policies to the Unmarshal method ([#288](https://github.com/awslabs/goformation/issues/288)) ([989b05f](https://github.com/awslabs/goformation/commit/989b05fa78cb9e72f6d59298fb8bb287612f322e))
+
+# [4.13.0](https://github.com/awslabs/goformation/compare/v4.12.0...v4.13.0) (2020-07-26)
+
+
+### Features
+
+* **schema:** adding AWS::Serverless::StateMachine and FileSystemConfigs to Function ([#284](https://github.com/awslabs/goformation/issues/284)) ([d2d23ca](https://github.com/awslabs/goformation/commit/d2d23cafba606a8ea40649cc666073fa0e2d5ad3))
+
+# [4.12.0](https://github.com/awslabs/goformation/compare/v4.11.0...v4.12.0) (2020-07-21)
+
+
+### Features
+
+* **schema:** Add new DynamoDBEvent options ([#289](https://github.com/awslabs/goformation/issues/289)) ([741228d](https://github.com/awslabs/goformation/commit/741228d6923ea10f1d22a901bbddf106d5c71cd7))
+
+# [4.11.0](https://github.com/awslabs/goformation/compare/v4.10.1...v4.11.0) (2020-06-28)
+
+
+### Features
+
+* **schema:** CFN Updates ([#287](https://github.com/awslabs/goformation/issues/287)) ([9778479](https://github.com/awslabs/goformation/commit/97784795e35035b71b946d0ca69ef4d380d3b4a8))
+
+## [4.10.1](https://github.com/awslabs/goformation/compare/v4.10.0...v4.10.1) (2020-06-22)
+
+
+### Bug Fixes
+
+* **generator:** update the generation making it easier to fix CF schema errors to generate ([#285](https://github.com/awslabs/goformation/issues/285)) ([6751e5b](https://github.com/awslabs/goformation/commit/6751e5b6ecbe1daee45171528cb1300efc6fb300))
+
+# [4.10.0](https://github.com/awslabs/goformation/compare/v4.9.0...v4.10.0) (2020-06-22)
+
+
+### Features
+
+* **schema:** Serverless eventbridgeruleevent ([#279](https://github.com/awslabs/goformation/issues/279)) ([2a9e572](https://github.com/awslabs/goformation/commit/2a9e572313485023dc4e57cb8facda72a3571307))
+
+# [4.9.0](https://github.com/awslabs/goformation/compare/v4.8.0...v4.9.0) (2020-06-22)
+
+
+### Features
+
+* **schema:** Add OpenApiVersion field to serverless Api ([#281](https://github.com/awslabs/goformation/issues/281)) ([bccc71b](https://github.com/awslabs/goformation/commit/bccc71b90531fb6bba8465b578fc2accc4dc6e34))
+
+# [4.8.0](https://github.com/awslabs/goformation/compare/v4.7.1...v4.8.0) (2020-04-04)
+
+
+### Features
+
+* **schema:** Add UpdateReplacePolicy to the templates and the policies so that it is generated for every resource ([#272](https://github.com/awslabs/goformation/issues/272)) ([696c515](https://github.com/awslabs/goformation/commit/696c515bcbb07105683a328ef0e161d62146114b))
+
+## [4.7.1](https://github.com/awslabs/goformation/compare/v4.7.0...v4.7.1) (2020-04-04)
+
+
+### Bug Fixes
+
+* **intrinsics:** change Fn::Sub to allow AWS pseudo parameters ([#275](https://github.com/awslabs/goformation/issues/275)) ([5a48c27](https://github.com/awslabs/goformation/commit/5a48c27630b945dcdc33133defd0241f898ccc52)), closes [#274](https://github.com/awslabs/goformation/issues/274) [#202](https://github.com/awslabs/goformation/issues/202)
+
+# [4.7.0](https://github.com/awslabs/goformation/compare/v4.6.0...v4.7.0) (2020-02-28)
+
+
+### Features
+
+* **schema:** Added CloudWatch Logs event for SAM ([#271](https://github.com/awslabs/goformation/issues/271)) ([fedb013](https://github.com/awslabs/goformation/commit/fedb013e3b19ab1242cf8e3ae28a40240103d9b1))
+
+# [4.6.0](https://github.com/awslabs/goformation/compare/v4.5.1...v4.6.0) (2020-02-22)
+
+
+### Features
+
+* **schema:** CloudFormation Updates (2020-02-22) ([#269](https://github.com/awslabs/goformation/issues/269)) ([ffd88a6](https://github.com/awslabs/goformation/commit/ffd88a6a9b0349853517e811169ee66804d79a2e))
+
+## [4.5.1](https://github.com/awslabs/goformation/compare/v4.5.0...v4.5.1) (2020-02-14)
+
+
+### Bug Fixes
+
+* **schema, parser:** change Transform json schema to allow multiple macros ([#268](https://github.com/awslabs/goformation/issues/268)) ([072fc74](https://github.com/awslabs/goformation/commit/072fc74628c8ee9a603c2e502ac458af916afc07)), closes [#267](https://github.com/awslabs/goformation/issues/267)
+
+# [4.5.0](https://github.com/awslabs/goformation/compare/v4.4.0...v4.5.0) (2020-02-13)
+
+
+### Features
+
+* **schema:** CloudFormation Updates (2020-02-13) ([#266](https://github.com/awslabs/goformation/issues/266)) ([bc75922](https://github.com/awslabs/goformation/commit/bc75922eb604d6e43f290912234a644c4d7584b5))
+
+# [4.4.0](https://github.com/awslabs/goformation/compare/v4.3.0...v4.4.0) (2020-01-30)
+
+
+### Features
+
+* **schema:** CloudFormation Updates (2020-01-30) ([#263](https://github.com/awslabs/goformation/issues/263)) ([fda2d31](https://github.com/awslabs/goformation/commit/fda2d31f384eabbbf432ad1ee77ff8db6d0f2e73))
+
+# [4.3.0](https://github.com/awslabs/goformation/compare/v4.2.0...v4.3.0) (2020-01-30)
+
+
+### Features
+
+* **schema:** add CloudFormation parameter type ([#259](https://github.com/awslabs/goformation/issues/259)) ([27fe204](https://github.com/awslabs/goformation/commit/27fe204f7addb8cb1bd6e977b0f717c04b09364a))
+
+# [4.2.0](https://github.com/awslabs/goformation/compare/v4.1.0...v4.2.0) (2020-01-29)
+
+
+### Features
+
+* **parser:** Add support for Conditions ([#260](https://github.com/awslabs/goformation/issues/260)) ([1b00f17](https://github.com/awslabs/goformation/commit/1b00f17a33109023ad8a4471812448dc1d0db776))
+
+# [4.1.0](https://github.com/awslabs/goformation/compare/v4.0.3...v4.1.0) (2019-12-09)
+
+
+### Features
+
+* **schema:** CloudFormation Updates (2019-12-09) ([#251](https://github.com/awslabs/goformation/issues/251)) ([a23ba41](https://github.com/awslabs/goformation/commit/a23ba416a24649c7296a0bc507c7940d9082ea30))
+
+## [4.0.3](https://github.com/awslabs/goformation/compare/v4.0.2...v4.0.3) (2019-11-30)
+
+
+### Bug Fixes
+
+* **schema:** AWS::Serverless::Function S3 notification filters ([#249](https://github.com/awslabs/goformation/issues/249)) ([a50ef92](https://github.com/awslabs/goformation/commit/a50ef9291026420ea8a5e74790fc49b8a9c7fd85)), closes [#74](https://github.com/awslabs/goformation/issues/74)
+
+## [4.0.2](https://github.com/awslabs/goformation/compare/v4.0.1...v4.0.2) (2019-11-30)
+
+
+### Bug Fixes
+
+* **schema:** AWS::Serverless:Api.Cors ([#246](https://github.com/awslabs/goformation/issues/246)) ([62fd56a](https://github.com/awslabs/goformation/commit/62fd56a62586c65722f99dbd4c8308ab42fcfc1d)), closes [#244](https://github.com/awslabs/goformation/issues/244)
+
+## [4.0.1](https://github.com/awslabs/goformation/compare/v4.0.0...v4.0.1) (2019-11-30)
+
+
+### Bug Fixes
+
+* **schema:** AWS::Serverless::Api.MethodSettings should be a list ([a1f340a](https://github.com/awslabs/goformation/commit/a1f340a07e0ba4f21b8655da2c4d608849278901)), closes [#242](https://github.com/awslabs/goformation/issues/242)
+
+# [4.0.0](https://github.com/awslabs/goformation/compare/v3.1.0...v4.0.0) (2019-11-30)
+
+
+* Fix method conflicts (#245) ([d0b0a8b](https://github.com/awslabs/goformation/commit/d0b0a8bc322e27f72e840c9847f3c822d4efa933)), closes [#245](https://github.com/awslabs/goformation/issues/245) [#241](https://github.com/awslabs/goformation/issues/241) [#294](https://github.com/awslabs/goformation/issues/294)
+
+
+### 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.
+
+# [3.1.0](https://github.com/awslabs/goformation/compare/v3.0.1...v3.1.0) (2019-10-29)
+
+
+### Features
+
+* **schema:** AWS CloudFormation Update (2019-10-29) ([#239](https://github.com/awslabs/goformation/issues/239)) ([7ff8499](https://github.com/awslabs/goformation/commit/7ff84990c89e11815d22e06d377e110ae422cc17))
+
+## [3.0.1](https://github.com/awslabs/goformation/compare/v3.0.0...v3.0.1) (2019-10-29)
+
+
+### Bug Fixes
+
+* **schema:** Ordered cloudformation/all.go file ([#238](https://github.com/awslabs/goformation/issues/238)) ([91254f3](https://github.com/awslabs/goformation/commit/91254f30925b89db5e79604d812a1ee9279267bd))
+
+# [3.0.0](https://github.com/awslabs/goformation/compare/v2.3.1...v3.0.0) (2019-10-27)
+
+
+* Group CloudFormation resources by AWS service name (#234) ([d0749e6](https://github.com/awslabs/goformation/commit/d0749e6a8fc5e7b0ddc301aef0170e12c7dc459c)), closes [#234](https://github.com/awslabs/goformation/issues/234)
+
+
+### BREAKING CHANGES
+
+* 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/v4/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/
+
+# [2.3.0](https://github.com/awslabs/goformation/compare/v2.2.2...v2.3.0) (2019-03-20)
+
+
+### Bug Fixes
+
+* **parser:** Unmarshalling of resources with polymorphic properties (like S3 events) now works ([#188](https://github.com/awslabs/goformation/issues/188)) ([8eff90a](https://github.com/awslabs/goformation/commit/8eff90a))
+
+
+### Features
+
+* **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/awslabs/goformation/issues/191)) ([38f0187](https://github.com/awslabs/goformation/commit/38f0187))
+* **schema:** AWS CloudFormation Update (2019-03-15) ([#189](https://github.com/awslabs/goformation/issues/189)) ([8b332a4](https://github.com/awslabs/goformation/commit/8b332a4))
+
+## [2.2.2](https://github.com/awslabs/goformation/compare/v2.2.1...v2.2.2) (2019-03-13)
+
+
+### Bug Fixes
+
+* **parser:** Select the correct AWS CloudFormation resource type based on similarity ([#183](https://github.com/awslabs/goformation/issues/183)) ([5749b23](https://github.com/awslabs/goformation/commit/5749b23))
+
+## [2.2.1](https://github.com/awslabs/goformation/compare/v2.2.0...v2.2.1) (2019-03-10)
+
+
+### Bug Fixes
+
+* **parser:** fix invalid YAML template error for custom tag marshaler ([#177](https://github.com/awslabs/goformation/issues/177)) ([035d438](https://github.com/awslabs/goformation/commit/035d438))
+
+# [2.2.0](https://github.com/awslabs/goformation/compare/v2.1.5...v2.2.0) (2019-03-10)
+
+
+### Features
+
+* **schema:** regenerated resources to apply SAM schema fixes from previous PR ([b30c019](https://github.com/awslabs/goformation/commit/b30c019))
+
+## [2.1.5](https://github.com/awslabs/goformation/compare/v2.1.4...v2.1.5) (2019-03-10)
+
+
+### Bug Fixes
+
+* **parser:** do not break if a non-intrinsic `Condition` statement is found in a YAML template ([#169](https://github.com/awslabs/goformation/issues/169)) ([e4671e3](https://github.com/awslabs/goformation/commit/e4671e3))
+
+## [2.1.4](https://github.com/awslabs/goformation/compare/v2.1.3...v2.1.4) (2019-03-10)
+
+
+### Bug Fixes
+
+* **schema:** fixed incorrect field type for AWS::Serverless::Application.Location ([#167](https://github.com/awslabs/goformation/issues/167)) ([3f1817b](https://github.com/awslabs/goformation/commit/3f1817b))
+
+## [2.1.3](https://github.com/awslabs/goformation/compare/v2.1.2...v2.1.3) (2019-03-10)
+
+
+### Bug Fixes
+
+* **schema:** maps within YAML templates should allow unknown fields/properties ([3b6e359](https://github.com/awslabs/goformation/commit/3b6e359))
+
+## [2.1.2](https://github.com/awslabs/goformation/compare/v2.1.1...v2.1.2) (2019-03-10)
+
+
+### Bug Fixes
+
+* **CI:** fix broken GitHub PR integration ([#185](https://github.com/awslabs/goformation/issues/185)) ([d42d00a](https://github.com/awslabs/goformation/commit/d42d00a))
+
+## [2.1.1](https://github.com/awslabs/goformation/compare/v2.1.0...v2.1.1) (2019-03-10)
+
+
+### Bug Fixes
+
+* **CI:** only run semantic-release on push-to-master (not on pull requests) ([#184](https://github.com/awslabs/goformation/issues/184)) ([c83945a](https://github.com/awslabs/goformation/commit/c83945a))
+
+# [2.1.0](https://github.com/awslabs/goformation/compare/v2.0.0...v2.1.0) (2019-03-10)
+
+
+### Features
+
+* **CI:** auto-generate AUTHORS.md file ([b37af7b](https://github.com/awslabs/goformation/commit/b37af7b))
+
+# Semantic Versioning Changelog
+
+# [2.0.0](https://github.com/awslabs/goformation/compare/v1.4.1...v2.0.0) (2019-03-10)
+
+
+### Code Refactoring
+
+* **generator:** moving resources and policies into their own packages ([#161](https://github.com/awslabs/goformation/issues/161)) ([03a0123](https://github.com/awslabs/goformation/commit/03a0123))
+
+
+### BREAKING CHANGES
+
+* **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{}
+
+## [1.4.1](https://github.com/awslabs/goformation/compare/v1.4.0...v1.4.1) (2019-03-10)
+
+
+### Bug Fixes
+
+* **spec:** corrected AWS::Serverless::Api.Auth.Authorizers to be of type JSON rather than string ([#164](https://github.com/awslabs/goformation/issues/164)) ([4cf1bee](https://github.com/awslabs/goformation/commit/4cf1bee))
+
+# [1.4.0](https://github.com/awslabs/goformation/compare/v1.3.0...v1.4.0) (2019-03-09)
+
+
+### Features
+
+* **parser:** Default to parsing as YAML unless the filename ends in .json ([#176](https://github.com/awslabs/goformation/issues/176)) ([42e7146](https://github.com/awslabs/goformation/commit/42e7146))
+
+# [1.3.0](https://github.com/awslabs/goformation/compare/v1.2.1...v1.3.0) (2019-03-09)
+
+
+### Bug Fixes
+
+* **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/awslabs/goformation/commit/7ae2a32))
+* **CI:** Update TravisCI configuration based on https://github.com/se… ([#180](https://github.com/awslabs/goformation/issues/180)) ([88e1e85](https://github.com/awslabs/goformation/commit/88e1e85))
+* **CI:** Update TravisCI configuration for semantic-release to use jobs ([f6c2fee](https://github.com/awslabs/goformation/commit/f6c2fee))
+
+
+### Features
+
+* Added semantic-release CI setup ([a9b368a](https://github.com/awslabs/goformation/commit/a9b368a))
+* Added semantic-release configuration file ([3b25fdb](https://github.com/awslabs/goformation/commit/3b25fdb))
diff --git a/goformation/CODE_OF_CONDUCT.md b/goformation/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000000..a95bc6820b
--- /dev/null
+++ b/goformation/CODE_OF_CONDUCT.md
@@ -0,0 +1,46 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at goformation@amazon.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/4/
\ No newline at end of file
diff --git a/goformation/CONTRIBUTING.md b/goformation/CONTRIBUTING.md
new file mode 100644
index 0000000000..f26de00552
--- /dev/null
+++ b/goformation/CONTRIBUTING.md
@@ -0,0 +1,204 @@
+# Contributing to GoFormation
+
+✨ Thanks for contributing to **GoFormation**! ✨
+
+As a contributor, here are the guidelines we would like you to follow:
+- [Code of conduct](#code-of-conduct)
+- [Submitting a Pull Request](#submitting-a-pull-request)
+- [Coding rules](#coding-rules)
+ - [Source code](#source-code)
+ - [Commit message guidelines](#commit-message-guidelines)
+ - [Atomic commits](#atomic-commits)
+ - [Commit message format](#commit-message-format)
+ - [Revert](#revert)
+ - [Type](#type)
+ - [Subject](#subject)
+ - [Body](#body)
+ - [Footer](#footer)
+ - [Examples](#examples)
+- [Working with the code](#working-with-the-code)
+ - [Set up the workspace](#set-up-the-workspace)
+ - [Tests](#tests)
+ - [Commits](#commits)
+ - [Generating AWS CloudFormation Resources](#generating-aws-cloudformation-resources)
+
+We also recommend that you read [How to Contribute to Open Source](https://opensource.guide/how-to-contribute).
+
+## Code of conduct
+
+Help us keep **GoFormation** open and inclusive. Please read and follow our [Code of conduct](CODE_OF_CONDUCT.md).
+
+## Submitting a Pull Request
+
+Good pull requests, whether patches, improvements, or new features, are a fantastic help. They should remain focused in scope and avoid containing unrelated commits.
+
+**Please ask first** before embarking on any significant pull requests (e.g. implementing features, refactoring code), otherwise you risk spending a lot of time working on something that the project's developers might not want to merge into the project.
+
+If you have never created a pull request before, welcome 🎉 😄. [Here is a great tutorial](https://opensource.guide/how-to-contribute/#opening-a-pull-request) on how to send one :)
+
+Here is a summary of the steps to follow:
+
+1. [Set up the workspace](#set-up-the-workspace)
+2. If you cloned a while ago, get the latest changes from upstream and update dependencies:
+```bash
+$ git checkout master
+$ git pull upstream master
+```
+3. Create a new topic branch (off the main project development branch) to contain your feature, change, or fix:
+```bash
+$ git checkout -b
+```
+4. Make your code changes, following the [Coding rules](#coding-rules)
+5. Push your topic branch up to your fork:
+```bash
+$ git push origin
+```
+6. [Open a Pull Request](https://help.github.com/articles/creating-a-pull-request/#creating-the-pull-request) with a clear title and description.
+
+**Tips**:
+- For ambitious tasks, open a Pull Request as soon as possible with the `[WIP]` prefix in the title, in order to get feedback and help from the community.
+- [Allow GoFormation maintainers to make changes to your Pull Request branch](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork). This way, we can rebase it and make some minor changes if necessary.
+
+## Coding rules
+
+### Source code
+
+To ensure consistency and quality throughout the source code, all code modifications must have:
+- A [test](#tests) for every possible case introduced by your code change
+- [Valid commit message(s)](#commit-message-guidelines)
+- Documentation for new features
+- Updated documentation for modified features
+
+### Commit message guidelines
+
+#### Atomic commits
+
+If possible, make [atomic commits](https://en.wikipedia.org/wiki/Atomic_commit), which means:
+- a commit should contain exactly one self-contained functional change
+- a functional change should be contained in exactly one commit
+- a commit should not create an inconsistent state (such as test errors, linting errors, partial fix, feature with documentation etc...)
+
+A complex feature can be broken down into multiple commits as long as each one maintains a consistent state and consists of a self-contained change.
+
+#### Commit message format
+
+Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**:
+
+```commit
+():
+
+
+
+
+```
+
+The **header** is mandatory and the **scope** of the header is optional.
+
+The **footer** can contain a [closing reference to an issue](https://help.github.com/articles/closing-issues-via-commit-messages).
+
+#### Revert
+
+If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body it should say: `This reverts commit .`, where the hash is the SHA of the commit being reverted.
+
+#### Type
+
+The type must be one of the following:
+
+| Type | Description |
+| ------------ | ----------------------------------------------------------------------------------------------------------- |
+| **build** | Changes that affect the build system or external dependencies (go) |
+| **ci** | Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) |
+| **docs** | Documentation only changes |
+| **feat** | A new feature |
+| **fix** | A bug fix |
+| **perf** | A code change that improves performance |
+| **refactor** | A code change that neither fixes a bug nor adds a feature |
+| **style** | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) |
+| **test** | Adding missing tests or correcting existing tests |
+
+#### Subject
+
+The subject contains succinct description of the change:
+
+- use the imperative, present tense: "change" not "changed" nor "changes"
+- don't capitalize first letter
+- no dot (.) at the end
+
+#### Body
+Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes".
+The body should include the motivation for the change and contrast this with previous behavior.
+
+#### Footer
+The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit **Closes**.
+
+**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.
+
+#### Examples
+
+```commit
+`fix(pencil): stop graphite breaking when too much pressure applied`
+```
+
+```commit
+`feat(pencil): add 'graphiteWidth' option`
+
+Fix #42
+```
+
+```commit
+perf(pencil): remove graphiteWidth option`
+
+BREAKING CHANGE: The graphiteWidth option has been removed.
+
+The default graphite width of 10mm is always used for performance reasons.
+```
+
+## Working with the code
+
+### Set up the workspace
+
+[Fork](https://guides.github.com/activities/forking/#fork) the project, [clone](https://guides.github.com/activities/forking/#clone) your fork, configure the remotes and install the dependencies:
+
+```bash
+# Clone your fork of the repo into the current directory
+$ git clone https://github.com//goformation
+# Navigate to the newly cloned directory
+$ cd goformation
+# Assign the original repo to a remote called "upstream"
+$ git remote add upstream https://github.com/awslabs/goformation
+```
+
+### Tests
+
+Before pushing your code changes make sure all **tests pass**.
+
+```bash
+$ go test ./...
+```
+
+### Commits
+
+The [GoFormation](https://github.com/awslabs/goformation) repository uses [semantic-release](https://github.com/semantic-release/semantic-release) to automatically generate CHANGELOG entries, and cut releases based on commit messages. It's important to follow the [commit message guidelines](#commit-message-guidelines) so that this process continues to work.
+
+To make things easier, you can use a tool like [Commitizen CLI](https://github.com/commitizen/cz-cli) to help you craft your commit messages.
+
+After staging your changes with `git add`, run `npx git-cz` to start the interactive commit message CLI.
+
+### Generating AWS CloudFormation Resources
+
+While you work on features, you may want to regenerate the CloudFormation resources in GoFormation. To do this, run:
+
+```
+$ go generate
+GoFormation Resource Generator
+Downloading cloudformation specification from https://d1uauaxba7bl26.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json
+Downloading sam specification from file://generate/sam-2016-10-31.json
+Updated the following AWS CloudFormation resources:
+ - AWS::Serverless::Application
+ - AWS::SNS::Topic
+Processed 1161 resources
+
+```
+You will see a summary of the resources that have been updated, and for more detailed changes you can just run `git diff`.
+
+If your contributions to GoFormation include regenerating resources (e.g. you make a change to the resource template, which modifies all resources), please make sure to run the `go generate` in a different git commit. This will make the pull request review process a lot easier for everybody involved :)
\ No newline at end of file
diff --git a/goformation/LICENSE b/goformation/LICENSE
new file mode 100644
index 0000000000..8dada3edaf
--- /dev/null
+++ b/goformation/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright {yyyy} {name of copyright owner}
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/goformation/LOGO.md b/goformation/LOGO.md
new file mode 100644
index 0000000000..2ee15f0324
--- /dev/null
+++ b/goformation/LOGO.md
@@ -0,0 +1,10 @@
+# AWS GoFormation logo information
+
+The AWS GoFormation logo is a custom work, based on the following artworks/assets:
+
+* [Go gopher app engine color](https://commons.wikimedia.org/wiki/File:Go_gopher_app_engine_color.jpg) logo, created by [Renee French](http://reneefrench.blogspot.com/) and modified by [Pelayo Sanchez](https://github.com/pesama). Original work licensed under Creative Commons [Attribution-Share Alike 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/deed.en) license.
+
+* [Sallita](https://www.dafont.com/es/sallita.font?l[]=10&l[]=1) font used for `goformation` text, shared by Amarlettering with free license.
+
+* AWS CloudFormation logo.
+
diff --git a/goformation/NOTICE b/goformation/NOTICE
new file mode 100644
index 0000000000..595536ae35
--- /dev/null
+++ b/goformation/NOTICE
@@ -0,0 +1,2 @@
+GoFormation
+Copyright 2011-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
diff --git a/goformation/README.md b/goformation/README.md
new file mode 100644
index 0000000000..baecde0a7d
--- /dev/null
+++ b/goformation/README.md
@@ -0,0 +1,249 @@
+
+
+# AWS GoFormation
+
+  [](https://github.com/awslabs/goformation/actions)  [](http://godoc.org/github.com/awslabs/goformation)  
+
+`GoFormation` is a Go library for working with AWS CloudFormation / AWS Serverless Application Model (SAM) templates.
+- [Main features](#main-features)
+- [Installation](#installation)
+- [Usage](#usage)
+ - [Marshalling CloudFormation/SAM described with Go structs, into YAML/JSON](#marshalling-cloudformationsam-described-with-go-structs-into-yamljson)
+ - [Unmarshalling CloudFormation YAML/JSON into Go structs](#unmarshalling-cloudformation-yamljson-into-go-structs)
+- [Updating CloudFormation / SAM Resources in GoFormation](#updating-cloudformation--sam-resources-in-goformation)
+- [Advanced](#advanced)
+ - [AWS CloudFormation Intrinsic Functions](#aws-cloudformation-intrinsic-functions)
+ - [Resolving References (Ref)](#resolving-references-ref)
+- [Versioning](#versioning)
+- [Contributing](#contributing)
+
+## Main features
+
+ * Describe AWS CloudFormation and AWS SAM templates as Go objects (structs), and then turn it into JSON/YAML.
+ * Parse JSON/YAML AWS CloudFormation and AWS SAM templates and turn them into Go structs.
+ * Strongly typed Go structs generated for every AWS CloudFormation and AWS SAM resource.
+ * Automatically generated, from the published AWS CloudFormation Resource Specification.
+
+## Installation
+
+As with other Go libraries, GoFormation can be installed with `go get`.
+
+```
+$ go get github.com/awslabs/goformation/v4
+```
+
+## Usage
+
+### Marshalling CloudFormation/SAM described with Go structs, into YAML/JSON
+
+Below is an example of building a CloudFormation template programmatically, then outputting the resulting JSON
+
+```go
+package main
+
+import (
+ "fmt"
+ "strconv"
+ "time"
+
+ "github.com/awslabs/goformation/v4/cloudformation"
+ "github.com/awslabs/goformation/v4/cloudformation/sns"
+
+
+)
+
+func main() {
+
+ // Create a new CloudFormation template
+ template := cloudformation.NewTemplate()
+
+ // Create an Amazon SNS topic, with a unique name based off the current timestamp
+ template.Resources["MyTopic"] = &sns.Topic{
+ TopicName: "my-topic-" + strconv.FormatInt(time.Now().Unix(), 10),
+ }
+
+ // Create a subscription, connected to our topic, that forwards notifications to an email address
+ template.Resources["MyTopicSubscription"] = &sns.Subscription{
+ TopicArn: cloudformation.Ref("MyTopic"),
+ Protocol: "email",
+ Endpoint: "some.email@example.com",
+ }
+
+ // Let's see the JSON AWS CloudFormation template
+ j, err := template.JSON()
+ if err != nil {
+ fmt.Printf("Failed to generate JSON: %s\n", err)
+ } else {
+ fmt.Printf("%s\n", string(j))
+ }
+
+ // and also the YAML AWS CloudFormation template
+ y, err := template.YAML()
+ if err != nil {
+ fmt.Printf("Failed to generate YAML: %s\n", err)
+ } else {
+ fmt.Printf("%s\n", string(y))
+ }
+
+}
+```
+
+Would output the following JSON template:
+
+```javascript
+{
+ "AWSTemplateFormatVersion": "2010-09-09",
+ "Resources": {
+ "MyTopic": {
+ "Properties": {
+ "TopicName": "my-topic-1536878058"
+ },
+ "Type": "AWS::SNS::Topic"
+ },
+ "MyTopicSubscription": {
+ "Properties": {
+ "Endpoint": "some.email@example.com",
+ "Protocol": "email",
+ "TopicArn": {
+ "Ref": "MyTopic"
+ }
+ },
+ "Type": "AWS::SNS::Subscription"
+ }
+ }
+}
+```
+
+...and the following YAML template:
+
+```yaml
+AWSTemplateFormatVersion: 2010-09-09
+Resources:
+ MyTopic:
+ Properties:
+ TopicName: my-topic-1536878058
+ Type: AWS::SNS::Topic
+ MyTopicSubscription:
+ Properties:
+ Endpoint: some.email@example.com
+ Protocol: email
+ TopicArn:
+ Ref: MyTopic
+ Type: AWS::SNS::Subscription
+```
+
+When creating templates, you can use the following convenience functions to use [AWS CloudFormation Intrinsics](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html):
+
+ - `cloudformation.Ref(logicalName string)`
+ - `cloudformation.GetAtt(logicalName string, attribute string)`
+ - `cloudformation.ImportValue(name string)`
+ - `cloudformation.Base64(input string)`
+ - `cloudformation.CIDR(ipBlock, count, cidrBits string)`
+ - `cloudformation.FindInMap(mapName, topLevelKey, secondLevelKey string)`
+ - `cloudformation.GetAZs(region string)`
+ - `cloudformation.Join(delimiter string, values []string)`
+ - `cloudformation.Select(index string, list []string)`
+ - `cloudformation.Split(delimiter, source string)`
+ - `cloudformation.Sub(value string)`
+ - `And(conditions []string)`
+ - `Equals(value1, value2 string)`
+ - `If(value, ifEqual, ifNotEqual string)`
+ - `Not(conditions []string)`
+ - `Or(conditions []string)`
+
+### Unmarshalling CloudFormation YAML/JSON into Go structs
+
+GoFormation also works the other way - parsing JSON/YAML CloudFormation/SAM templates into Go structs.
+
+```go
+package main
+
+import (
+ "log"
+
+ "github.com/awslabs/goformation/v4"
+)
+
+func main() {
+
+ // Open a template from file (can be JSON or YAML)
+ template, err := goformation.Open("template.yaml")
+ if err != nil {
+ log.Fatalf("There was an error processing the template: %s", err)
+ }
+
+ // You can extract all resources of a certain type
+ // Each AWS CloudFormation resource is a strongly typed struct
+ functions := template.GetAllServerlessFunctionResources()
+ for name, function := range functions {
+
+ // E.g. Found a AWS::Serverless::Function named GetHelloWorld (runtime: nodejs6.10)
+ log.Printf("Found a %s named %s (runtime: %s)\n", function.AWSCloudFormationType(), name, function.Runtime)
+
+ }
+
+ // You can also search for specific resources by their logicalId
+ search := "GetHelloWorld"
+ function, err := template.GetServerlessFunctionWithName(search)
+ if err != nil {
+ log.Fatalf("Function not found")
+ }
+
+ // E.g. Found a AWS::Serverless::Function named GetHelloWorld (runtime: nodejs6.10)
+ log.Printf("Found a %s named %s (runtime: %s)\n", function.AWSCloudFormationType(), search, function.Runtime)
+
+}
+```
+
+## Updating CloudFormation / SAM Resources in GoFormation
+
+AWS GoFormation contains automatically generated Go structs for every CloudFormation/SAM resource, located in the [cloudformation/](cloudformation/) directory. These can be generated, from the latest [AWS CloudFormation Resource Specification](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html) published for `us-east-1` by just running `go generate`:
+
+```
+$ go generate
+
+Generated 587 AWS CloudFormation resources from specification v1.4.2
+Generated 17 AWS SAM resources from specification v2016-10-31
+Generated JSON Schema: schema/cloudformation.schema.json
+```
+
+The GoFormation build pipeline automatically checks for any updated AWS CloudFormation resources on a daily basis, and creates a pull request against this repository if any are found.
+
+## Advanced
+
+### AWS CloudFormation Intrinsic Functions
+
+The following [AWS CloudFormation Intrinsic Functions](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html) are supported in GoFormation:
+
+- [x] [Fn::Base64](intrinsics/fnbase64.go)
+- [x] [Fn::FindInMap](intrinsics/fnfindinmap.go)
+- [x] [Fn::Join](intrinsics/fnjoin.go)
+- [x] [Fn::Select](intrinsics/fnselect.go)
+- [x] [Fn::Split](intrinsics/fnsplit.go)
+- [x] [Fn::Sub](intrinsics/fnsub.go)
+- [x] [Ref](intrinsics/ref.go)
+- [x] [Fn::And](intrinsics/fnand.go)
+- [x] [Fn::Equals](intrinsics/fnequals.go)
+- [x] [Fn::If](intrinsics/fnif.go)
+- [x] [Fn::Not](intrinsics/fnnot.go)
+- [x] [Fn::Or](intrinsics/fnor.go)
+- [ ] Fn::GetAtt
+- [x] [Fn::GetAZs](intrinsics/fngetazs.go)
+- [ ] Fn::ImportValue
+
+Any unsupported intrinsic functions will return `nil`.
+
+#### Resolving References (Ref)
+
+When converting a YAML/JSON template to go, the intrinsic 'Ref' function as implemented will resolve all of the [pseudo parameters](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) such as `AWS::AccountId` with their default value as listed on [the bottom of this page](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html).
+
+If a reference is not a pseudo parameter, GoFormation will try to resolve it within the AWS CloudFormation template. **Currently, this implementation only searches for `Parameters` with a name that matches the ref, and returns the `Default` if it has one.**
+
+
+## Versioning
+
+This library is automatically versioned and tagged using [semantic-release](https://github.com/semantic-release/semantic-release).
+
+## Contributing
+
+Contributions and feedback are welcome! Proposals and pull requests will be considered and responded to. For more information, see the [CONTRIBUTING](CONTRIBUTING.md) file.
diff --git a/goformation/cloudformation/README.md b/goformation/cloudformation/README.md
new file mode 100644
index 0000000000..a1e31aab26
--- /dev/null
+++ b/goformation/cloudformation/README.md
@@ -0,0 +1,5 @@
+### Important
+
+All resource files in this directory are auto-generated by running 'go generate' in the repository root directory.
+
+Do not manually edit any of generated resource files
\ No newline at end of file
diff --git a/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer.go b/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer.go
new file mode 100644
index 0000000000..d6b1bd0d21
--- /dev/null
+++ b/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer.go
@@ -0,0 +1,124 @@
+package accessanalyzer
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Analyzer AWS CloudFormation Resource (AWS::AccessAnalyzer::Analyzer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html
+type Analyzer struct {
+
+ // AnalyzerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html#cfn-accessanalyzer-analyzer-analyzername
+ AnalyzerName *types.Value `json:"AnalyzerName,omitempty"`
+
+ // ArchiveRules AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html#cfn-accessanalyzer-analyzer-archiverules
+ ArchiveRules []Analyzer_ArchiveRule `json:"ArchiveRules,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html#cfn-accessanalyzer-analyzer-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-accessanalyzer-analyzer.html#cfn-accessanalyzer-analyzer-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Analyzer) AWSCloudFormationType() string {
+ return "AWS::AccessAnalyzer::Analyzer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Analyzer) MarshalJSON() ([]byte, error) {
+ type Properties Analyzer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Analyzer) UnmarshalJSON(b []byte) error {
+ type Properties Analyzer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Analyzer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer_archiverule.go b/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer_archiverule.go
new file mode 100644
index 0000000000..3ce7a2df88
--- /dev/null
+++ b/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer_archiverule.go
@@ -0,0 +1,42 @@
+package accessanalyzer
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Analyzer_ArchiveRule AWS CloudFormation Resource (AWS::AccessAnalyzer::Analyzer.ArchiveRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-archiverule.html
+type Analyzer_ArchiveRule struct {
+
+ // Filter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-archiverule.html#cfn-accessanalyzer-analyzer-archiverule-filter
+ Filter []Analyzer_Filter `json:"Filter,omitempty"`
+
+ // RuleName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-archiverule.html#cfn-accessanalyzer-analyzer-archiverule-rulename
+ RuleName *types.Value `json:"RuleName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Analyzer_ArchiveRule) AWSCloudFormationType() string {
+ return "AWS::AccessAnalyzer::Analyzer.ArchiveRule"
+}
diff --git a/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer_filter.go b/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer_filter.go
new file mode 100644
index 0000000000..5f2028e8fe
--- /dev/null
+++ b/goformation/cloudformation/accessanalyzer/aws-accessanalyzer-analyzer_filter.go
@@ -0,0 +1,57 @@
+package accessanalyzer
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Analyzer_Filter AWS CloudFormation Resource (AWS::AccessAnalyzer::Analyzer.Filter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html
+type Analyzer_Filter struct {
+
+ // Contains AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-contains
+ Contains *types.Value `json:"Contains,omitempty"`
+
+ // Eq AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-eq
+ Eq *types.Value `json:"Eq,omitempty"`
+
+ // Exists AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-exists
+ Exists *types.Value `json:"Exists,omitempty"`
+
+ // Neq AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-neq
+ Neq *types.Value `json:"Neq,omitempty"`
+
+ // Property AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-property
+ Property *types.Value `json:"Property,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Analyzer_Filter) AWSCloudFormationType() string {
+ return "AWS::AccessAnalyzer::Analyzer.Filter"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate.go
new file mode 100644
index 0000000000..2b381e810a
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate.go
@@ -0,0 +1,138 @@
+package acmpca
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate AWS CloudFormation Resource (AWS::ACMPCA::Certificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html
+type Certificate struct {
+
+ // ApiPassthrough AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html#cfn-acmpca-certificate-apipassthrough
+ ApiPassthrough *Certificate_ApiPassthrough `json:"ApiPassthrough,omitempty"`
+
+ // CertificateAuthorityArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html#cfn-acmpca-certificate-certificateauthorityarn
+ CertificateAuthorityArn *types.Value `json:"CertificateAuthorityArn,omitempty"`
+
+ // CertificateSigningRequest AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html#cfn-acmpca-certificate-certificatesigningrequest
+ CertificateSigningRequest *types.Value `json:"CertificateSigningRequest,omitempty"`
+
+ // SigningAlgorithm AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html#cfn-acmpca-certificate-signingalgorithm
+ SigningAlgorithm *types.Value `json:"SigningAlgorithm,omitempty"`
+
+ // TemplateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html#cfn-acmpca-certificate-templatearn
+ TemplateArn *types.Value `json:"TemplateArn,omitempty"`
+
+ // Validity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html#cfn-acmpca-certificate-validity
+ Validity *Certificate_Validity `json:"Validity,omitempty"`
+
+ // ValidityNotBefore AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificate.html#cfn-acmpca-certificate-validitynotbefore
+ ValidityNotBefore *Certificate_Validity `json:"ValidityNotBefore,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Certificate) MarshalJSON() ([]byte, error) {
+ type Properties Certificate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Certificate) UnmarshalJSON(b []byte) error {
+ type Properties Certificate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Certificate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_apipassthrough.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_apipassthrough.go
new file mode 100644
index 0000000000..3092d73896
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_apipassthrough.go
@@ -0,0 +1,40 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_ApiPassthrough AWS CloudFormation Resource (AWS::ACMPCA::Certificate.ApiPassthrough)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-apipassthrough.html
+type Certificate_ApiPassthrough struct {
+
+ // Extensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-apipassthrough.html#cfn-acmpca-certificate-apipassthrough-extensions
+ Extensions *Certificate_Extensions `json:"Extensions,omitempty"`
+
+ // Subject AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-apipassthrough.html#cfn-acmpca-certificate-apipassthrough-subject
+ Subject *Certificate_Subject `json:"Subject,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_ApiPassthrough) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.ApiPassthrough"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_edipartyname.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_edipartyname.go
new file mode 100644
index 0000000000..5ae358c092
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_edipartyname.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_EdiPartyName AWS CloudFormation Resource (AWS::ACMPCA::Certificate.EdiPartyName)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-edipartyname.html
+type Certificate_EdiPartyName struct {
+
+ // NameAssigner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-edipartyname.html#cfn-acmpca-certificate-edipartyname-nameassigner
+ NameAssigner *types.Value `json:"NameAssigner,omitempty"`
+
+ // PartyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-edipartyname.html#cfn-acmpca-certificate-edipartyname-partyname
+ PartyName *types.Value `json:"PartyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_EdiPartyName) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.EdiPartyName"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_extendedkeyusage.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_extendedkeyusage.go
new file mode 100644
index 0000000000..85db869454
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_extendedkeyusage.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_ExtendedKeyUsage AWS CloudFormation Resource (AWS::ACMPCA::Certificate.ExtendedKeyUsage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html
+type Certificate_ExtendedKeyUsage struct {
+
+ // ExtendedKeyUsageObjectIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html#cfn-acmpca-certificate-extendedkeyusage-extendedkeyusageobjectidentifier
+ ExtendedKeyUsageObjectIdentifier *types.Value `json:"ExtendedKeyUsageObjectIdentifier,omitempty"`
+
+ // ExtendedKeyUsageType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extendedkeyusage.html#cfn-acmpca-certificate-extendedkeyusage-extendedkeyusagetype
+ ExtendedKeyUsageType *types.Value `json:"ExtendedKeyUsageType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_ExtendedKeyUsage) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.ExtendedKeyUsage"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_extensions.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_extensions.go
new file mode 100644
index 0000000000..40a78728a7
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_extensions.go
@@ -0,0 +1,50 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_Extensions AWS CloudFormation Resource (AWS::ACMPCA::Certificate.Extensions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html
+type Certificate_Extensions struct {
+
+ // CertificatePolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html#cfn-acmpca-certificate-extensions-certificatepolicies
+ CertificatePolicies []Certificate_PolicyInformation `json:"CertificatePolicies,omitempty"`
+
+ // ExtendedKeyUsage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html#cfn-acmpca-certificate-extensions-extendedkeyusage
+ ExtendedKeyUsage []Certificate_ExtendedKeyUsage `json:"ExtendedKeyUsage,omitempty"`
+
+ // KeyUsage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html#cfn-acmpca-certificate-extensions-keyusage
+ KeyUsage *Certificate_KeyUsage `json:"KeyUsage,omitempty"`
+
+ // SubjectAlternativeNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-extensions.html#cfn-acmpca-certificate-extensions-subjectalternativenames
+ SubjectAlternativeNames []Certificate_GeneralName `json:"SubjectAlternativeNames,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_Extensions) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.Extensions"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_generalname.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_generalname.go
new file mode 100644
index 0000000000..d6c12d01cc
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_generalname.go
@@ -0,0 +1,72 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_GeneralName AWS CloudFormation Resource (AWS::ACMPCA::Certificate.GeneralName)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html
+type Certificate_GeneralName struct {
+
+ // DirectoryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html#cfn-acmpca-certificate-generalname-directoryname
+ DirectoryName *Certificate_Subject `json:"DirectoryName,omitempty"`
+
+ // DnsName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html#cfn-acmpca-certificate-generalname-dnsname
+ DnsName *types.Value `json:"DnsName,omitempty"`
+
+ // EdiPartyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html#cfn-acmpca-certificate-generalname-edipartyname
+ EdiPartyName *Certificate_EdiPartyName `json:"EdiPartyName,omitempty"`
+
+ // IpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html#cfn-acmpca-certificate-generalname-ipaddress
+ IpAddress *types.Value `json:"IpAddress,omitempty"`
+
+ // OtherName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html#cfn-acmpca-certificate-generalname-othername
+ OtherName *Certificate_OtherName `json:"OtherName,omitempty"`
+
+ // RegisteredId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html#cfn-acmpca-certificate-generalname-registeredid
+ RegisteredId *types.Value `json:"RegisteredId,omitempty"`
+
+ // Rfc822Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html#cfn-acmpca-certificate-generalname-rfc822name
+ Rfc822Name *types.Value `json:"Rfc822Name,omitempty"`
+
+ // UniformResourceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-generalname.html#cfn-acmpca-certificate-generalname-uniformresourceidentifier
+ UniformResourceIdentifier *types.Value `json:"UniformResourceIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_GeneralName) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.GeneralName"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_keyusage.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_keyusage.go
new file mode 100644
index 0000000000..7d0118f469
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_keyusage.go
@@ -0,0 +1,77 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_KeyUsage AWS CloudFormation Resource (AWS::ACMPCA::Certificate.KeyUsage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html
+type Certificate_KeyUsage struct {
+
+ // CRLSign AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-crlsign
+ CRLSign *types.Value `json:"CRLSign,omitempty"`
+
+ // DataEncipherment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-dataencipherment
+ DataEncipherment *types.Value `json:"DataEncipherment,omitempty"`
+
+ // DecipherOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-decipheronly
+ DecipherOnly *types.Value `json:"DecipherOnly,omitempty"`
+
+ // DigitalSignature AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-digitalsignature
+ DigitalSignature *types.Value `json:"DigitalSignature,omitempty"`
+
+ // EncipherOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-encipheronly
+ EncipherOnly *types.Value `json:"EncipherOnly,omitempty"`
+
+ // KeyAgreement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-keyagreement
+ KeyAgreement *types.Value `json:"KeyAgreement,omitempty"`
+
+ // KeyCertSign AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-keycertsign
+ KeyCertSign *types.Value `json:"KeyCertSign,omitempty"`
+
+ // KeyEncipherment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-keyencipherment
+ KeyEncipherment *types.Value `json:"KeyEncipherment,omitempty"`
+
+ // NonRepudiation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-keyusage.html#cfn-acmpca-certificate-keyusage-nonrepudiation
+ NonRepudiation *types.Value `json:"NonRepudiation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_KeyUsage) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.KeyUsage"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_othername.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_othername.go
new file mode 100644
index 0000000000..8a8a2aef10
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_othername.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_OtherName AWS CloudFormation Resource (AWS::ACMPCA::Certificate.OtherName)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-othername.html
+type Certificate_OtherName struct {
+
+ // TypeId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-othername.html#cfn-acmpca-certificate-othername-typeid
+ TypeId *types.Value `json:"TypeId,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-othername.html#cfn-acmpca-certificate-othername-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_OtherName) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.OtherName"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_policyinformation.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_policyinformation.go
new file mode 100644
index 0000000000..75e320cebe
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_policyinformation.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_PolicyInformation AWS CloudFormation Resource (AWS::ACMPCA::Certificate.PolicyInformation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyinformation.html
+type Certificate_PolicyInformation struct {
+
+ // CertPolicyId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyinformation.html#cfn-acmpca-certificate-policyinformation-certpolicyid
+ CertPolicyId *types.Value `json:"CertPolicyId,omitempty"`
+
+ // PolicyQualifiers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyinformation.html#cfn-acmpca-certificate-policyinformation-policyqualifiers
+ PolicyQualifiers []Certificate_PolicyQualifierInfo `json:"PolicyQualifiers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_PolicyInformation) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.PolicyInformation"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_policyqualifierinfo.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_policyqualifierinfo.go
new file mode 100644
index 0000000000..dd2225a066
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_policyqualifierinfo.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_PolicyQualifierInfo AWS CloudFormation Resource (AWS::ACMPCA::Certificate.PolicyQualifierInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyqualifierinfo.html
+type Certificate_PolicyQualifierInfo struct {
+
+ // PolicyQualifierId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyqualifierinfo.html#cfn-acmpca-certificate-policyqualifierinfo-policyqualifierid
+ PolicyQualifierId *types.Value `json:"PolicyQualifierId,omitempty"`
+
+ // Qualifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-policyqualifierinfo.html#cfn-acmpca-certificate-policyqualifierinfo-qualifier
+ Qualifier *Certificate_Qualifier `json:"Qualifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_PolicyQualifierInfo) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.PolicyQualifierInfo"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_qualifier.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_qualifier.go
new file mode 100644
index 0000000000..d95fedaa12
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_qualifier.go
@@ -0,0 +1,37 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_Qualifier AWS CloudFormation Resource (AWS::ACMPCA::Certificate.Qualifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-qualifier.html
+type Certificate_Qualifier struct {
+
+ // CpsUri AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-qualifier.html#cfn-acmpca-certificate-qualifier-cpsuri
+ CpsUri *types.Value `json:"CpsUri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_Qualifier) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.Qualifier"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_subject.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_subject.go
new file mode 100644
index 0000000000..587876ebf2
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_subject.go
@@ -0,0 +1,102 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_Subject AWS CloudFormation Resource (AWS::ACMPCA::Certificate.Subject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html
+type Certificate_Subject struct {
+
+ // CommonName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-commonname
+ CommonName *types.Value `json:"CommonName,omitempty"`
+
+ // Country AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-country
+ Country *types.Value `json:"Country,omitempty"`
+
+ // DistinguishedNameQualifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-distinguishednamequalifier
+ DistinguishedNameQualifier *types.Value `json:"DistinguishedNameQualifier,omitempty"`
+
+ // GenerationQualifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-generationqualifier
+ GenerationQualifier *types.Value `json:"GenerationQualifier,omitempty"`
+
+ // GivenName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-givenname
+ GivenName *types.Value `json:"GivenName,omitempty"`
+
+ // Initials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-initials
+ Initials *types.Value `json:"Initials,omitempty"`
+
+ // Locality AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-locality
+ Locality *types.Value `json:"Locality,omitempty"`
+
+ // Organization AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-organization
+ Organization *types.Value `json:"Organization,omitempty"`
+
+ // OrganizationalUnit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-organizationalunit
+ OrganizationalUnit *types.Value `json:"OrganizationalUnit,omitempty"`
+
+ // Pseudonym AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-pseudonym
+ Pseudonym *types.Value `json:"Pseudonym,omitempty"`
+
+ // SerialNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-serialnumber
+ SerialNumber *types.Value `json:"SerialNumber,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Surname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-surname
+ Surname *types.Value `json:"Surname,omitempty"`
+
+ // Title AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-subject.html#cfn-acmpca-certificate-subject-title
+ Title *types.Value `json:"Title,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_Subject) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.Subject"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificate_validity.go b/goformation/cloudformation/acmpca/aws-acmpca-certificate_validity.go
new file mode 100644
index 0000000000..35805342aa
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificate_validity.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_Validity AWS CloudFormation Resource (AWS::ACMPCA::Certificate.Validity)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html
+type Certificate_Validity struct {
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html#cfn-acmpca-certificate-validity-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificate-validity.html#cfn-acmpca-certificate-validity-value
+ Value *types.Value `json:"Value"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_Validity) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Certificate.Validity"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority.go
new file mode 100644
index 0000000000..097ce6d04f
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority.go
@@ -0,0 +1,144 @@
+package acmpca
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html
+type CertificateAuthority struct {
+
+ // CsrExtensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-csrextensions
+ CsrExtensions *CertificateAuthority_CsrExtensions `json:"CsrExtensions,omitempty"`
+
+ // KeyAlgorithm AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-keyalgorithm
+ KeyAlgorithm *types.Value `json:"KeyAlgorithm,omitempty"`
+
+ // KeyStorageSecurityStandard AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-keystoragesecuritystandard
+ KeyStorageSecurityStandard *types.Value `json:"KeyStorageSecurityStandard,omitempty"`
+
+ // RevocationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-revocationconfiguration
+ RevocationConfiguration *CertificateAuthority_RevocationConfiguration `json:"RevocationConfiguration,omitempty"`
+
+ // SigningAlgorithm AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-signingalgorithm
+ SigningAlgorithm *types.Value `json:"SigningAlgorithm,omitempty"`
+
+ // Subject AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-subject
+ Subject *CertificateAuthority_Subject `json:"Subject,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthority.html#cfn-acmpca-certificateauthority-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CertificateAuthority) MarshalJSON() ([]byte, error) {
+ type Properties CertificateAuthority
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CertificateAuthority) UnmarshalJSON(b []byte) error {
+ type Properties CertificateAuthority
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CertificateAuthority(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_accessdescription.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_accessdescription.go
new file mode 100644
index 0000000000..3fc3d67c3d
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_accessdescription.go
@@ -0,0 +1,40 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_AccessDescription AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.AccessDescription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html
+type CertificateAuthority_AccessDescription struct {
+
+ // AccessLocation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html#cfn-acmpca-certificateauthority-accessdescription-accesslocation
+ AccessLocation *CertificateAuthority_GeneralName `json:"AccessLocation,omitempty"`
+
+ // AccessMethod AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html#cfn-acmpca-certificateauthority-accessdescription-accessmethod
+ AccessMethod *CertificateAuthority_AccessMethod `json:"AccessMethod,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_AccessDescription) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.AccessDescription"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_accessmethod.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_accessmethod.go
new file mode 100644
index 0000000000..5707425632
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_accessmethod.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_AccessMethod AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.AccessMethod)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessmethod.html
+type CertificateAuthority_AccessMethod struct {
+
+ // AccessMethodType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessmethod.html#cfn-acmpca-certificateauthority-accessmethod-accessmethodtype
+ AccessMethodType *types.Value `json:"AccessMethodType,omitempty"`
+
+ // CustomObjectIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessmethod.html#cfn-acmpca-certificateauthority-accessmethod-customobjectidentifier
+ CustomObjectIdentifier *types.Value `json:"CustomObjectIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_AccessMethod) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.AccessMethod"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_crlconfiguration.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_crlconfiguration.go
new file mode 100644
index 0000000000..65197732a5
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_crlconfiguration.go
@@ -0,0 +1,57 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_CrlConfiguration AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.CrlConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html
+type CertificateAuthority_CrlConfiguration struct {
+
+ // CustomCname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html#cfn-acmpca-certificateauthority-crlconfiguration-customcname
+ CustomCname *types.Value `json:"CustomCname,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html#cfn-acmpca-certificateauthority-crlconfiguration-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // ExpirationInDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html#cfn-acmpca-certificateauthority-crlconfiguration-expirationindays
+ ExpirationInDays *types.Value `json:"ExpirationInDays,omitempty"`
+
+ // S3BucketName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html#cfn-acmpca-certificateauthority-crlconfiguration-s3bucketname
+ S3BucketName *types.Value `json:"S3BucketName,omitempty"`
+
+ // S3ObjectAcl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-crlconfiguration.html#cfn-acmpca-certificateauthority-crlconfiguration-s3objectacl
+ S3ObjectAcl *types.Value `json:"S3ObjectAcl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_CrlConfiguration) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.CrlConfiguration"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_csrextensions.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_csrextensions.go
new file mode 100644
index 0000000000..9960ba0ae4
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_csrextensions.go
@@ -0,0 +1,40 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_CsrExtensions AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.CsrExtensions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-csrextensions.html
+type CertificateAuthority_CsrExtensions struct {
+
+ // KeyUsage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-csrextensions.html#cfn-acmpca-certificateauthority-csrextensions-keyusage
+ KeyUsage *CertificateAuthority_KeyUsage `json:"KeyUsage,omitempty"`
+
+ // SubjectInformationAccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-csrextensions.html#cfn-acmpca-certificateauthority-csrextensions-subjectinformationaccess
+ SubjectInformationAccess []CertificateAuthority_AccessDescription `json:"SubjectInformationAccess,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_CsrExtensions) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.CsrExtensions"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_edipartyname.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_edipartyname.go
new file mode 100644
index 0000000000..820d83a4c7
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_edipartyname.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_EdiPartyName AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.EdiPartyName)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-edipartyname.html
+type CertificateAuthority_EdiPartyName struct {
+
+ // NameAssigner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-edipartyname.html#cfn-acmpca-certificateauthority-edipartyname-nameassigner
+ NameAssigner *types.Value `json:"NameAssigner,omitempty"`
+
+ // PartyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-edipartyname.html#cfn-acmpca-certificateauthority-edipartyname-partyname
+ PartyName *types.Value `json:"PartyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_EdiPartyName) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.EdiPartyName"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_generalname.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_generalname.go
new file mode 100644
index 0000000000..55583ca431
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_generalname.go
@@ -0,0 +1,72 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_GeneralName AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.GeneralName)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html
+type CertificateAuthority_GeneralName struct {
+
+ // DirectoryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html#cfn-acmpca-certificateauthority-generalname-directoryname
+ DirectoryName *CertificateAuthority_Subject `json:"DirectoryName,omitempty"`
+
+ // DnsName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html#cfn-acmpca-certificateauthority-generalname-dnsname
+ DnsName *types.Value `json:"DnsName,omitempty"`
+
+ // EdiPartyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html#cfn-acmpca-certificateauthority-generalname-edipartyname
+ EdiPartyName *CertificateAuthority_EdiPartyName `json:"EdiPartyName,omitempty"`
+
+ // IpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html#cfn-acmpca-certificateauthority-generalname-ipaddress
+ IpAddress *types.Value `json:"IpAddress,omitempty"`
+
+ // OtherName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html#cfn-acmpca-certificateauthority-generalname-othername
+ OtherName *CertificateAuthority_OtherName `json:"OtherName,omitempty"`
+
+ // RegisteredId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html#cfn-acmpca-certificateauthority-generalname-registeredid
+ RegisteredId *types.Value `json:"RegisteredId,omitempty"`
+
+ // Rfc822Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html#cfn-acmpca-certificateauthority-generalname-rfc822name
+ Rfc822Name *types.Value `json:"Rfc822Name,omitempty"`
+
+ // UniformResourceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-generalname.html#cfn-acmpca-certificateauthority-generalname-uniformresourceidentifier
+ UniformResourceIdentifier *types.Value `json:"UniformResourceIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_GeneralName) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.GeneralName"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_keyusage.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_keyusage.go
new file mode 100644
index 0000000000..903b3427a7
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_keyusage.go
@@ -0,0 +1,77 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_KeyUsage AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.KeyUsage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html
+type CertificateAuthority_KeyUsage struct {
+
+ // CRLSign AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-crlsign
+ CRLSign *types.Value `json:"CRLSign,omitempty"`
+
+ // DataEncipherment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-dataencipherment
+ DataEncipherment *types.Value `json:"DataEncipherment,omitempty"`
+
+ // DecipherOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-decipheronly
+ DecipherOnly *types.Value `json:"DecipherOnly,omitempty"`
+
+ // DigitalSignature AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-digitalsignature
+ DigitalSignature *types.Value `json:"DigitalSignature,omitempty"`
+
+ // EncipherOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-encipheronly
+ EncipherOnly *types.Value `json:"EncipherOnly,omitempty"`
+
+ // KeyAgreement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-keyagreement
+ KeyAgreement *types.Value `json:"KeyAgreement,omitempty"`
+
+ // KeyCertSign AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-keycertsign
+ KeyCertSign *types.Value `json:"KeyCertSign,omitempty"`
+
+ // KeyEncipherment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-keyencipherment
+ KeyEncipherment *types.Value `json:"KeyEncipherment,omitempty"`
+
+ // NonRepudiation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-keyusage.html#cfn-acmpca-certificateauthority-keyusage-nonrepudiation
+ NonRepudiation *types.Value `json:"NonRepudiation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_KeyUsage) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.KeyUsage"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_ocspconfiguration.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_ocspconfiguration.go
new file mode 100644
index 0000000000..a919001cb0
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_ocspconfiguration.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_OcspConfiguration AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.OcspConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-ocspconfiguration.html
+type CertificateAuthority_OcspConfiguration struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-ocspconfiguration.html#cfn-acmpca-certificateauthority-ocspconfiguration-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // OcspCustomCname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-ocspconfiguration.html#cfn-acmpca-certificateauthority-ocspconfiguration-ocspcustomcname
+ OcspCustomCname *types.Value `json:"OcspCustomCname,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_OcspConfiguration) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.OcspConfiguration"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_othername.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_othername.go
new file mode 100644
index 0000000000..355f056d61
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_othername.go
@@ -0,0 +1,42 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_OtherName AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.OtherName)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-othername.html
+type CertificateAuthority_OtherName struct {
+
+ // TypeId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-othername.html#cfn-acmpca-certificateauthority-othername-typeid
+ TypeId *types.Value `json:"TypeId,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-othername.html#cfn-acmpca-certificateauthority-othername-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_OtherName) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.OtherName"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_revocationconfiguration.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_revocationconfiguration.go
new file mode 100644
index 0000000000..9068f4ca58
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_revocationconfiguration.go
@@ -0,0 +1,40 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_RevocationConfiguration AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.RevocationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-revocationconfiguration.html
+type CertificateAuthority_RevocationConfiguration struct {
+
+ // CrlConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-revocationconfiguration.html#cfn-acmpca-certificateauthority-revocationconfiguration-crlconfiguration
+ CrlConfiguration *CertificateAuthority_CrlConfiguration `json:"CrlConfiguration,omitempty"`
+
+ // OcspConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-revocationconfiguration.html#cfn-acmpca-certificateauthority-revocationconfiguration-ocspconfiguration
+ OcspConfiguration *CertificateAuthority_OcspConfiguration `json:"OcspConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_RevocationConfiguration) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.RevocationConfiguration"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_subject.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_subject.go
new file mode 100644
index 0000000000..6ea80ff6c9
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthority_subject.go
@@ -0,0 +1,102 @@
+package acmpca
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthority_Subject AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthority.Subject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html
+type CertificateAuthority_Subject struct {
+
+ // CommonName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-commonname
+ CommonName *types.Value `json:"CommonName,omitempty"`
+
+ // Country AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-country
+ Country *types.Value `json:"Country,omitempty"`
+
+ // DistinguishedNameQualifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-distinguishednamequalifier
+ DistinguishedNameQualifier *types.Value `json:"DistinguishedNameQualifier,omitempty"`
+
+ // GenerationQualifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-generationqualifier
+ GenerationQualifier *types.Value `json:"GenerationQualifier,omitempty"`
+
+ // GivenName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-givenname
+ GivenName *types.Value `json:"GivenName,omitempty"`
+
+ // Initials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-initials
+ Initials *types.Value `json:"Initials,omitempty"`
+
+ // Locality AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-locality
+ Locality *types.Value `json:"Locality,omitempty"`
+
+ // Organization AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-organization
+ Organization *types.Value `json:"Organization,omitempty"`
+
+ // OrganizationalUnit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-organizationalunit
+ OrganizationalUnit *types.Value `json:"OrganizationalUnit,omitempty"`
+
+ // Pseudonym AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-pseudonym
+ Pseudonym *types.Value `json:"Pseudonym,omitempty"`
+
+ // SerialNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-serialnumber
+ SerialNumber *types.Value `json:"SerialNumber,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Surname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-surname
+ Surname *types.Value `json:"Surname,omitempty"`
+
+ // Title AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-subject.html#cfn-acmpca-certificateauthority-subject-title
+ Title *types.Value `json:"Title,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthority_Subject) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthority.Subject"
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-certificateauthorityactivation.go b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthorityactivation.go
new file mode 100644
index 0000000000..a5122f93c4
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-certificateauthorityactivation.go
@@ -0,0 +1,123 @@
+package acmpca
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CertificateAuthorityActivation AWS CloudFormation Resource (AWS::ACMPCA::CertificateAuthorityActivation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html
+type CertificateAuthorityActivation struct {
+
+ // Certificate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html#cfn-acmpca-certificateauthorityactivation-certificate
+ Certificate *types.Value `json:"Certificate,omitempty"`
+
+ // CertificateAuthorityArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html#cfn-acmpca-certificateauthorityactivation-certificateauthorityarn
+ CertificateAuthorityArn *types.Value `json:"CertificateAuthorityArn,omitempty"`
+
+ // CertificateChain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html#cfn-acmpca-certificateauthorityactivation-certificatechain
+ CertificateChain *types.Value `json:"CertificateChain,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-certificateauthorityactivation.html#cfn-acmpca-certificateauthorityactivation-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CertificateAuthorityActivation) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::CertificateAuthorityActivation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CertificateAuthorityActivation) MarshalJSON() ([]byte, error) {
+ type Properties CertificateAuthorityActivation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CertificateAuthorityActivation) UnmarshalJSON(b []byte) error {
+ type Properties CertificateAuthorityActivation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CertificateAuthorityActivation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/acmpca/aws-acmpca-permission.go b/goformation/cloudformation/acmpca/aws-acmpca-permission.go
new file mode 100644
index 0000000000..3d24347563
--- /dev/null
+++ b/goformation/cloudformation/acmpca/aws-acmpca-permission.go
@@ -0,0 +1,123 @@
+package acmpca
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permission AWS CloudFormation Resource (AWS::ACMPCA::Permission)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html
+type Permission struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html#cfn-acmpca-permission-actions
+ Actions *types.Value `json:"Actions,omitempty"`
+
+ // CertificateAuthorityArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html#cfn-acmpca-permission-certificateauthorityarn
+ CertificateAuthorityArn *types.Value `json:"CertificateAuthorityArn,omitempty"`
+
+ // Principal AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html#cfn-acmpca-permission-principal
+ Principal *types.Value `json:"Principal,omitempty"`
+
+ // SourceAccount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-acmpca-permission.html#cfn-acmpca-permission-sourceaccount
+ SourceAccount *types.Value `json:"SourceAccount,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permission) AWSCloudFormationType() string {
+ return "AWS::ACMPCA::Permission"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Permission) MarshalJSON() ([]byte, error) {
+ type Properties Permission
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Permission) UnmarshalJSON(b []byte) error {
+ type Properties Permission
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Permission(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/all.go b/goformation/cloudformation/all.go
new file mode 100644
index 0000000000..0ac1079954
--- /dev/null
+++ b/goformation/cloudformation/all.go
@@ -0,0 +1,21693 @@
+package cloudformation
+
+import (
+ "fmt"
+
+ "goformation/v4/cloudformation/accessanalyzer"
+ "goformation/v4/cloudformation/acmpca"
+ "goformation/v4/cloudformation/amazonmq"
+ "goformation/v4/cloudformation/amplify"
+ "goformation/v4/cloudformation/amplifyuibuilder"
+ "goformation/v4/cloudformation/apigateway"
+ "goformation/v4/cloudformation/apigatewayv2"
+ "goformation/v4/cloudformation/appconfig"
+ "goformation/v4/cloudformation/appflow"
+ "goformation/v4/cloudformation/appintegrations"
+ "goformation/v4/cloudformation/applicationautoscaling"
+ "goformation/v4/cloudformation/applicationinsights"
+ "goformation/v4/cloudformation/appmesh"
+ "goformation/v4/cloudformation/apprunner"
+ "goformation/v4/cloudformation/appstream"
+ "goformation/v4/cloudformation/appsync"
+ "goformation/v4/cloudformation/aps"
+ "goformation/v4/cloudformation/ask"
+ "goformation/v4/cloudformation/athena"
+ "goformation/v4/cloudformation/auditmanager"
+ "goformation/v4/cloudformation/autoscaling"
+ "goformation/v4/cloudformation/autoscalingplans"
+ "goformation/v4/cloudformation/backup"
+ "goformation/v4/cloudformation/batch"
+ "goformation/v4/cloudformation/budgets"
+ "goformation/v4/cloudformation/cassandra"
+ "goformation/v4/cloudformation/ce"
+ "goformation/v4/cloudformation/certificatemanager"
+ "goformation/v4/cloudformation/chatbot"
+ "goformation/v4/cloudformation/cloud9"
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/cloudfront"
+ "goformation/v4/cloudformation/cloudtrail"
+ "goformation/v4/cloudformation/cloudwatch"
+ "goformation/v4/cloudformation/codeartifact"
+ "goformation/v4/cloudformation/codebuild"
+ "goformation/v4/cloudformation/codecommit"
+ "goformation/v4/cloudformation/codedeploy"
+ "goformation/v4/cloudformation/codeguruprofiler"
+ "goformation/v4/cloudformation/codegurureviewer"
+ "goformation/v4/cloudformation/codepipeline"
+ "goformation/v4/cloudformation/codestar"
+ "goformation/v4/cloudformation/codestarconnections"
+ "goformation/v4/cloudformation/codestarnotifications"
+ "goformation/v4/cloudformation/cognito"
+ "goformation/v4/cloudformation/config"
+ "goformation/v4/cloudformation/connect"
+ "goformation/v4/cloudformation/cur"
+ "goformation/v4/cloudformation/customerprofiles"
+ "goformation/v4/cloudformation/databrew"
+ "goformation/v4/cloudformation/datapipeline"
+ "goformation/v4/cloudformation/datasync"
+ "goformation/v4/cloudformation/dax"
+ "goformation/v4/cloudformation/detective"
+ "goformation/v4/cloudformation/devopsguru"
+ "goformation/v4/cloudformation/directoryservice"
+ "goformation/v4/cloudformation/dlm"
+ "goformation/v4/cloudformation/dms"
+ "goformation/v4/cloudformation/docdb"
+ "goformation/v4/cloudformation/dynamodb"
+ "goformation/v4/cloudformation/ec2"
+ "goformation/v4/cloudformation/ecr"
+ "goformation/v4/cloudformation/ecs"
+ "goformation/v4/cloudformation/efs"
+ "goformation/v4/cloudformation/eks"
+ "goformation/v4/cloudformation/elasticache"
+ "goformation/v4/cloudformation/elasticbeanstalk"
+ "goformation/v4/cloudformation/elasticloadbalancing"
+ "goformation/v4/cloudformation/elasticloadbalancingv2"
+ "goformation/v4/cloudformation/elasticsearch"
+ "goformation/v4/cloudformation/emr"
+ "goformation/v4/cloudformation/emrcontainers"
+ "goformation/v4/cloudformation/events"
+ "goformation/v4/cloudformation/eventschemas"
+ "goformation/v4/cloudformation/evidently"
+ "goformation/v4/cloudformation/finspace"
+ "goformation/v4/cloudformation/fis"
+ "goformation/v4/cloudformation/fms"
+ "goformation/v4/cloudformation/frauddetector"
+ "goformation/v4/cloudformation/fsx"
+ "goformation/v4/cloudformation/gamelift"
+ "goformation/v4/cloudformation/globalaccelerator"
+ "goformation/v4/cloudformation/glue"
+ "goformation/v4/cloudformation/greengrass"
+ "goformation/v4/cloudformation/greengrassv2"
+ "goformation/v4/cloudformation/groundstation"
+ "goformation/v4/cloudformation/guardduty"
+ "goformation/v4/cloudformation/healthlake"
+ "goformation/v4/cloudformation/iam"
+ "goformation/v4/cloudformation/imagebuilder"
+ "goformation/v4/cloudformation/inspector"
+ "goformation/v4/cloudformation/iot"
+ "goformation/v4/cloudformation/iot1click"
+ "goformation/v4/cloudformation/iotanalytics"
+ "goformation/v4/cloudformation/iotcoredeviceadvisor"
+ "goformation/v4/cloudformation/iotevents"
+ "goformation/v4/cloudformation/iotfleethub"
+ "goformation/v4/cloudformation/iotsitewise"
+ "goformation/v4/cloudformation/iotthingsgraph"
+ "goformation/v4/cloudformation/iotwireless"
+ "goformation/v4/cloudformation/ivs"
+ "goformation/v4/cloudformation/kendra"
+ "goformation/v4/cloudformation/kinesis"
+ "goformation/v4/cloudformation/kinesisanalytics"
+ "goformation/v4/cloudformation/kinesisanalyticsv2"
+ "goformation/v4/cloudformation/kinesisfirehose"
+ "goformation/v4/cloudformation/kms"
+ "goformation/v4/cloudformation/lakeformation"
+ "goformation/v4/cloudformation/lambda"
+ "goformation/v4/cloudformation/licensemanager"
+ "goformation/v4/cloudformation/lightsail"
+ "goformation/v4/cloudformation/location"
+ "goformation/v4/cloudformation/logs"
+ "goformation/v4/cloudformation/lookoutequipment"
+ "goformation/v4/cloudformation/lookoutmetrics"
+ "goformation/v4/cloudformation/lookoutvision"
+ "goformation/v4/cloudformation/macie"
+ "goformation/v4/cloudformation/managedblockchain"
+ "goformation/v4/cloudformation/mediaconnect"
+ "goformation/v4/cloudformation/mediaconvert"
+ "goformation/v4/cloudformation/medialive"
+ "goformation/v4/cloudformation/mediapackage"
+ "goformation/v4/cloudformation/mediastore"
+ "goformation/v4/cloudformation/memorydb"
+ "goformation/v4/cloudformation/msk"
+ "goformation/v4/cloudformation/mwaa"
+ "goformation/v4/cloudformation/neptune"
+ "goformation/v4/cloudformation/networkfirewall"
+ "goformation/v4/cloudformation/networkmanager"
+ "goformation/v4/cloudformation/nimblestudio"
+ "goformation/v4/cloudformation/opensearchservice"
+ "goformation/v4/cloudformation/opsworks"
+ "goformation/v4/cloudformation/opsworkscm"
+ "goformation/v4/cloudformation/panorama"
+ "goformation/v4/cloudformation/pinpoint"
+ "goformation/v4/cloudformation/pinpointemail"
+ "goformation/v4/cloudformation/qldb"
+ "goformation/v4/cloudformation/quicksight"
+ "goformation/v4/cloudformation/ram"
+ "goformation/v4/cloudformation/rds"
+ "goformation/v4/cloudformation/redshift"
+ "goformation/v4/cloudformation/refactorspaces"
+ "goformation/v4/cloudformation/rekognition"
+ "goformation/v4/cloudformation/resiliencehub"
+ "goformation/v4/cloudformation/resourcegroups"
+ "goformation/v4/cloudformation/robomaker"
+ "goformation/v4/cloudformation/route53"
+ "goformation/v4/cloudformation/route53recoverycontrol"
+ "goformation/v4/cloudformation/route53recoveryreadiness"
+ "goformation/v4/cloudformation/route53resolver"
+ "goformation/v4/cloudformation/rum"
+ "goformation/v4/cloudformation/s3"
+ "goformation/v4/cloudformation/s3objectlambda"
+ "goformation/v4/cloudformation/s3outposts"
+ "goformation/v4/cloudformation/sagemaker"
+ "goformation/v4/cloudformation/sdb"
+ "goformation/v4/cloudformation/secretsmanager"
+ "goformation/v4/cloudformation/securityhub"
+ "goformation/v4/cloudformation/serverless"
+ "goformation/v4/cloudformation/servicecatalog"
+ "goformation/v4/cloudformation/servicecatalogappregistry"
+ "goformation/v4/cloudformation/servicediscovery"
+ "goformation/v4/cloudformation/ses"
+ "goformation/v4/cloudformation/signer"
+ "goformation/v4/cloudformation/sns"
+ "goformation/v4/cloudformation/sqs"
+ "goformation/v4/cloudformation/ssm"
+ "goformation/v4/cloudformation/ssmcontacts"
+ "goformation/v4/cloudformation/ssmincidents"
+ "goformation/v4/cloudformation/sso"
+ "goformation/v4/cloudformation/stepfunctions"
+ "goformation/v4/cloudformation/synthetics"
+ "goformation/v4/cloudformation/timestream"
+ "goformation/v4/cloudformation/transfer"
+ "goformation/v4/cloudformation/waf"
+ "goformation/v4/cloudformation/wafregional"
+ "goformation/v4/cloudformation/wafv2"
+ "goformation/v4/cloudformation/wisdom"
+ "goformation/v4/cloudformation/workspaces"
+ "goformation/v4/cloudformation/xray"
+)
+
+// AllResources fetches an iterable map all CloudFormation and SAM resources
+func AllResources() map[string]Resource {
+ return map[string]Resource{
+ "AWS::ACMPCA::Certificate": &acmpca.Certificate{},
+ "AWS::ACMPCA::CertificateAuthority": &acmpca.CertificateAuthority{},
+ "AWS::ACMPCA::CertificateAuthorityActivation": &acmpca.CertificateAuthorityActivation{},
+ "AWS::ACMPCA::Permission": &acmpca.Permission{},
+ "AWS::APS::RuleGroupsNamespace": &aps.RuleGroupsNamespace{},
+ "AWS::APS::Workspace": &aps.Workspace{},
+ "AWS::AccessAnalyzer::Analyzer": &accessanalyzer.Analyzer{},
+ "AWS::AmazonMQ::Broker": &amazonmq.Broker{},
+ "AWS::AmazonMQ::Configuration": &amazonmq.Configuration{},
+ "AWS::AmazonMQ::ConfigurationAssociation": &amazonmq.ConfigurationAssociation{},
+ "AWS::Amplify::App": &lify.App{},
+ "AWS::Amplify::Branch": &lify.Branch{},
+ "AWS::Amplify::Domain": &lify.Domain{},
+ "AWS::AmplifyUIBuilder::Component": &lifyuibuilder.Component{},
+ "AWS::AmplifyUIBuilder::Theme": &lifyuibuilder.Theme{},
+ "AWS::ApiGateway::Account": &apigateway.Account{},
+ "AWS::ApiGateway::ApiKey": &apigateway.ApiKey{},
+ "AWS::ApiGateway::Authorizer": &apigateway.Authorizer{},
+ "AWS::ApiGateway::BasePathMapping": &apigateway.BasePathMapping{},
+ "AWS::ApiGateway::ClientCertificate": &apigateway.ClientCertificate{},
+ "AWS::ApiGateway::Deployment": &apigateway.Deployment{},
+ "AWS::ApiGateway::DocumentationPart": &apigateway.DocumentationPart{},
+ "AWS::ApiGateway::DocumentationVersion": &apigateway.DocumentationVersion{},
+ "AWS::ApiGateway::DomainName": &apigateway.DomainName{},
+ "AWS::ApiGateway::GatewayResponse": &apigateway.GatewayResponse{},
+ "AWS::ApiGateway::Method": &apigateway.Method{},
+ "AWS::ApiGateway::Model": &apigateway.Model{},
+ "AWS::ApiGateway::RequestValidator": &apigateway.RequestValidator{},
+ "AWS::ApiGateway::Resource": &apigateway.Resource{},
+ "AWS::ApiGateway::RestApi": &apigateway.RestApi{},
+ "AWS::ApiGateway::Stage": &apigateway.Stage{},
+ "AWS::ApiGateway::UsagePlan": &apigateway.UsagePlan{},
+ "AWS::ApiGateway::UsagePlanKey": &apigateway.UsagePlanKey{},
+ "AWS::ApiGateway::VpcLink": &apigateway.VpcLink{},
+ "AWS::ApiGatewayV2::Api": &apigatewayv2.Api{},
+ "AWS::ApiGatewayV2::ApiGatewayManagedOverrides": &apigatewayv2.ApiGatewayManagedOverrides{},
+ "AWS::ApiGatewayV2::ApiMapping": &apigatewayv2.ApiMapping{},
+ "AWS::ApiGatewayV2::Authorizer": &apigatewayv2.Authorizer{},
+ "AWS::ApiGatewayV2::Deployment": &apigatewayv2.Deployment{},
+ "AWS::ApiGatewayV2::DomainName": &apigatewayv2.DomainName{},
+ "AWS::ApiGatewayV2::Integration": &apigatewayv2.Integration{},
+ "AWS::ApiGatewayV2::IntegrationResponse": &apigatewayv2.IntegrationResponse{},
+ "AWS::ApiGatewayV2::Model": &apigatewayv2.Model{},
+ "AWS::ApiGatewayV2::Route": &apigatewayv2.Route{},
+ "AWS::ApiGatewayV2::RouteResponse": &apigatewayv2.RouteResponse{},
+ "AWS::ApiGatewayV2::Stage": &apigatewayv2.Stage{},
+ "AWS::ApiGatewayV2::VpcLink": &apigatewayv2.VpcLink{},
+ "AWS::AppConfig::Application": &appconfig.Application{},
+ "AWS::AppConfig::ConfigurationProfile": &appconfig.ConfigurationProfile{},
+ "AWS::AppConfig::Deployment": &appconfig.Deployment{},
+ "AWS::AppConfig::DeploymentStrategy": &appconfig.DeploymentStrategy{},
+ "AWS::AppConfig::Environment": &appconfig.Environment{},
+ "AWS::AppConfig::HostedConfigurationVersion": &appconfig.HostedConfigurationVersion{},
+ "AWS::AppFlow::ConnectorProfile": &appflow.ConnectorProfile{},
+ "AWS::AppFlow::Flow": &appflow.Flow{},
+ "AWS::AppIntegrations::EventIntegration": &appintegrations.EventIntegration{},
+ "AWS::AppMesh::GatewayRoute": &appmesh.GatewayRoute{},
+ "AWS::AppMesh::Mesh": &appmesh.Mesh{},
+ "AWS::AppMesh::Route": &appmesh.Route{},
+ "AWS::AppMesh::VirtualGateway": &appmesh.VirtualGateway{},
+ "AWS::AppMesh::VirtualNode": &appmesh.VirtualNode{},
+ "AWS::AppMesh::VirtualRouter": &appmesh.VirtualRouter{},
+ "AWS::AppMesh::VirtualService": &appmesh.VirtualService{},
+ "AWS::AppRunner::Service": &apprunner.Service{},
+ "AWS::AppStream::AppBlock": &appstream.AppBlock{},
+ "AWS::AppStream::Application": &appstream.Application{},
+ "AWS::AppStream::ApplicationFleetAssociation": &appstream.ApplicationFleetAssociation{},
+ "AWS::AppStream::DirectoryConfig": &appstream.DirectoryConfig{},
+ "AWS::AppStream::Fleet": &appstream.Fleet{},
+ "AWS::AppStream::ImageBuilder": &appstream.ImageBuilder{},
+ "AWS::AppStream::Stack": &appstream.Stack{},
+ "AWS::AppStream::StackFleetAssociation": &appstream.StackFleetAssociation{},
+ "AWS::AppStream::StackUserAssociation": &appstream.StackUserAssociation{},
+ "AWS::AppStream::User": &appstream.User{},
+ "AWS::AppSync::ApiCache": &appsync.ApiCache{},
+ "AWS::AppSync::ApiKey": &appsync.ApiKey{},
+ "AWS::AppSync::DataSource": &appsync.DataSource{},
+ "AWS::AppSync::FunctionConfiguration": &appsync.FunctionConfiguration{},
+ "AWS::AppSync::GraphQLApi": &appsync.GraphQLApi{},
+ "AWS::AppSync::GraphQLSchema": &appsync.GraphQLSchema{},
+ "AWS::AppSync::Resolver": &appsync.Resolver{},
+ "AWS::ApplicationAutoScaling::ScalableTarget": &applicationautoscaling.ScalableTarget{},
+ "AWS::ApplicationAutoScaling::ScalingPolicy": &applicationautoscaling.ScalingPolicy{},
+ "AWS::ApplicationInsights::Application": &applicationinsights.Application{},
+ "AWS::Athena::DataCatalog": &athena.DataCatalog{},
+ "AWS::Athena::NamedQuery": &athena.NamedQuery{},
+ "AWS::Athena::PreparedStatement": &athena.PreparedStatement{},
+ "AWS::Athena::WorkGroup": &athena.WorkGroup{},
+ "AWS::AuditManager::Assessment": &auditmanager.Assessment{},
+ "AWS::AutoScaling::AutoScalingGroup": &autoscaling.AutoScalingGroup{},
+ "AWS::AutoScaling::LaunchConfiguration": &autoscaling.LaunchConfiguration{},
+ "AWS::AutoScaling::LifecycleHook": &autoscaling.LifecycleHook{},
+ "AWS::AutoScaling::ScalingPolicy": &autoscaling.ScalingPolicy{},
+ "AWS::AutoScaling::ScheduledAction": &autoscaling.ScheduledAction{},
+ "AWS::AutoScaling::WarmPool": &autoscaling.WarmPool{},
+ "AWS::AutoScalingPlans::ScalingPlan": &autoscalingplans.ScalingPlan{},
+ "AWS::Backup::BackupPlan": &backup.BackupPlan{},
+ "AWS::Backup::BackupSelection": &backup.BackupSelection{},
+ "AWS::Backup::BackupVault": &backup.BackupVault{},
+ "AWS::Backup::Framework": &backup.Framework{},
+ "AWS::Backup::ReportPlan": &backup.ReportPlan{},
+ "AWS::Batch::ComputeEnvironment": &batch.ComputeEnvironment{},
+ "AWS::Batch::JobDefinition": &batch.JobDefinition{},
+ "AWS::Batch::JobQueue": &batch.JobQueue{},
+ "AWS::Batch::SchedulingPolicy": &batch.SchedulingPolicy{},
+ "AWS::Budgets::Budget": &budgets.Budget{},
+ "AWS::Budgets::BudgetsAction": &budgets.BudgetsAction{},
+ "AWS::CE::AnomalyMonitor": &ce.AnomalyMonitor{},
+ "AWS::CE::AnomalySubscription": &ce.AnomalySubscription{},
+ "AWS::CE::CostCategory": &ce.CostCategory{},
+ "AWS::CUR::ReportDefinition": &cur.ReportDefinition{},
+ "AWS::Cassandra::Keyspace": &cassandra.Keyspace{},
+ "AWS::Cassandra::Table": &cassandra.Table{},
+ "AWS::CertificateManager::Account": &certificatemanager.Account{},
+ "AWS::CertificateManager::Certificate": &certificatemanager.Certificate{},
+ "AWS::Chatbot::SlackChannelConfiguration": &chatbot.SlackChannelConfiguration{},
+ "AWS::Cloud9::EnvironmentEC2": &cloud9.EnvironmentEC2{},
+ "AWS::CloudFormation::CustomResource": &cloudformation.CustomResource{},
+ "AWS::CloudFormation::Macro": &cloudformation.Macro{},
+ "AWS::CloudFormation::ModuleDefaultVersion": &cloudformation.ModuleDefaultVersion{},
+ "AWS::CloudFormation::ModuleVersion": &cloudformation.ModuleVersion{},
+ "AWS::CloudFormation::PublicTypeVersion": &cloudformation.PublicTypeVersion{},
+ "AWS::CloudFormation::Publisher": &cloudformation.Publisher{},
+ "AWS::CloudFormation::ResourceDefaultVersion": &cloudformation.ResourceDefaultVersion{},
+ "AWS::CloudFormation::ResourceVersion": &cloudformation.ResourceVersion{},
+ "AWS::CloudFormation::Stack": &cloudformation.Stack{},
+ "AWS::CloudFormation::StackSet": &cloudformation.StackSet{},
+ "AWS::CloudFormation::TypeActivation": &cloudformation.TypeActivation{},
+ "AWS::CloudFormation::WaitCondition": &cloudformation.WaitCondition{},
+ "AWS::CloudFormation::WaitConditionHandle": &cloudformation.WaitConditionHandle{},
+ "AWS::CloudFront::CachePolicy": &cloudfront.CachePolicy{},
+ "AWS::CloudFront::CloudFrontOriginAccessIdentity": &cloudfront.CloudFrontOriginAccessIdentity{},
+ "AWS::CloudFront::Distribution": &cloudfront.Distribution{},
+ "AWS::CloudFront::Function": &cloudfront.Function{},
+ "AWS::CloudFront::KeyGroup": &cloudfront.KeyGroup{},
+ "AWS::CloudFront::OriginRequestPolicy": &cloudfront.OriginRequestPolicy{},
+ "AWS::CloudFront::PublicKey": &cloudfront.PublicKey{},
+ "AWS::CloudFront::RealtimeLogConfig": &cloudfront.RealtimeLogConfig{},
+ "AWS::CloudFront::ResponseHeadersPolicy": &cloudfront.ResponseHeadersPolicy{},
+ "AWS::CloudFront::StreamingDistribution": &cloudfront.StreamingDistribution{},
+ "AWS::CloudTrail::Trail": &cloudtrail.Trail{},
+ "AWS::CloudWatch::Alarm": &cloudwatch.Alarm{},
+ "AWS::CloudWatch::AnomalyDetector": &cloudwatch.AnomalyDetector{},
+ "AWS::CloudWatch::CompositeAlarm": &cloudwatch.CompositeAlarm{},
+ "AWS::CloudWatch::Dashboard": &cloudwatch.Dashboard{},
+ "AWS::CloudWatch::InsightRule": &cloudwatch.InsightRule{},
+ "AWS::CloudWatch::MetricStream": &cloudwatch.MetricStream{},
+ "AWS::CodeArtifact::Domain": &codeartifact.Domain{},
+ "AWS::CodeArtifact::Repository": &codeartifact.Repository{},
+ "AWS::CodeBuild::Project": &codebuild.Project{},
+ "AWS::CodeBuild::ReportGroup": &codebuild.ReportGroup{},
+ "AWS::CodeBuild::SourceCredential": &codebuild.SourceCredential{},
+ "AWS::CodeCommit::Repository": &codecommit.Repository{},
+ "AWS::CodeDeploy::Application": &codedeploy.Application{},
+ "AWS::CodeDeploy::DeploymentConfig": &codedeploy.DeploymentConfig{},
+ "AWS::CodeDeploy::DeploymentGroup": &codedeploy.DeploymentGroup{},
+ "AWS::CodeGuruProfiler::ProfilingGroup": &codeguruprofiler.ProfilingGroup{},
+ "AWS::CodeGuruReviewer::RepositoryAssociation": &codegurureviewer.RepositoryAssociation{},
+ "AWS::CodePipeline::CustomActionType": &codepipeline.CustomActionType{},
+ "AWS::CodePipeline::Pipeline": &codepipeline.Pipeline{},
+ "AWS::CodePipeline::Webhook": &codepipeline.Webhook{},
+ "AWS::CodeStar::GitHubRepository": &codestar.GitHubRepository{},
+ "AWS::CodeStarConnections::Connection": &codestarconnections.Connection{},
+ "AWS::CodeStarNotifications::NotificationRule": &codestarnotifications.NotificationRule{},
+ "AWS::Cognito::IdentityPool": &cognito.IdentityPool{},
+ "AWS::Cognito::IdentityPoolRoleAttachment": &cognito.IdentityPoolRoleAttachment{},
+ "AWS::Cognito::UserPool": &cognito.UserPool{},
+ "AWS::Cognito::UserPoolClient": &cognito.UserPoolClient{},
+ "AWS::Cognito::UserPoolDomain": &cognito.UserPoolDomain{},
+ "AWS::Cognito::UserPoolGroup": &cognito.UserPoolGroup{},
+ "AWS::Cognito::UserPoolIdentityProvider": &cognito.UserPoolIdentityProvider{},
+ "AWS::Cognito::UserPoolResourceServer": &cognito.UserPoolResourceServer{},
+ "AWS::Cognito::UserPoolRiskConfigurationAttachment": &cognito.UserPoolRiskConfigurationAttachment{},
+ "AWS::Cognito::UserPoolUICustomizationAttachment": &cognito.UserPoolUICustomizationAttachment{},
+ "AWS::Cognito::UserPoolUser": &cognito.UserPoolUser{},
+ "AWS::Cognito::UserPoolUserToGroupAttachment": &cognito.UserPoolUserToGroupAttachment{},
+ "AWS::Config::AggregationAuthorization": &config.AggregationAuthorization{},
+ "AWS::Config::ConfigRule": &config.ConfigRule{},
+ "AWS::Config::ConfigurationAggregator": &config.ConfigurationAggregator{},
+ "AWS::Config::ConfigurationRecorder": &config.ConfigurationRecorder{},
+ "AWS::Config::ConformancePack": &config.ConformancePack{},
+ "AWS::Config::DeliveryChannel": &config.DeliveryChannel{},
+ "AWS::Config::OrganizationConfigRule": &config.OrganizationConfigRule{},
+ "AWS::Config::OrganizationConformancePack": &config.OrganizationConformancePack{},
+ "AWS::Config::RemediationConfiguration": &config.RemediationConfiguration{},
+ "AWS::Config::StoredQuery": &config.StoredQuery{},
+ "AWS::Connect::ContactFlow": &connect.ContactFlow{},
+ "AWS::Connect::ContactFlowModule": &connect.ContactFlowModule{},
+ "AWS::Connect::HoursOfOperation": &connect.HoursOfOperation{},
+ "AWS::Connect::QuickConnect": &connect.QuickConnect{},
+ "AWS::Connect::User": &connect.User{},
+ "AWS::Connect::UserHierarchyGroup": &connect.UserHierarchyGroup{},
+ "AWS::CustomerProfiles::Domain": &customerprofiles.Domain{},
+ "AWS::CustomerProfiles::Integration": &customerprofiles.Integration{},
+ "AWS::CustomerProfiles::ObjectType": &customerprofiles.ObjectType{},
+ "AWS::DAX::Cluster": &dax.Cluster{},
+ "AWS::DAX::ParameterGroup": &dax.ParameterGroup{},
+ "AWS::DAX::SubnetGroup": &dax.SubnetGroup{},
+ "AWS::DLM::LifecyclePolicy": &dlm.LifecyclePolicy{},
+ "AWS::DMS::Certificate": &dms.Certificate{},
+ "AWS::DMS::Endpoint": &dms.Endpoint{},
+ "AWS::DMS::EventSubscription": &dms.EventSubscription{},
+ "AWS::DMS::ReplicationInstance": &dms.ReplicationInstance{},
+ "AWS::DMS::ReplicationSubnetGroup": &dms.ReplicationSubnetGroup{},
+ "AWS::DMS::ReplicationTask": &dms.ReplicationTask{},
+ "AWS::DataBrew::Dataset": &databrew.Dataset{},
+ "AWS::DataBrew::Job": &databrew.Job{},
+ "AWS::DataBrew::Project": &databrew.Project{},
+ "AWS::DataBrew::Recipe": &databrew.Recipe{},
+ "AWS::DataBrew::Ruleset": &databrew.Ruleset{},
+ "AWS::DataBrew::Schedule": &databrew.Schedule{},
+ "AWS::DataPipeline::Pipeline": &datapipeline.Pipeline{},
+ "AWS::DataSync::Agent": &datasync.Agent{},
+ "AWS::DataSync::LocationEFS": &datasync.LocationEFS{},
+ "AWS::DataSync::LocationFSxWindows": &datasync.LocationFSxWindows{},
+ "AWS::DataSync::LocationHDFS": &datasync.LocationHDFS{},
+ "AWS::DataSync::LocationNFS": &datasync.LocationNFS{},
+ "AWS::DataSync::LocationObjectStorage": &datasync.LocationObjectStorage{},
+ "AWS::DataSync::LocationS3": &datasync.LocationS3{},
+ "AWS::DataSync::LocationSMB": &datasync.LocationSMB{},
+ "AWS::DataSync::Task": &datasync.Task{},
+ "AWS::Detective::Graph": &detective.Graph{},
+ "AWS::Detective::MemberInvitation": &detective.MemberInvitation{},
+ "AWS::DevOpsGuru::NotificationChannel": &devopsguru.NotificationChannel{},
+ "AWS::DevOpsGuru::ResourceCollection": &devopsguru.ResourceCollection{},
+ "AWS::DirectoryService::MicrosoftAD": &directoryservice.MicrosoftAD{},
+ "AWS::DirectoryService::SimpleAD": &directoryservice.SimpleAD{},
+ "AWS::DocDB::DBCluster": &docdb.DBCluster{},
+ "AWS::DocDB::DBClusterParameterGroup": &docdb.DBClusterParameterGroup{},
+ "AWS::DocDB::DBInstance": &docdb.DBInstance{},
+ "AWS::DocDB::DBSubnetGroup": &docdb.DBSubnetGroup{},
+ "AWS::DynamoDB::GlobalTable": &dynamodb.GlobalTable{},
+ "AWS::DynamoDB::Table": &dynamodb.Table{},
+ "AWS::EC2::CapacityReservation": &ec2.CapacityReservation{},
+ "AWS::EC2::CapacityReservationFleet": &ec2.CapacityReservationFleet{},
+ "AWS::EC2::CarrierGateway": &ec2.CarrierGateway{},
+ "AWS::EC2::ClientVpnAuthorizationRule": &ec2.ClientVpnAuthorizationRule{},
+ "AWS::EC2::ClientVpnEndpoint": &ec2.ClientVpnEndpoint{},
+ "AWS::EC2::ClientVpnRoute": &ec2.ClientVpnRoute{},
+ "AWS::EC2::ClientVpnTargetNetworkAssociation": &ec2.ClientVpnTargetNetworkAssociation{},
+ "AWS::EC2::CustomerGateway": &ec2.CustomerGateway{},
+ "AWS::EC2::DHCPOptions": &ec2.DHCPOptions{},
+ "AWS::EC2::EC2Fleet": &ec2.EC2Fleet{},
+ "AWS::EC2::EIP": &ec2.EIP{},
+ "AWS::EC2::EIPAssociation": &ec2.EIPAssociation{},
+ "AWS::EC2::EgressOnlyInternetGateway": &ec2.EgressOnlyInternetGateway{},
+ "AWS::EC2::EnclaveCertificateIamRoleAssociation": &ec2.EnclaveCertificateIamRoleAssociation{},
+ "AWS::EC2::FlowLog": &ec2.FlowLog{},
+ "AWS::EC2::GatewayRouteTableAssociation": &ec2.GatewayRouteTableAssociation{},
+ "AWS::EC2::Host": &ec2.Host{},
+ "AWS::EC2::IPAM": &ec2.IPAM{},
+ "AWS::EC2::IPAMAllocation": &ec2.IPAMAllocation{},
+ "AWS::EC2::IPAMPool": &ec2.IPAMPool{},
+ "AWS::EC2::IPAMScope": &ec2.IPAMScope{},
+ "AWS::EC2::Instance": &ec2.Instance{},
+ "AWS::EC2::InternetGateway": &ec2.InternetGateway{},
+ "AWS::EC2::LaunchTemplate": &ec2.LaunchTemplate{},
+ "AWS::EC2::LocalGatewayRoute": &ec2.LocalGatewayRoute{},
+ "AWS::EC2::LocalGatewayRouteTableVPCAssociation": &ec2.LocalGatewayRouteTableVPCAssociation{},
+ "AWS::EC2::NatGateway": &ec2.NatGateway{},
+ "AWS::EC2::NetworkAcl": &ec2.NetworkAcl{},
+ "AWS::EC2::NetworkAclEntry": &ec2.NetworkAclEntry{},
+ "AWS::EC2::NetworkInsightsAnalysis": &ec2.NetworkInsightsAnalysis{},
+ "AWS::EC2::NetworkInsightsPath": &ec2.NetworkInsightsPath{},
+ "AWS::EC2::NetworkInterface": &ec2.NetworkInterface{},
+ "AWS::EC2::NetworkInterfaceAttachment": &ec2.NetworkInterfaceAttachment{},
+ "AWS::EC2::NetworkInterfacePermission": &ec2.NetworkInterfacePermission{},
+ "AWS::EC2::PlacementGroup": &ec2.PlacementGroup{},
+ "AWS::EC2::PrefixList": &ec2.PrefixList{},
+ "AWS::EC2::Route": &ec2.Route{},
+ "AWS::EC2::RouteTable": &ec2.RouteTable{},
+ "AWS::EC2::SecurityGroup": &ec2.SecurityGroup{},
+ "AWS::EC2::SecurityGroupEgress": &ec2.SecurityGroupEgress{},
+ "AWS::EC2::SecurityGroupIngress": &ec2.SecurityGroupIngress{},
+ "AWS::EC2::SpotFleet": &ec2.SpotFleet{},
+ "AWS::EC2::Subnet": &ec2.Subnet{},
+ "AWS::EC2::SubnetCidrBlock": &ec2.SubnetCidrBlock{},
+ "AWS::EC2::SubnetNetworkAclAssociation": &ec2.SubnetNetworkAclAssociation{},
+ "AWS::EC2::SubnetRouteTableAssociation": &ec2.SubnetRouteTableAssociation{},
+ "AWS::EC2::TrafficMirrorFilter": &ec2.TrafficMirrorFilter{},
+ "AWS::EC2::TrafficMirrorFilterRule": &ec2.TrafficMirrorFilterRule{},
+ "AWS::EC2::TrafficMirrorSession": &ec2.TrafficMirrorSession{},
+ "AWS::EC2::TrafficMirrorTarget": &ec2.TrafficMirrorTarget{},
+ "AWS::EC2::TransitGateway": &ec2.TransitGateway{},
+ "AWS::EC2::TransitGatewayAttachment": &ec2.TransitGatewayAttachment{},
+ "AWS::EC2::TransitGatewayConnect": &ec2.TransitGatewayConnect{},
+ "AWS::EC2::TransitGatewayMulticastDomain": &ec2.TransitGatewayMulticastDomain{},
+ "AWS::EC2::TransitGatewayMulticastDomainAssociation": &ec2.TransitGatewayMulticastDomainAssociation{},
+ "AWS::EC2::TransitGatewayMulticastGroupMember": &ec2.TransitGatewayMulticastGroupMember{},
+ "AWS::EC2::TransitGatewayMulticastGroupSource": &ec2.TransitGatewayMulticastGroupSource{},
+ "AWS::EC2::TransitGatewayPeeringAttachment": &ec2.TransitGatewayPeeringAttachment{},
+ "AWS::EC2::TransitGatewayRoute": &ec2.TransitGatewayRoute{},
+ "AWS::EC2::TransitGatewayRouteTable": &ec2.TransitGatewayRouteTable{},
+ "AWS::EC2::TransitGatewayRouteTableAssociation": &ec2.TransitGatewayRouteTableAssociation{},
+ "AWS::EC2::TransitGatewayRouteTablePropagation": &ec2.TransitGatewayRouteTablePropagation{},
+ "AWS::EC2::TransitGatewayVpcAttachment": &ec2.TransitGatewayVpcAttachment{},
+ "AWS::EC2::VPC": &ec2.VPC{},
+ "AWS::EC2::VPCCidrBlock": &ec2.VPCCidrBlock{},
+ "AWS::EC2::VPCDHCPOptionsAssociation": &ec2.VPCDHCPOptionsAssociation{},
+ "AWS::EC2::VPCEndpoint": &ec2.VPCEndpoint{},
+ "AWS::EC2::VPCEndpointConnectionNotification": &ec2.VPCEndpointConnectionNotification{},
+ "AWS::EC2::VPCEndpointService": &ec2.VPCEndpointService{},
+ "AWS::EC2::VPCEndpointServicePermissions": &ec2.VPCEndpointServicePermissions{},
+ "AWS::EC2::VPCGatewayAttachment": &ec2.VPCGatewayAttachment{},
+ "AWS::EC2::VPCPeeringConnection": &ec2.VPCPeeringConnection{},
+ "AWS::EC2::VPNConnection": &ec2.VPNConnection{},
+ "AWS::EC2::VPNConnectionRoute": &ec2.VPNConnectionRoute{},
+ "AWS::EC2::VPNGateway": &ec2.VPNGateway{},
+ "AWS::EC2::VPNGatewayRoutePropagation": &ec2.VPNGatewayRoutePropagation{},
+ "AWS::EC2::Volume": &ec2.Volume{},
+ "AWS::EC2::VolumeAttachment": &ec2.VolumeAttachment{},
+ "AWS::ECR::PublicRepository": &ecr.PublicRepository{},
+ "AWS::ECR::RegistryPolicy": &ecr.RegistryPolicy{},
+ "AWS::ECR::ReplicationConfiguration": &ecr.ReplicationConfiguration{},
+ "AWS::ECR::Repository": &ecr.Repository{},
+ "AWS::ECS::CapacityProvider": &ecs.CapacityProvider{},
+ "AWS::ECS::Cluster": &ecs.Cluster{},
+ "AWS::ECS::ClusterCapacityProviderAssociations": &ecs.ClusterCapacityProviderAssociations{},
+ "AWS::ECS::PrimaryTaskSet": &ecs.PrimaryTaskSet{},
+ "AWS::ECS::Service": &ecs.Service{},
+ "AWS::ECS::TaskDefinition": &ecs.TaskDefinition{},
+ "AWS::ECS::TaskSet": &ecs.TaskSet{},
+ "AWS::EFS::AccessPoint": &efs.AccessPoint{},
+ "AWS::EFS::FileSystem": &efs.FileSystem{},
+ "AWS::EFS::MountTarget": &efs.MountTarget{},
+ "AWS::EKS::Addon": &eks.Addon{},
+ "AWS::EKS::Cluster": &eks.Cluster{},
+ "AWS::EKS::AccessEntry": &eks.AccessEntry{},
+ "AWS::EKS::FargateProfile": &eks.FargateProfile{},
+ "AWS::EKS::Nodegroup": &eks.Nodegroup{},
+ "AWS::EMR::Cluster": &emr.Cluster{},
+ "AWS::EMR::InstanceFleetConfig": &emr.InstanceFleetConfig{},
+ "AWS::EMR::InstanceGroupConfig": &emr.InstanceGroupConfig{},
+ "AWS::EMR::SecurityConfiguration": &emr.SecurityConfiguration{},
+ "AWS::EMR::Step": &emr.Step{},
+ "AWS::EMR::Studio": &emr.Studio{},
+ "AWS::EMR::StudioSessionMapping": &emr.StudioSessionMapping{},
+ "AWS::EMRContainers::VirtualCluster": &emrcontainers.VirtualCluster{},
+ "AWS::ElastiCache::CacheCluster": &elasticache.CacheCluster{},
+ "AWS::ElastiCache::GlobalReplicationGroup": &elasticache.GlobalReplicationGroup{},
+ "AWS::ElastiCache::ParameterGroup": &elasticache.ParameterGroup{},
+ "AWS::ElastiCache::ReplicationGroup": &elasticache.ReplicationGroup{},
+ "AWS::ElastiCache::SecurityGroup": &elasticache.SecurityGroup{},
+ "AWS::ElastiCache::SecurityGroupIngress": &elasticache.SecurityGroupIngress{},
+ "AWS::ElastiCache::SubnetGroup": &elasticache.SubnetGroup{},
+ "AWS::ElastiCache::User": &elasticache.User{},
+ "AWS::ElastiCache::UserGroup": &elasticache.UserGroup{},
+ "AWS::ElasticBeanstalk::Application": &elasticbeanstalk.Application{},
+ "AWS::ElasticBeanstalk::ApplicationVersion": &elasticbeanstalk.ApplicationVersion{},
+ "AWS::ElasticBeanstalk::ConfigurationTemplate": &elasticbeanstalk.ConfigurationTemplate{},
+ "AWS::ElasticBeanstalk::Environment": &elasticbeanstalk.Environment{},
+ "AWS::ElasticLoadBalancing::LoadBalancer": &elasticloadbalancing.LoadBalancer{},
+ "AWS::ElasticLoadBalancingV2::Listener": &elasticloadbalancingv2.Listener{},
+ "AWS::ElasticLoadBalancingV2::ListenerCertificate": &elasticloadbalancingv2.ListenerCertificate{},
+ "AWS::ElasticLoadBalancingV2::ListenerRule": &elasticloadbalancingv2.ListenerRule{},
+ "AWS::ElasticLoadBalancingV2::LoadBalancer": &elasticloadbalancingv2.LoadBalancer{},
+ "AWS::ElasticLoadBalancingV2::TargetGroup": &elasticloadbalancingv2.TargetGroup{},
+ "AWS::Elasticsearch::Domain": &elasticsearch.Domain{},
+ "AWS::EventSchemas::Discoverer": &eventschemas.Discoverer{},
+ "AWS::EventSchemas::Registry": &eventschemas.Registry{},
+ "AWS::EventSchemas::RegistryPolicy": &eventschemas.RegistryPolicy{},
+ "AWS::EventSchemas::Schema": &eventschemas.Schema{},
+ "AWS::Events::ApiDestination": &events.ApiDestination{},
+ "AWS::Events::Archive": &events.Archive{},
+ "AWS::Events::Connection": &events.Connection{},
+ "AWS::Events::EventBus": &events.EventBus{},
+ "AWS::Events::EventBusPolicy": &events.EventBusPolicy{},
+ "AWS::Events::Rule": &events.Rule{},
+ "AWS::Evidently::Experiment": &evidently.Experiment{},
+ "AWS::Evidently::Feature": &evidently.Feature{},
+ "AWS::Evidently::Launch": &evidently.Launch{},
+ "AWS::Evidently::Project": &evidently.Project{},
+ "AWS::FIS::ExperimentTemplate": &fis.ExperimentTemplate{},
+ "AWS::FMS::NotificationChannel": &fms.NotificationChannel{},
+ "AWS::FMS::Policy": &fms.Policy{},
+ "AWS::FSx::FileSystem": &fsx.FileSystem{},
+ "AWS::FinSpace::Environment": &finspace.Environment{},
+ "AWS::FraudDetector::Detector": &frauddetector.Detector{},
+ "AWS::FraudDetector::EntityType": &frauddetector.EntityType{},
+ "AWS::FraudDetector::EventType": &frauddetector.EventType{},
+ "AWS::FraudDetector::Label": &frauddetector.Label{},
+ "AWS::FraudDetector::Outcome": &frauddetector.Outcome{},
+ "AWS::FraudDetector::Variable": &frauddetector.Variable{},
+ "AWS::GameLift::Alias": &gamelift.Alias{},
+ "AWS::GameLift::Build": &gamelift.Build{},
+ "AWS::GameLift::Fleet": &gamelift.Fleet{},
+ "AWS::GameLift::GameServerGroup": &gamelift.GameServerGroup{},
+ "AWS::GameLift::GameSessionQueue": &gamelift.GameSessionQueue{},
+ "AWS::GameLift::MatchmakingConfiguration": &gamelift.MatchmakingConfiguration{},
+ "AWS::GameLift::MatchmakingRuleSet": &gamelift.MatchmakingRuleSet{},
+ "AWS::GameLift::Script": &gamelift.Script{},
+ "AWS::GlobalAccelerator::Accelerator": &globalaccelerator.Accelerator{},
+ "AWS::GlobalAccelerator::EndpointGroup": &globalaccelerator.EndpointGroup{},
+ "AWS::GlobalAccelerator::Listener": &globalaccelerator.Listener{},
+ "AWS::Glue::Classifier": &glue.Classifier{},
+ "AWS::Glue::Connection": &glue.Connection{},
+ "AWS::Glue::Crawler": &glue.Crawler{},
+ "AWS::Glue::DataCatalogEncryptionSettings": &glue.DataCatalogEncryptionSettings{},
+ "AWS::Glue::Database": &glue.Database{},
+ "AWS::Glue::DevEndpoint": &glue.DevEndpoint{},
+ "AWS::Glue::Job": &glue.Job{},
+ "AWS::Glue::MLTransform": &glue.MLTransform{},
+ "AWS::Glue::Partition": &glue.Partition{},
+ "AWS::Glue::Registry": &glue.Registry{},
+ "AWS::Glue::Schema": &glue.Schema{},
+ "AWS::Glue::SchemaVersion": &glue.SchemaVersion{},
+ "AWS::Glue::SchemaVersionMetadata": &glue.SchemaVersionMetadata{},
+ "AWS::Glue::SecurityConfiguration": &glue.SecurityConfiguration{},
+ "AWS::Glue::Table": &glue.Table{},
+ "AWS::Glue::Trigger": &glue.Trigger{},
+ "AWS::Glue::Workflow": &glue.Workflow{},
+ "AWS::Greengrass::ConnectorDefinition": &greengrass.ConnectorDefinition{},
+ "AWS::Greengrass::ConnectorDefinitionVersion": &greengrass.ConnectorDefinitionVersion{},
+ "AWS::Greengrass::CoreDefinition": &greengrass.CoreDefinition{},
+ "AWS::Greengrass::CoreDefinitionVersion": &greengrass.CoreDefinitionVersion{},
+ "AWS::Greengrass::DeviceDefinition": &greengrass.DeviceDefinition{},
+ "AWS::Greengrass::DeviceDefinitionVersion": &greengrass.DeviceDefinitionVersion{},
+ "AWS::Greengrass::FunctionDefinition": &greengrass.FunctionDefinition{},
+ "AWS::Greengrass::FunctionDefinitionVersion": &greengrass.FunctionDefinitionVersion{},
+ "AWS::Greengrass::Group": &greengrass.Group{},
+ "AWS::Greengrass::GroupVersion": &greengrass.GroupVersion{},
+ "AWS::Greengrass::LoggerDefinition": &greengrass.LoggerDefinition{},
+ "AWS::Greengrass::LoggerDefinitionVersion": &greengrass.LoggerDefinitionVersion{},
+ "AWS::Greengrass::ResourceDefinition": &greengrass.ResourceDefinition{},
+ "AWS::Greengrass::ResourceDefinitionVersion": &greengrass.ResourceDefinitionVersion{},
+ "AWS::Greengrass::SubscriptionDefinition": &greengrass.SubscriptionDefinition{},
+ "AWS::Greengrass::SubscriptionDefinitionVersion": &greengrass.SubscriptionDefinitionVersion{},
+ "AWS::GreengrassV2::ComponentVersion": &greengrassv2.ComponentVersion{},
+ "AWS::GroundStation::Config": &groundstation.Config{},
+ "AWS::GroundStation::DataflowEndpointGroup": &groundstation.DataflowEndpointGroup{},
+ "AWS::GroundStation::MissionProfile": &groundstation.MissionProfile{},
+ "AWS::GuardDuty::Detector": &guardduty.Detector{},
+ "AWS::GuardDuty::Filter": &guardduty.Filter{},
+ "AWS::GuardDuty::IPSet": &guardduty.IPSet{},
+ "AWS::GuardDuty::Master": &guardduty.Master{},
+ "AWS::GuardDuty::Member": &guardduty.Member{},
+ "AWS::GuardDuty::ThreatIntelSet": &guardduty.ThreatIntelSet{},
+ "AWS::HealthLake::FHIRDatastore": &healthlake.FHIRDatastore{},
+ "AWS::IAM::AccessKey": &iam.AccessKey{},
+ "AWS::IAM::Group": &iam.Group{},
+ "AWS::IAM::InstanceProfile": &iam.InstanceProfile{},
+ "AWS::IAM::ManagedPolicy": &iam.ManagedPolicy{},
+ "AWS::IAM::OIDCProvider": &iam.OIDCProvider{},
+ "AWS::IAM::Policy": &iam.Policy{},
+ "AWS::IAM::Role": &iam.Role{},
+ "AWS::IAM::SAMLProvider": &iam.SAMLProvider{},
+ "AWS::IAM::ServerCertificate": &iam.ServerCertificate{},
+ "AWS::IAM::ServiceLinkedRole": &iam.ServiceLinkedRole{},
+ "AWS::IAM::User": &iam.User{},
+ "AWS::IAM::UserToGroupAddition": &iam.UserToGroupAddition{},
+ "AWS::IAM::VirtualMFADevice": &iam.VirtualMFADevice{},
+ "AWS::IVS::Channel": &ivs.Channel{},
+ "AWS::IVS::PlaybackKeyPair": &ivs.PlaybackKeyPair{},
+ "AWS::IVS::RecordingConfiguration": &ivs.RecordingConfiguration{},
+ "AWS::IVS::StreamKey": &ivs.StreamKey{},
+ "AWS::ImageBuilder::Component": &imagebuilder.Component{},
+ "AWS::ImageBuilder::ContainerRecipe": &imagebuilder.ContainerRecipe{},
+ "AWS::ImageBuilder::DistributionConfiguration": &imagebuilder.DistributionConfiguration{},
+ "AWS::ImageBuilder::Image": &imagebuilder.Image{},
+ "AWS::ImageBuilder::ImagePipeline": &imagebuilder.ImagePipeline{},
+ "AWS::ImageBuilder::ImageRecipe": &imagebuilder.ImageRecipe{},
+ "AWS::ImageBuilder::InfrastructureConfiguration": &imagebuilder.InfrastructureConfiguration{},
+ "AWS::Inspector::AssessmentTarget": &inspector.AssessmentTarget{},
+ "AWS::Inspector::AssessmentTemplate": &inspector.AssessmentTemplate{},
+ "AWS::Inspector::ResourceGroup": &inspector.ResourceGroup{},
+ "AWS::IoT1Click::Device": &iot1click.Device{},
+ "AWS::IoT1Click::Placement": &iot1click.Placement{},
+ "AWS::IoT1Click::Project": &iot1click.Project{},
+ "AWS::IoT::AccountAuditConfiguration": &iot.AccountAuditConfiguration{},
+ "AWS::IoT::Authorizer": &iot.Authorizer{},
+ "AWS::IoT::Certificate": &iot.Certificate{},
+ "AWS::IoT::CustomMetric": &iot.CustomMetric{},
+ "AWS::IoT::Dimension": &iot.Dimension{},
+ "AWS::IoT::DomainConfiguration": &iot.DomainConfiguration{},
+ "AWS::IoT::FleetMetric": &iot.FleetMetric{},
+ "AWS::IoT::JobTemplate": &iot.JobTemplate{},
+ "AWS::IoT::Logging": &iot.Logging{},
+ "AWS::IoT::MitigationAction": &iot.MitigationAction{},
+ "AWS::IoT::Policy": &iot.Policy{},
+ "AWS::IoT::PolicyPrincipalAttachment": &iot.PolicyPrincipalAttachment{},
+ "AWS::IoT::ProvisioningTemplate": &iot.ProvisioningTemplate{},
+ "AWS::IoT::ResourceSpecificLogging": &iot.ResourceSpecificLogging{},
+ "AWS::IoT::ScheduledAudit": &iot.ScheduledAudit{},
+ "AWS::IoT::SecurityProfile": &iot.SecurityProfile{},
+ "AWS::IoT::Thing": &iot.Thing{},
+ "AWS::IoT::ThingPrincipalAttachment": &iot.ThingPrincipalAttachment{},
+ "AWS::IoT::TopicRule": &iot.TopicRule{},
+ "AWS::IoT::TopicRuleDestination": &iot.TopicRuleDestination{},
+ "AWS::IoTAnalytics::Channel": &iotanalytics.Channel{},
+ "AWS::IoTAnalytics::Dataset": &iotanalytics.Dataset{},
+ "AWS::IoTAnalytics::Datastore": &iotanalytics.Datastore{},
+ "AWS::IoTAnalytics::Pipeline": &iotanalytics.Pipeline{},
+ "AWS::IoTCoreDeviceAdvisor::SuiteDefinition": &iotcoredeviceadvisor.SuiteDefinition{},
+ "AWS::IoTEvents::DetectorModel": &iotevents.DetectorModel{},
+ "AWS::IoTEvents::Input": &iotevents.Input{},
+ "AWS::IoTFleetHub::Application": &iotfleethub.Application{},
+ "AWS::IoTSiteWise::AccessPolicy": &iotsitewise.AccessPolicy{},
+ "AWS::IoTSiteWise::Asset": &iotsitewise.Asset{},
+ "AWS::IoTSiteWise::AssetModel": &iotsitewise.AssetModel{},
+ "AWS::IoTSiteWise::Dashboard": &iotsitewise.Dashboard{},
+ "AWS::IoTSiteWise::Gateway": &iotsitewise.Gateway{},
+ "AWS::IoTSiteWise::Portal": &iotsitewise.Portal{},
+ "AWS::IoTSiteWise::Project": &iotsitewise.Project{},
+ "AWS::IoTThingsGraph::FlowTemplate": &iotthingsgraph.FlowTemplate{},
+ "AWS::IoTWireless::Destination": &iotwireless.Destination{},
+ "AWS::IoTWireless::DeviceProfile": &iotwireless.DeviceProfile{},
+ "AWS::IoTWireless::FuotaTask": &iotwireless.FuotaTask{},
+ "AWS::IoTWireless::MulticastGroup": &iotwireless.MulticastGroup{},
+ "AWS::IoTWireless::PartnerAccount": &iotwireless.PartnerAccount{},
+ "AWS::IoTWireless::ServiceProfile": &iotwireless.ServiceProfile{},
+ "AWS::IoTWireless::TaskDefinition": &iotwireless.TaskDefinition{},
+ "AWS::IoTWireless::WirelessDevice": &iotwireless.WirelessDevice{},
+ "AWS::IoTWireless::WirelessGateway": &iotwireless.WirelessGateway{},
+ "AWS::KMS::Alias": &kms.Alias{},
+ "AWS::KMS::Key": &kms.Key{},
+ "AWS::KMS::ReplicaKey": &kms.ReplicaKey{},
+ "AWS::Kendra::DataSource": &kendra.DataSource{},
+ "AWS::Kendra::Faq": &kendra.Faq{},
+ "AWS::Kendra::Index": &kendra.Index{},
+ "AWS::Kinesis::Stream": &kinesis.Stream{},
+ "AWS::Kinesis::StreamConsumer": &kinesis.StreamConsumer{},
+ "AWS::KinesisAnalytics::Application": &kinesisanalytics.Application{},
+ "AWS::KinesisAnalytics::ApplicationOutput": &kinesisanalytics.ApplicationOutput{},
+ "AWS::KinesisAnalytics::ApplicationReferenceDataSource": &kinesisanalytics.ApplicationReferenceDataSource{},
+ "AWS::KinesisAnalyticsV2::Application": &kinesisanalyticsv2.Application{},
+ "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": &kinesisanalyticsv2.ApplicationCloudWatchLoggingOption{},
+ "AWS::KinesisAnalyticsV2::ApplicationOutput": &kinesisanalyticsv2.ApplicationOutput{},
+ "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": &kinesisanalyticsv2.ApplicationReferenceDataSource{},
+ "AWS::KinesisFirehose::DeliveryStream": &kinesisfirehose.DeliveryStream{},
+ "AWS::LakeFormation::DataLakeSettings": &lakeformation.DataLakeSettings{},
+ "AWS::LakeFormation::Permissions": &lakeformation.Permissions{},
+ "AWS::LakeFormation::Resource": &lakeformation.Resource{},
+ "AWS::Lambda::Alias": &lambda.Alias{},
+ "AWS::Lambda::CodeSigningConfig": &lambda.CodeSigningConfig{},
+ "AWS::Lambda::EventInvokeConfig": &lambda.EventInvokeConfig{},
+ "AWS::Lambda::EventSourceMapping": &lambda.EventSourceMapping{},
+ "AWS::Lambda::Function": &lambda.Function{},
+ "AWS::Lambda::LayerVersion": &lambda.LayerVersion{},
+ "AWS::Lambda::LayerVersionPermission": &lambda.LayerVersionPermission{},
+ "AWS::Lambda::Permission": &lambda.Permission{},
+ "AWS::Lambda::Version": &lambda.Version{},
+ "AWS::LicenseManager::Grant": &licensemanager.Grant{},
+ "AWS::LicenseManager::License": &licensemanager.License{},
+ "AWS::Lightsail::Database": &lightsail.Database{},
+ "AWS::Lightsail::Disk": &lightsail.Disk{},
+ "AWS::Lightsail::Instance": &lightsail.Instance{},
+ "AWS::Lightsail::StaticIp": &lightsail.StaticIp{},
+ "AWS::Location::GeofenceCollection": &location.GeofenceCollection{},
+ "AWS::Location::Map": &location.Map{},
+ "AWS::Location::PlaceIndex": &location.PlaceIndex{},
+ "AWS::Location::RouteCalculator": &location.RouteCalculator{},
+ "AWS::Location::Tracker": &location.Tracker{},
+ "AWS::Location::TrackerConsumer": &location.TrackerConsumer{},
+ "AWS::Logs::Destination": &logs.Destination{},
+ "AWS::Logs::LogGroup": &logs.LogGroup{},
+ "AWS::Logs::LogStream": &logs.LogStream{},
+ "AWS::Logs::MetricFilter": &logs.MetricFilter{},
+ "AWS::Logs::QueryDefinition": &logs.QueryDefinition{},
+ "AWS::Logs::ResourcePolicy": &logs.ResourcePolicy{},
+ "AWS::Logs::SubscriptionFilter": &logs.SubscriptionFilter{},
+ "AWS::LookoutEquipment::InferenceScheduler": &lookoutequipment.InferenceScheduler{},
+ "AWS::LookoutMetrics::Alert": &lookoutmetrics.Alert{},
+ "AWS::LookoutMetrics::AnomalyDetector": &lookoutmetrics.AnomalyDetector{},
+ "AWS::LookoutVision::Project": &lookoutvision.Project{},
+ "AWS::MSK::Cluster": &msk.Cluster{},
+ "AWS::MWAA::Environment": &mwaa.Environment{},
+ "AWS::Macie::CustomDataIdentifier": &macie.CustomDataIdentifier{},
+ "AWS::Macie::FindingsFilter": &macie.FindingsFilter{},
+ "AWS::Macie::Session": &macie.Session{},
+ "AWS::ManagedBlockchain::Member": &managedblockchain.Member{},
+ "AWS::ManagedBlockchain::Node": &managedblockchain.Node{},
+ "AWS::MediaConnect::Flow": &mediaconnect.Flow{},
+ "AWS::MediaConnect::FlowEntitlement": &mediaconnect.FlowEntitlement{},
+ "AWS::MediaConnect::FlowOutput": &mediaconnect.FlowOutput{},
+ "AWS::MediaConnect::FlowSource": &mediaconnect.FlowSource{},
+ "AWS::MediaConnect::FlowVpcInterface": &mediaconnect.FlowVpcInterface{},
+ "AWS::MediaConvert::JobTemplate": &mediaconvert.JobTemplate{},
+ "AWS::MediaConvert::Preset": &mediaconvert.Preset{},
+ "AWS::MediaConvert::Queue": &mediaconvert.Queue{},
+ "AWS::MediaLive::Channel": &medialive.Channel{},
+ "AWS::MediaLive::Input": &medialive.Input{},
+ "AWS::MediaLive::InputSecurityGroup": &medialive.InputSecurityGroup{},
+ "AWS::MediaPackage::Asset": &mediapackage.Asset{},
+ "AWS::MediaPackage::Channel": &mediapackage.Channel{},
+ "AWS::MediaPackage::OriginEndpoint": &mediapackage.OriginEndpoint{},
+ "AWS::MediaPackage::PackagingConfiguration": &mediapackage.PackagingConfiguration{},
+ "AWS::MediaPackage::PackagingGroup": &mediapackage.PackagingGroup{},
+ "AWS::MediaStore::Container": &mediastore.Container{},
+ "AWS::MemoryDB::ACL": &memorydb.ACL{},
+ "AWS::MemoryDB::Cluster": &memorydb.Cluster{},
+ "AWS::MemoryDB::ParameterGroup": &memorydb.ParameterGroup{},
+ "AWS::MemoryDB::SubnetGroup": &memorydb.SubnetGroup{},
+ "AWS::MemoryDB::User": &memorydb.User{},
+ "AWS::Neptune::DBCluster": &neptune.DBCluster{},
+ "AWS::Neptune::DBClusterParameterGroup": &neptune.DBClusterParameterGroup{},
+ "AWS::Neptune::DBInstance": &neptune.DBInstance{},
+ "AWS::Neptune::DBParameterGroup": &neptune.DBParameterGroup{},
+ "AWS::Neptune::DBSubnetGroup": &neptune.DBSubnetGroup{},
+ "AWS::NetworkFirewall::Firewall": &networkfirewall.Firewall{},
+ "AWS::NetworkFirewall::FirewallPolicy": &networkfirewall.FirewallPolicy{},
+ "AWS::NetworkFirewall::LoggingConfiguration": &networkfirewall.LoggingConfiguration{},
+ "AWS::NetworkFirewall::RuleGroup": &networkfirewall.RuleGroup{},
+ "AWS::NetworkManager::CustomerGatewayAssociation": &networkmanager.CustomerGatewayAssociation{},
+ "AWS::NetworkManager::Device": &networkmanager.Device{},
+ "AWS::NetworkManager::GlobalNetwork": &networkmanager.GlobalNetwork{},
+ "AWS::NetworkManager::Link": &networkmanager.Link{},
+ "AWS::NetworkManager::LinkAssociation": &networkmanager.LinkAssociation{},
+ "AWS::NetworkManager::Site": &networkmanager.Site{},
+ "AWS::NetworkManager::TransitGatewayRegistration": &networkmanager.TransitGatewayRegistration{},
+ "AWS::NimbleStudio::LaunchProfile": &nimblestudio.LaunchProfile{},
+ "AWS::NimbleStudio::StreamingImage": &nimblestudio.StreamingImage{},
+ "AWS::NimbleStudio::Studio": &nimblestudio.Studio{},
+ "AWS::NimbleStudio::StudioComponent": &nimblestudio.StudioComponent{},
+ "AWS::OpenSearchService::Domain": &opensearchservice.Domain{},
+ "AWS::OpsWorks::App": &opsworks.App{},
+ "AWS::OpsWorks::ElasticLoadBalancerAttachment": &opsworks.ElasticLoadBalancerAttachment{},
+ "AWS::OpsWorks::Instance": &opsworks.Instance{},
+ "AWS::OpsWorks::Layer": &opsworks.Layer{},
+ "AWS::OpsWorks::Stack": &opsworks.Stack{},
+ "AWS::OpsWorks::UserProfile": &opsworks.UserProfile{},
+ "AWS::OpsWorks::Volume": &opsworks.Volume{},
+ "AWS::OpsWorksCM::Server": &opsworkscm.Server{},
+ "AWS::Panorama::ApplicationInstance": &panorama.ApplicationInstance{},
+ "AWS::Panorama::Package": &panorama.Package{},
+ "AWS::Panorama::PackageVersion": &panorama.PackageVersion{},
+ "AWS::Pinpoint::ADMChannel": &pinpoint.ADMChannel{},
+ "AWS::Pinpoint::APNSChannel": &pinpoint.APNSChannel{},
+ "AWS::Pinpoint::APNSSandboxChannel": &pinpoint.APNSSandboxChannel{},
+ "AWS::Pinpoint::APNSVoipChannel": &pinpoint.APNSVoipChannel{},
+ "AWS::Pinpoint::APNSVoipSandboxChannel": &pinpoint.APNSVoipSandboxChannel{},
+ "AWS::Pinpoint::App": &pinpoint.App{},
+ "AWS::Pinpoint::ApplicationSettings": &pinpoint.ApplicationSettings{},
+ "AWS::Pinpoint::BaiduChannel": &pinpoint.BaiduChannel{},
+ "AWS::Pinpoint::Campaign": &pinpoint.Campaign{},
+ "AWS::Pinpoint::EmailChannel": &pinpoint.EmailChannel{},
+ "AWS::Pinpoint::EmailTemplate": &pinpoint.EmailTemplate{},
+ "AWS::Pinpoint::EventStream": &pinpoint.EventStream{},
+ "AWS::Pinpoint::GCMChannel": &pinpoint.GCMChannel{},
+ "AWS::Pinpoint::InAppTemplate": &pinpoint.InAppTemplate{},
+ "AWS::Pinpoint::PushTemplate": &pinpoint.PushTemplate{},
+ "AWS::Pinpoint::SMSChannel": &pinpoint.SMSChannel{},
+ "AWS::Pinpoint::Segment": &pinpoint.Segment{},
+ "AWS::Pinpoint::SmsTemplate": &pinpoint.SmsTemplate{},
+ "AWS::Pinpoint::VoiceChannel": &pinpoint.VoiceChannel{},
+ "AWS::PinpointEmail::ConfigurationSet": &pinpointemail.ConfigurationSet{},
+ "AWS::PinpointEmail::ConfigurationSetEventDestination": &pinpointemail.ConfigurationSetEventDestination{},
+ "AWS::PinpointEmail::DedicatedIpPool": &pinpointemail.DedicatedIpPool{},
+ "AWS::PinpointEmail::Identity": &pinpointemail.Identity{},
+ "AWS::QLDB::Ledger": &qldb.Ledger{},
+ "AWS::QLDB::Stream": &qldb.Stream{},
+ "AWS::QuickSight::Analysis": &quicksight.Analysis{},
+ "AWS::QuickSight::Dashboard": &quicksight.Dashboard{},
+ "AWS::QuickSight::DataSet": &quicksight.DataSet{},
+ "AWS::QuickSight::DataSource": &quicksight.DataSource{},
+ "AWS::QuickSight::Template": &quicksight.Template{},
+ "AWS::QuickSight::Theme": &quicksight.Theme{},
+ "AWS::RAM::ResourceShare": &ram.ResourceShare{},
+ "AWS::RDS::DBCluster": &rds.DBCluster{},
+ "AWS::RDS::DBClusterParameterGroup": &rds.DBClusterParameterGroup{},
+ "AWS::RDS::DBInstance": &rds.DBInstance{},
+ "AWS::RDS::DBParameterGroup": &rds.DBParameterGroup{},
+ "AWS::RDS::DBProxy": &rds.DBProxy{},
+ "AWS::RDS::DBProxyEndpoint": &rds.DBProxyEndpoint{},
+ "AWS::RDS::DBProxyTargetGroup": &rds.DBProxyTargetGroup{},
+ "AWS::RDS::DBSecurityGroup": &rds.DBSecurityGroup{},
+ "AWS::RDS::DBSecurityGroupIngress": &rds.DBSecurityGroupIngress{},
+ "AWS::RDS::DBSubnetGroup": &rds.DBSubnetGroup{},
+ "AWS::RDS::EventSubscription": &rds.EventSubscription{},
+ "AWS::RDS::GlobalCluster": &rds.GlobalCluster{},
+ "AWS::RDS::OptionGroup": &rds.OptionGroup{},
+ "AWS::RUM::AppMonitor": &rum.AppMonitor{},
+ "AWS::Redshift::Cluster": &redshift.Cluster{},
+ "AWS::Redshift::ClusterParameterGroup": &redshift.ClusterParameterGroup{},
+ "AWS::Redshift::ClusterSecurityGroup": &redshift.ClusterSecurityGroup{},
+ "AWS::Redshift::ClusterSecurityGroupIngress": &redshift.ClusterSecurityGroupIngress{},
+ "AWS::Redshift::ClusterSubnetGroup": &redshift.ClusterSubnetGroup{},
+ "AWS::Redshift::EndpointAccess": &redshift.EndpointAccess{},
+ "AWS::Redshift::EndpointAuthorization": &redshift.EndpointAuthorization{},
+ "AWS::Redshift::EventSubscription": &redshift.EventSubscription{},
+ "AWS::Redshift::ScheduledAction": &redshift.ScheduledAction{},
+ "AWS::RefactorSpaces::Application": &refactorspaces.Application{},
+ "AWS::RefactorSpaces::Environment": &refactorspaces.Environment{},
+ "AWS::RefactorSpaces::Route": &refactorspaces.Route{},
+ "AWS::RefactorSpaces::Service": &refactorspaces.Service{},
+ "AWS::Rekognition::Project": &rekognition.Project{},
+ "AWS::ResilienceHub::App": &resiliencehub.App{},
+ "AWS::ResilienceHub::ResiliencyPolicy": &resiliencehub.ResiliencyPolicy{},
+ "AWS::ResourceGroups::Group": &resourcegroups.Group{},
+ "AWS::RoboMaker::Fleet": &robomaker.Fleet{},
+ "AWS::RoboMaker::Robot": &robomaker.Robot{},
+ "AWS::RoboMaker::RobotApplication": &robomaker.RobotApplication{},
+ "AWS::RoboMaker::RobotApplicationVersion": &robomaker.RobotApplicationVersion{},
+ "AWS::RoboMaker::SimulationApplication": &robomaker.SimulationApplication{},
+ "AWS::RoboMaker::SimulationApplicationVersion": &robomaker.SimulationApplicationVersion{},
+ "AWS::Route53::DNSSEC": &route53.DNSSEC{},
+ "AWS::Route53::HealthCheck": &route53.HealthCheck{},
+ "AWS::Route53::HostedZone": &route53.HostedZone{},
+ "AWS::Route53::KeySigningKey": &route53.KeySigningKey{},
+ "AWS::Route53::RecordSet": &route53.RecordSet{},
+ "AWS::Route53::RecordSetGroup": &route53.RecordSetGroup{},
+ "AWS::Route53RecoveryControl::Cluster": &route53recoverycontrol.Cluster{},
+ "AWS::Route53RecoveryControl::ControlPanel": &route53recoverycontrol.ControlPanel{},
+ "AWS::Route53RecoveryControl::RoutingControl": &route53recoverycontrol.RoutingControl{},
+ "AWS::Route53RecoveryControl::SafetyRule": &route53recoverycontrol.SafetyRule{},
+ "AWS::Route53RecoveryReadiness::Cell": &route53recoveryreadiness.Cell{},
+ "AWS::Route53RecoveryReadiness::ReadinessCheck": &route53recoveryreadiness.ReadinessCheck{},
+ "AWS::Route53RecoveryReadiness::RecoveryGroup": &route53recoveryreadiness.RecoveryGroup{},
+ "AWS::Route53RecoveryReadiness::ResourceSet": &route53recoveryreadiness.ResourceSet{},
+ "AWS::Route53Resolver::FirewallDomainList": &route53resolver.FirewallDomainList{},
+ "AWS::Route53Resolver::FirewallRuleGroup": &route53resolver.FirewallRuleGroup{},
+ "AWS::Route53Resolver::FirewallRuleGroupAssociation": &route53resolver.FirewallRuleGroupAssociation{},
+ "AWS::Route53Resolver::ResolverConfig": &route53resolver.ResolverConfig{},
+ "AWS::Route53Resolver::ResolverDNSSECConfig": &route53resolver.ResolverDNSSECConfig{},
+ "AWS::Route53Resolver::ResolverEndpoint": &route53resolver.ResolverEndpoint{},
+ "AWS::Route53Resolver::ResolverQueryLoggingConfig": &route53resolver.ResolverQueryLoggingConfig{},
+ "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation": &route53resolver.ResolverQueryLoggingConfigAssociation{},
+ "AWS::Route53Resolver::ResolverRule": &route53resolver.ResolverRule{},
+ "AWS::Route53Resolver::ResolverRuleAssociation": &route53resolver.ResolverRuleAssociation{},
+ "AWS::S3::AccessPoint": &s3.AccessPoint{},
+ "AWS::S3::Bucket": &s3.Bucket{},
+ "AWS::S3::BucketPolicy": &s3.BucketPolicy{},
+ "AWS::S3::MultiRegionAccessPoint": &s3.MultiRegionAccessPoint{},
+ "AWS::S3::MultiRegionAccessPointPolicy": &s3.MultiRegionAccessPointPolicy{},
+ "AWS::S3::StorageLens": &s3.StorageLens{},
+ "AWS::S3ObjectLambda::AccessPoint": &s3objectlambda.AccessPoint{},
+ "AWS::S3ObjectLambda::AccessPointPolicy": &s3objectlambda.AccessPointPolicy{},
+ "AWS::S3Outposts::AccessPoint": &s3outposts.AccessPoint{},
+ "AWS::S3Outposts::Bucket": &s3outposts.Bucket{},
+ "AWS::S3Outposts::BucketPolicy": &s3outposts.BucketPolicy{},
+ "AWS::S3Outposts::Endpoint": &s3outposts.Endpoint{},
+ "AWS::SDB::Domain": &sdb.Domain{},
+ "AWS::SES::ConfigurationSet": &ses.ConfigurationSet{},
+ "AWS::SES::ConfigurationSetEventDestination": &ses.ConfigurationSetEventDestination{},
+ "AWS::SES::ContactList": &ses.ContactList{},
+ "AWS::SES::ReceiptFilter": &ses.ReceiptFilter{},
+ "AWS::SES::ReceiptRule": &ses.ReceiptRule{},
+ "AWS::SES::ReceiptRuleSet": &ses.ReceiptRuleSet{},
+ "AWS::SES::Template": &ses.Template{},
+ "AWS::SNS::Subscription": &sns.Subscription{},
+ "AWS::SNS::Topic": &sns.Topic{},
+ "AWS::SNS::TopicPolicy": &sns.TopicPolicy{},
+ "AWS::SQS::Queue": &sqs.Queue{},
+ "AWS::SQS::QueuePolicy": &sqs.QueuePolicy{},
+ "AWS::SSM::Association": &ssm.Association{},
+ "AWS::SSM::Document": &ssm.Document{},
+ "AWS::SSM::MaintenanceWindow": &ssm.MaintenanceWindow{},
+ "AWS::SSM::MaintenanceWindowTarget": &ssm.MaintenanceWindowTarget{},
+ "AWS::SSM::MaintenanceWindowTask": &ssm.MaintenanceWindowTask{},
+ "AWS::SSM::Parameter": &ssm.Parameter{},
+ "AWS::SSM::PatchBaseline": &ssm.PatchBaseline{},
+ "AWS::SSM::ResourceDataSync": &ssm.ResourceDataSync{},
+ "AWS::SSMContacts::Contact": &ssmcontacts.Contact{},
+ "AWS::SSMContacts::ContactChannel": &ssmcontacts.ContactChannel{},
+ "AWS::SSMIncidents::ReplicationSet": &ssmincidents.ReplicationSet{},
+ "AWS::SSMIncidents::ResponsePlan": &ssmincidents.ResponsePlan{},
+ "AWS::SSO::Assignment": &sso.Assignment{},
+ "AWS::SSO::InstanceAccessControlAttributeConfiguration": &sso.InstanceAccessControlAttributeConfiguration{},
+ "AWS::SSO::PermissionSet": &sso.PermissionSet{},
+ "AWS::SageMaker::App": &sagemaker.App{},
+ "AWS::SageMaker::AppImageConfig": &sagemaker.AppImageConfig{},
+ "AWS::SageMaker::CodeRepository": &sagemaker.CodeRepository{},
+ "AWS::SageMaker::DataQualityJobDefinition": &sagemaker.DataQualityJobDefinition{},
+ "AWS::SageMaker::Device": &sagemaker.Device{},
+ "AWS::SageMaker::DeviceFleet": &sagemaker.DeviceFleet{},
+ "AWS::SageMaker::Domain": &sagemaker.Domain{},
+ "AWS::SageMaker::Endpoint": &sagemaker.Endpoint{},
+ "AWS::SageMaker::EndpointConfig": &sagemaker.EndpointConfig{},
+ "AWS::SageMaker::FeatureGroup": &sagemaker.FeatureGroup{},
+ "AWS::SageMaker::Image": &sagemaker.Image{},
+ "AWS::SageMaker::ImageVersion": &sagemaker.ImageVersion{},
+ "AWS::SageMaker::Model": &sagemaker.Model{},
+ "AWS::SageMaker::ModelBiasJobDefinition": &sagemaker.ModelBiasJobDefinition{},
+ "AWS::SageMaker::ModelExplainabilityJobDefinition": &sagemaker.ModelExplainabilityJobDefinition{},
+ "AWS::SageMaker::ModelPackageGroup": &sagemaker.ModelPackageGroup{},
+ "AWS::SageMaker::ModelQualityJobDefinition": &sagemaker.ModelQualityJobDefinition{},
+ "AWS::SageMaker::MonitoringSchedule": &sagemaker.MonitoringSchedule{},
+ "AWS::SageMaker::NotebookInstance": &sagemaker.NotebookInstance{},
+ "AWS::SageMaker::NotebookInstanceLifecycleConfig": &sagemaker.NotebookInstanceLifecycleConfig{},
+ "AWS::SageMaker::Pipeline": &sagemaker.Pipeline{},
+ "AWS::SageMaker::Project": &sagemaker.Project{},
+ "AWS::SageMaker::UserProfile": &sagemaker.UserProfile{},
+ "AWS::SageMaker::Workteam": &sagemaker.Workteam{},
+ "AWS::SecretsManager::ResourcePolicy": &secretsmanager.ResourcePolicy{},
+ "AWS::SecretsManager::RotationSchedule": &secretsmanager.RotationSchedule{},
+ "AWS::SecretsManager::Secret": &secretsmanager.Secret{},
+ "AWS::SecretsManager::SecretTargetAttachment": &secretsmanager.SecretTargetAttachment{},
+ "AWS::SecurityHub::Hub": &securityhub.Hub{},
+ "AWS::Serverless::Api": &serverless.Api{},
+ "AWS::Serverless::Application": &serverless.Application{},
+ "AWS::Serverless::Function": &serverless.Function{},
+ "AWS::Serverless::LayerVersion": &serverless.LayerVersion{},
+ "AWS::Serverless::SimpleTable": &serverless.SimpleTable{},
+ "AWS::Serverless::StateMachine": &serverless.StateMachine{},
+ "AWS::ServiceCatalog::AcceptedPortfolioShare": &servicecatalog.AcceptedPortfolioShare{},
+ "AWS::ServiceCatalog::CloudFormationProduct": &servicecatalog.CloudFormationProduct{},
+ "AWS::ServiceCatalog::CloudFormationProvisionedProduct": &servicecatalog.CloudFormationProvisionedProduct{},
+ "AWS::ServiceCatalog::LaunchNotificationConstraint": &servicecatalog.LaunchNotificationConstraint{},
+ "AWS::ServiceCatalog::LaunchRoleConstraint": &servicecatalog.LaunchRoleConstraint{},
+ "AWS::ServiceCatalog::LaunchTemplateConstraint": &servicecatalog.LaunchTemplateConstraint{},
+ "AWS::ServiceCatalog::Portfolio": &servicecatalog.Portfolio{},
+ "AWS::ServiceCatalog::PortfolioPrincipalAssociation": &servicecatalog.PortfolioPrincipalAssociation{},
+ "AWS::ServiceCatalog::PortfolioProductAssociation": &servicecatalog.PortfolioProductAssociation{},
+ "AWS::ServiceCatalog::PortfolioShare": &servicecatalog.PortfolioShare{},
+ "AWS::ServiceCatalog::ResourceUpdateConstraint": &servicecatalog.ResourceUpdateConstraint{},
+ "AWS::ServiceCatalog::ServiceAction": &servicecatalog.ServiceAction{},
+ "AWS::ServiceCatalog::ServiceActionAssociation": &servicecatalog.ServiceActionAssociation{},
+ "AWS::ServiceCatalog::StackSetConstraint": &servicecatalog.StackSetConstraint{},
+ "AWS::ServiceCatalog::TagOption": &servicecatalog.TagOption{},
+ "AWS::ServiceCatalog::TagOptionAssociation": &servicecatalog.TagOptionAssociation{},
+ "AWS::ServiceCatalogAppRegistry::Application": &servicecatalogappregistry.Application{},
+ "AWS::ServiceCatalogAppRegistry::AttributeGroup": &servicecatalogappregistry.AttributeGroup{},
+ "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation": &servicecatalogappregistry.AttributeGroupAssociation{},
+ "AWS::ServiceCatalogAppRegistry::ResourceAssociation": &servicecatalogappregistry.ResourceAssociation{},
+ "AWS::ServiceDiscovery::HttpNamespace": &servicediscovery.HttpNamespace{},
+ "AWS::ServiceDiscovery::Instance": &servicediscovery.Instance{},
+ "AWS::ServiceDiscovery::PrivateDnsNamespace": &servicediscovery.PrivateDnsNamespace{},
+ "AWS::ServiceDiscovery::PublicDnsNamespace": &servicediscovery.PublicDnsNamespace{},
+ "AWS::ServiceDiscovery::Service": &servicediscovery.Service{},
+ "AWS::Signer::ProfilePermission": &signer.ProfilePermission{},
+ "AWS::Signer::SigningProfile": &signer.SigningProfile{},
+ "AWS::StepFunctions::Activity": &stepfunctions.Activity{},
+ "AWS::StepFunctions::StateMachine": &stepfunctions.StateMachine{},
+ "AWS::Synthetics::Canary": &synthetics.Canary{},
+ "AWS::Timestream::Database": ×tream.Database{},
+ "AWS::Timestream::ScheduledQuery": ×tream.ScheduledQuery{},
+ "AWS::Timestream::Table": ×tream.Table{},
+ "AWS::Transfer::Server": &transfer.Server{},
+ "AWS::Transfer::User": &transfer.User{},
+ "AWS::Transfer::Workflow": &transfer.Workflow{},
+ "AWS::WAF::ByteMatchSet": &waf.ByteMatchSet{},
+ "AWS::WAF::IPSet": &waf.IPSet{},
+ "AWS::WAF::Rule": &waf.Rule{},
+ "AWS::WAF::SizeConstraintSet": &waf.SizeConstraintSet{},
+ "AWS::WAF::SqlInjectionMatchSet": &waf.SqlInjectionMatchSet{},
+ "AWS::WAF::WebACL": &waf.WebACL{},
+ "AWS::WAF::XssMatchSet": &waf.XssMatchSet{},
+ "AWS::WAFRegional::ByteMatchSet": &wafregional.ByteMatchSet{},
+ "AWS::WAFRegional::GeoMatchSet": &wafregional.GeoMatchSet{},
+ "AWS::WAFRegional::IPSet": &wafregional.IPSet{},
+ "AWS::WAFRegional::RateBasedRule": &wafregional.RateBasedRule{},
+ "AWS::WAFRegional::RegexPatternSet": &wafregional.RegexPatternSet{},
+ "AWS::WAFRegional::Rule": &wafregional.Rule{},
+ "AWS::WAFRegional::SizeConstraintSet": &wafregional.SizeConstraintSet{},
+ "AWS::WAFRegional::SqlInjectionMatchSet": &wafregional.SqlInjectionMatchSet{},
+ "AWS::WAFRegional::WebACL": &wafregional.WebACL{},
+ "AWS::WAFRegional::WebACLAssociation": &wafregional.WebACLAssociation{},
+ "AWS::WAFRegional::XssMatchSet": &wafregional.XssMatchSet{},
+ "AWS::WAFv2::IPSet": &wafv2.IPSet{},
+ "AWS::WAFv2::LoggingConfiguration": &wafv2.LoggingConfiguration{},
+ "AWS::WAFv2::RegexPatternSet": &wafv2.RegexPatternSet{},
+ "AWS::WAFv2::RuleGroup": &wafv2.RuleGroup{},
+ "AWS::WAFv2::WebACL": &wafv2.WebACL{},
+ "AWS::WAFv2::WebACLAssociation": &wafv2.WebACLAssociation{},
+ "AWS::Wisdom::Assistant": &wisdom.Assistant{},
+ "AWS::Wisdom::AssistantAssociation": &wisdom.AssistantAssociation{},
+ "AWS::Wisdom::KnowledgeBase": &wisdom.KnowledgeBase{},
+ "AWS::WorkSpaces::ConnectionAlias": &workspaces.ConnectionAlias{},
+ "AWS::WorkSpaces::Workspace": &workspaces.Workspace{},
+ "AWS::XRay::Group": &xray.Group{},
+ "AWS::XRay::SamplingRule": &xray.SamplingRule{},
+ "Alexa::ASK::Skill": &ask.Skill{},
+ }
+}
+
+// GetAllACMPCACertificateResources retrieves all acmpca.Certificate items from an AWS CloudFormation template
+func (t *Template) GetAllACMPCACertificateResources() map[string]*acmpca.Certificate {
+ results := map[string]*acmpca.Certificate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *acmpca.Certificate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetACMPCACertificateWithName retrieves all acmpca.Certificate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetACMPCACertificateWithName(name string) (*acmpca.Certificate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *acmpca.Certificate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type acmpca.Certificate not found", name)
+}
+
+// GetAllACMPCACertificateAuthorityResources retrieves all acmpca.CertificateAuthority items from an AWS CloudFormation template
+func (t *Template) GetAllACMPCACertificateAuthorityResources() map[string]*acmpca.CertificateAuthority {
+ results := map[string]*acmpca.CertificateAuthority{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *acmpca.CertificateAuthority:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetACMPCACertificateAuthorityWithName retrieves all acmpca.CertificateAuthority items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetACMPCACertificateAuthorityWithName(name string) (*acmpca.CertificateAuthority, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *acmpca.CertificateAuthority:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type acmpca.CertificateAuthority not found", name)
+}
+
+// GetAllACMPCACertificateAuthorityActivationResources retrieves all acmpca.CertificateAuthorityActivation items from an AWS CloudFormation template
+func (t *Template) GetAllACMPCACertificateAuthorityActivationResources() map[string]*acmpca.CertificateAuthorityActivation {
+ results := map[string]*acmpca.CertificateAuthorityActivation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *acmpca.CertificateAuthorityActivation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetACMPCACertificateAuthorityActivationWithName retrieves all acmpca.CertificateAuthorityActivation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetACMPCACertificateAuthorityActivationWithName(name string) (*acmpca.CertificateAuthorityActivation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *acmpca.CertificateAuthorityActivation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type acmpca.CertificateAuthorityActivation not found", name)
+}
+
+// GetAllACMPCAPermissionResources retrieves all acmpca.Permission items from an AWS CloudFormation template
+func (t *Template) GetAllACMPCAPermissionResources() map[string]*acmpca.Permission {
+ results := map[string]*acmpca.Permission{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *acmpca.Permission:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetACMPCAPermissionWithName retrieves all acmpca.Permission items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetACMPCAPermissionWithName(name string) (*acmpca.Permission, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *acmpca.Permission:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type acmpca.Permission not found", name)
+}
+
+// GetAllAPSRuleGroupsNamespaceResources retrieves all aps.RuleGroupsNamespace items from an AWS CloudFormation template
+func (t *Template) GetAllAPSRuleGroupsNamespaceResources() map[string]*aps.RuleGroupsNamespace {
+ results := map[string]*aps.RuleGroupsNamespace{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *aps.RuleGroupsNamespace:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAPSRuleGroupsNamespaceWithName retrieves all aps.RuleGroupsNamespace items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAPSRuleGroupsNamespaceWithName(name string) (*aps.RuleGroupsNamespace, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *aps.RuleGroupsNamespace:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type aps.RuleGroupsNamespace not found", name)
+}
+
+// GetAllAPSWorkspaceResources retrieves all aps.Workspace items from an AWS CloudFormation template
+func (t *Template) GetAllAPSWorkspaceResources() map[string]*aps.Workspace {
+ results := map[string]*aps.Workspace{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *aps.Workspace:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAPSWorkspaceWithName retrieves all aps.Workspace items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAPSWorkspaceWithName(name string) (*aps.Workspace, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *aps.Workspace:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type aps.Workspace not found", name)
+}
+
+// GetAllAccessAnalyzerAnalyzerResources retrieves all accessanalyzer.Analyzer items from an AWS CloudFormation template
+func (t *Template) GetAllAccessAnalyzerAnalyzerResources() map[string]*accessanalyzer.Analyzer {
+ results := map[string]*accessanalyzer.Analyzer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *accessanalyzer.Analyzer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAccessAnalyzerAnalyzerWithName retrieves all accessanalyzer.Analyzer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAccessAnalyzerAnalyzerWithName(name string) (*accessanalyzer.Analyzer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *accessanalyzer.Analyzer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type accessanalyzer.Analyzer not found", name)
+}
+
+// GetAllAmazonMQBrokerResources retrieves all amazonmq.Broker items from an AWS CloudFormation template
+func (t *Template) GetAllAmazonMQBrokerResources() map[string]*amazonmq.Broker {
+ results := map[string]*amazonmq.Broker{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *amazonmq.Broker:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAmazonMQBrokerWithName retrieves all amazonmq.Broker items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAmazonMQBrokerWithName(name string) (*amazonmq.Broker, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *amazonmq.Broker:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type amazonmq.Broker not found", name)
+}
+
+// GetAllAmazonMQConfigurationResources retrieves all amazonmq.Configuration items from an AWS CloudFormation template
+func (t *Template) GetAllAmazonMQConfigurationResources() map[string]*amazonmq.Configuration {
+ results := map[string]*amazonmq.Configuration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *amazonmq.Configuration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAmazonMQConfigurationWithName retrieves all amazonmq.Configuration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAmazonMQConfigurationWithName(name string) (*amazonmq.Configuration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *amazonmq.Configuration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type amazonmq.Configuration not found", name)
+}
+
+// GetAllAmazonMQConfigurationAssociationResources retrieves all amazonmq.ConfigurationAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllAmazonMQConfigurationAssociationResources() map[string]*amazonmq.ConfigurationAssociation {
+ results := map[string]*amazonmq.ConfigurationAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *amazonmq.ConfigurationAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAmazonMQConfigurationAssociationWithName retrieves all amazonmq.ConfigurationAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAmazonMQConfigurationAssociationWithName(name string) (*amazonmq.ConfigurationAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *amazonmq.ConfigurationAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type amazonmq.ConfigurationAssociation not found", name)
+}
+
+// GetAllAmplifyAppResources retrieves all amplify.App items from an AWS CloudFormation template
+func (t *Template) GetAllAmplifyAppResources() map[string]*amplify.App {
+ results := map[string]*amplify.App{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *amplify.App:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAmplifyAppWithName retrieves all amplify.App items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAmplifyAppWithName(name string) (*amplify.App, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *amplify.App:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type amplify.App not found", name)
+}
+
+// GetAllAmplifyBranchResources retrieves all amplify.Branch items from an AWS CloudFormation template
+func (t *Template) GetAllAmplifyBranchResources() map[string]*amplify.Branch {
+ results := map[string]*amplify.Branch{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *amplify.Branch:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAmplifyBranchWithName retrieves all amplify.Branch items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAmplifyBranchWithName(name string) (*amplify.Branch, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *amplify.Branch:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type amplify.Branch not found", name)
+}
+
+// GetAllAmplifyDomainResources retrieves all amplify.Domain items from an AWS CloudFormation template
+func (t *Template) GetAllAmplifyDomainResources() map[string]*amplify.Domain {
+ results := map[string]*amplify.Domain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *amplify.Domain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAmplifyDomainWithName retrieves all amplify.Domain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAmplifyDomainWithName(name string) (*amplify.Domain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *amplify.Domain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type amplify.Domain not found", name)
+}
+
+// GetAllAmplifyUIBuilderComponentResources retrieves all amplifyuibuilder.Component items from an AWS CloudFormation template
+func (t *Template) GetAllAmplifyUIBuilderComponentResources() map[string]*amplifyuibuilder.Component {
+ results := map[string]*amplifyuibuilder.Component{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *amplifyuibuilder.Component:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAmplifyUIBuilderComponentWithName retrieves all amplifyuibuilder.Component items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAmplifyUIBuilderComponentWithName(name string) (*amplifyuibuilder.Component, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *amplifyuibuilder.Component:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type amplifyuibuilder.Component not found", name)
+}
+
+// GetAllAmplifyUIBuilderThemeResources retrieves all amplifyuibuilder.Theme items from an AWS CloudFormation template
+func (t *Template) GetAllAmplifyUIBuilderThemeResources() map[string]*amplifyuibuilder.Theme {
+ results := map[string]*amplifyuibuilder.Theme{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *amplifyuibuilder.Theme:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAmplifyUIBuilderThemeWithName retrieves all amplifyuibuilder.Theme items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAmplifyUIBuilderThemeWithName(name string) (*amplifyuibuilder.Theme, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *amplifyuibuilder.Theme:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type amplifyuibuilder.Theme not found", name)
+}
+
+// GetAllApiGatewayAccountResources retrieves all apigateway.Account items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayAccountResources() map[string]*apigateway.Account {
+ results := map[string]*apigateway.Account{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.Account:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayAccountWithName retrieves all apigateway.Account items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayAccountWithName(name string) (*apigateway.Account, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.Account:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.Account not found", name)
+}
+
+// GetAllApiGatewayApiKeyResources retrieves all apigateway.ApiKey items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayApiKeyResources() map[string]*apigateway.ApiKey {
+ results := map[string]*apigateway.ApiKey{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.ApiKey:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayApiKeyWithName retrieves all apigateway.ApiKey items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayApiKeyWithName(name string) (*apigateway.ApiKey, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.ApiKey:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.ApiKey not found", name)
+}
+
+// GetAllApiGatewayAuthorizerResources retrieves all apigateway.Authorizer items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayAuthorizerResources() map[string]*apigateway.Authorizer {
+ results := map[string]*apigateway.Authorizer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.Authorizer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayAuthorizerWithName retrieves all apigateway.Authorizer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayAuthorizerWithName(name string) (*apigateway.Authorizer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.Authorizer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.Authorizer not found", name)
+}
+
+// GetAllApiGatewayBasePathMappingResources retrieves all apigateway.BasePathMapping items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayBasePathMappingResources() map[string]*apigateway.BasePathMapping {
+ results := map[string]*apigateway.BasePathMapping{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.BasePathMapping:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayBasePathMappingWithName retrieves all apigateway.BasePathMapping items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayBasePathMappingWithName(name string) (*apigateway.BasePathMapping, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.BasePathMapping:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.BasePathMapping not found", name)
+}
+
+// GetAllApiGatewayClientCertificateResources retrieves all apigateway.ClientCertificate items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayClientCertificateResources() map[string]*apigateway.ClientCertificate {
+ results := map[string]*apigateway.ClientCertificate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.ClientCertificate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayClientCertificateWithName retrieves all apigateway.ClientCertificate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayClientCertificateWithName(name string) (*apigateway.ClientCertificate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.ClientCertificate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.ClientCertificate not found", name)
+}
+
+// GetAllApiGatewayDeploymentResources retrieves all apigateway.Deployment items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayDeploymentResources() map[string]*apigateway.Deployment {
+ results := map[string]*apigateway.Deployment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.Deployment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayDeploymentWithName retrieves all apigateway.Deployment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayDeploymentWithName(name string) (*apigateway.Deployment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.Deployment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.Deployment not found", name)
+}
+
+// GetAllApiGatewayDocumentationPartResources retrieves all apigateway.DocumentationPart items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayDocumentationPartResources() map[string]*apigateway.DocumentationPart {
+ results := map[string]*apigateway.DocumentationPart{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.DocumentationPart:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayDocumentationPartWithName retrieves all apigateway.DocumentationPart items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayDocumentationPartWithName(name string) (*apigateway.DocumentationPart, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.DocumentationPart:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.DocumentationPart not found", name)
+}
+
+// GetAllApiGatewayDocumentationVersionResources retrieves all apigateway.DocumentationVersion items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayDocumentationVersionResources() map[string]*apigateway.DocumentationVersion {
+ results := map[string]*apigateway.DocumentationVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.DocumentationVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayDocumentationVersionWithName retrieves all apigateway.DocumentationVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayDocumentationVersionWithName(name string) (*apigateway.DocumentationVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.DocumentationVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.DocumentationVersion not found", name)
+}
+
+// GetAllApiGatewayDomainNameResources retrieves all apigateway.DomainName items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayDomainNameResources() map[string]*apigateway.DomainName {
+ results := map[string]*apigateway.DomainName{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.DomainName:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayDomainNameWithName retrieves all apigateway.DomainName items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayDomainNameWithName(name string) (*apigateway.DomainName, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.DomainName:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.DomainName not found", name)
+}
+
+// GetAllApiGatewayGatewayResponseResources retrieves all apigateway.GatewayResponse items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayGatewayResponseResources() map[string]*apigateway.GatewayResponse {
+ results := map[string]*apigateway.GatewayResponse{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.GatewayResponse:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayGatewayResponseWithName retrieves all apigateway.GatewayResponse items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayGatewayResponseWithName(name string) (*apigateway.GatewayResponse, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.GatewayResponse:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.GatewayResponse not found", name)
+}
+
+// GetAllApiGatewayMethodResources retrieves all apigateway.Method items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayMethodResources() map[string]*apigateway.Method {
+ results := map[string]*apigateway.Method{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.Method:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayMethodWithName retrieves all apigateway.Method items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayMethodWithName(name string) (*apigateway.Method, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.Method:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.Method not found", name)
+}
+
+// GetAllApiGatewayModelResources retrieves all apigateway.Model items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayModelResources() map[string]*apigateway.Model {
+ results := map[string]*apigateway.Model{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.Model:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayModelWithName retrieves all apigateway.Model items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayModelWithName(name string) (*apigateway.Model, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.Model:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.Model not found", name)
+}
+
+// GetAllApiGatewayRequestValidatorResources retrieves all apigateway.RequestValidator items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayRequestValidatorResources() map[string]*apigateway.RequestValidator {
+ results := map[string]*apigateway.RequestValidator{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.RequestValidator:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayRequestValidatorWithName retrieves all apigateway.RequestValidator items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayRequestValidatorWithName(name string) (*apigateway.RequestValidator, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.RequestValidator:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.RequestValidator not found", name)
+}
+
+// GetAllApiGatewayResourceResources retrieves all apigateway.Resource items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayResourceResources() map[string]*apigateway.Resource {
+ results := map[string]*apigateway.Resource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.Resource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayResourceWithName retrieves all apigateway.Resource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayResourceWithName(name string) (*apigateway.Resource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.Resource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.Resource not found", name)
+}
+
+// GetAllApiGatewayRestApiResources retrieves all apigateway.RestApi items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayRestApiResources() map[string]*apigateway.RestApi {
+ results := map[string]*apigateway.RestApi{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.RestApi:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayRestApiWithName retrieves all apigateway.RestApi items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayRestApiWithName(name string) (*apigateway.RestApi, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.RestApi:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.RestApi not found", name)
+}
+
+// GetAllApiGatewayStageResources retrieves all apigateway.Stage items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayStageResources() map[string]*apigateway.Stage {
+ results := map[string]*apigateway.Stage{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.Stage:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayStageWithName retrieves all apigateway.Stage items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayStageWithName(name string) (*apigateway.Stage, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.Stage:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.Stage not found", name)
+}
+
+// GetAllApiGatewayUsagePlanResources retrieves all apigateway.UsagePlan items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayUsagePlanResources() map[string]*apigateway.UsagePlan {
+ results := map[string]*apigateway.UsagePlan{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.UsagePlan:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayUsagePlanWithName retrieves all apigateway.UsagePlan items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayUsagePlanWithName(name string) (*apigateway.UsagePlan, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.UsagePlan:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.UsagePlan not found", name)
+}
+
+// GetAllApiGatewayUsagePlanKeyResources retrieves all apigateway.UsagePlanKey items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayUsagePlanKeyResources() map[string]*apigateway.UsagePlanKey {
+ results := map[string]*apigateway.UsagePlanKey{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.UsagePlanKey:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayUsagePlanKeyWithName retrieves all apigateway.UsagePlanKey items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayUsagePlanKeyWithName(name string) (*apigateway.UsagePlanKey, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.UsagePlanKey:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.UsagePlanKey not found", name)
+}
+
+// GetAllApiGatewayVpcLinkResources retrieves all apigateway.VpcLink items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayVpcLinkResources() map[string]*apigateway.VpcLink {
+ results := map[string]*apigateway.VpcLink{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigateway.VpcLink:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayVpcLinkWithName retrieves all apigateway.VpcLink items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayVpcLinkWithName(name string) (*apigateway.VpcLink, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigateway.VpcLink:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigateway.VpcLink not found", name)
+}
+
+// GetAllApiGatewayV2ApiResources retrieves all apigatewayv2.Api items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2ApiResources() map[string]*apigatewayv2.Api {
+ results := map[string]*apigatewayv2.Api{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Api:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2ApiWithName retrieves all apigatewayv2.Api items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2ApiWithName(name string) (*apigatewayv2.Api, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Api:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.Api not found", name)
+}
+
+// GetAllApiGatewayV2ApiGatewayManagedOverridesResources retrieves all apigatewayv2.ApiGatewayManagedOverrides items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2ApiGatewayManagedOverridesResources() map[string]*apigatewayv2.ApiGatewayManagedOverrides {
+ results := map[string]*apigatewayv2.ApiGatewayManagedOverrides{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.ApiGatewayManagedOverrides:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2ApiGatewayManagedOverridesWithName retrieves all apigatewayv2.ApiGatewayManagedOverrides items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2ApiGatewayManagedOverridesWithName(name string) (*apigatewayv2.ApiGatewayManagedOverrides, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.ApiGatewayManagedOverrides:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.ApiGatewayManagedOverrides not found", name)
+}
+
+// GetAllApiGatewayV2ApiMappingResources retrieves all apigatewayv2.ApiMapping items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2ApiMappingResources() map[string]*apigatewayv2.ApiMapping {
+ results := map[string]*apigatewayv2.ApiMapping{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.ApiMapping:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2ApiMappingWithName retrieves all apigatewayv2.ApiMapping items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2ApiMappingWithName(name string) (*apigatewayv2.ApiMapping, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.ApiMapping:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.ApiMapping not found", name)
+}
+
+// GetAllApiGatewayV2AuthorizerResources retrieves all apigatewayv2.Authorizer items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2AuthorizerResources() map[string]*apigatewayv2.Authorizer {
+ results := map[string]*apigatewayv2.Authorizer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Authorizer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2AuthorizerWithName retrieves all apigatewayv2.Authorizer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2AuthorizerWithName(name string) (*apigatewayv2.Authorizer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Authorizer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.Authorizer not found", name)
+}
+
+// GetAllApiGatewayV2DeploymentResources retrieves all apigatewayv2.Deployment items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2DeploymentResources() map[string]*apigatewayv2.Deployment {
+ results := map[string]*apigatewayv2.Deployment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Deployment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2DeploymentWithName retrieves all apigatewayv2.Deployment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2DeploymentWithName(name string) (*apigatewayv2.Deployment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Deployment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.Deployment not found", name)
+}
+
+// GetAllApiGatewayV2DomainNameResources retrieves all apigatewayv2.DomainName items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2DomainNameResources() map[string]*apigatewayv2.DomainName {
+ results := map[string]*apigatewayv2.DomainName{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.DomainName:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2DomainNameWithName retrieves all apigatewayv2.DomainName items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2DomainNameWithName(name string) (*apigatewayv2.DomainName, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.DomainName:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.DomainName not found", name)
+}
+
+// GetAllApiGatewayV2IntegrationResources retrieves all apigatewayv2.Integration items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2IntegrationResources() map[string]*apigatewayv2.Integration {
+ results := map[string]*apigatewayv2.Integration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Integration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2IntegrationWithName retrieves all apigatewayv2.Integration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2IntegrationWithName(name string) (*apigatewayv2.Integration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Integration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.Integration not found", name)
+}
+
+// GetAllApiGatewayV2IntegrationResponseResources retrieves all apigatewayv2.IntegrationResponse items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2IntegrationResponseResources() map[string]*apigatewayv2.IntegrationResponse {
+ results := map[string]*apigatewayv2.IntegrationResponse{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.IntegrationResponse:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2IntegrationResponseWithName retrieves all apigatewayv2.IntegrationResponse items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2IntegrationResponseWithName(name string) (*apigatewayv2.IntegrationResponse, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.IntegrationResponse:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.IntegrationResponse not found", name)
+}
+
+// GetAllApiGatewayV2ModelResources retrieves all apigatewayv2.Model items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2ModelResources() map[string]*apigatewayv2.Model {
+ results := map[string]*apigatewayv2.Model{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Model:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2ModelWithName retrieves all apigatewayv2.Model items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2ModelWithName(name string) (*apigatewayv2.Model, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Model:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.Model not found", name)
+}
+
+// GetAllApiGatewayV2RouteResources retrieves all apigatewayv2.Route items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2RouteResources() map[string]*apigatewayv2.Route {
+ results := map[string]*apigatewayv2.Route{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Route:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2RouteWithName retrieves all apigatewayv2.Route items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2RouteWithName(name string) (*apigatewayv2.Route, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Route:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.Route not found", name)
+}
+
+// GetAllApiGatewayV2RouteResponseResources retrieves all apigatewayv2.RouteResponse items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2RouteResponseResources() map[string]*apigatewayv2.RouteResponse {
+ results := map[string]*apigatewayv2.RouteResponse{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.RouteResponse:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2RouteResponseWithName retrieves all apigatewayv2.RouteResponse items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2RouteResponseWithName(name string) (*apigatewayv2.RouteResponse, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.RouteResponse:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.RouteResponse not found", name)
+}
+
+// GetAllApiGatewayV2StageResources retrieves all apigatewayv2.Stage items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2StageResources() map[string]*apigatewayv2.Stage {
+ results := map[string]*apigatewayv2.Stage{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Stage:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2StageWithName retrieves all apigatewayv2.Stage items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2StageWithName(name string) (*apigatewayv2.Stage, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.Stage:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.Stage not found", name)
+}
+
+// GetAllApiGatewayV2VpcLinkResources retrieves all apigatewayv2.VpcLink items from an AWS CloudFormation template
+func (t *Template) GetAllApiGatewayV2VpcLinkResources() map[string]*apigatewayv2.VpcLink {
+ results := map[string]*apigatewayv2.VpcLink{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.VpcLink:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApiGatewayV2VpcLinkWithName retrieves all apigatewayv2.VpcLink items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApiGatewayV2VpcLinkWithName(name string) (*apigatewayv2.VpcLink, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apigatewayv2.VpcLink:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apigatewayv2.VpcLink not found", name)
+}
+
+// GetAllAppConfigApplicationResources retrieves all appconfig.Application items from an AWS CloudFormation template
+func (t *Template) GetAllAppConfigApplicationResources() map[string]*appconfig.Application {
+ results := map[string]*appconfig.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appconfig.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppConfigApplicationWithName retrieves all appconfig.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppConfigApplicationWithName(name string) (*appconfig.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appconfig.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appconfig.Application not found", name)
+}
+
+// GetAllAppConfigConfigurationProfileResources retrieves all appconfig.ConfigurationProfile items from an AWS CloudFormation template
+func (t *Template) GetAllAppConfigConfigurationProfileResources() map[string]*appconfig.ConfigurationProfile {
+ results := map[string]*appconfig.ConfigurationProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appconfig.ConfigurationProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppConfigConfigurationProfileWithName retrieves all appconfig.ConfigurationProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppConfigConfigurationProfileWithName(name string) (*appconfig.ConfigurationProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appconfig.ConfigurationProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appconfig.ConfigurationProfile not found", name)
+}
+
+// GetAllAppConfigDeploymentResources retrieves all appconfig.Deployment items from an AWS CloudFormation template
+func (t *Template) GetAllAppConfigDeploymentResources() map[string]*appconfig.Deployment {
+ results := map[string]*appconfig.Deployment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appconfig.Deployment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppConfigDeploymentWithName retrieves all appconfig.Deployment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppConfigDeploymentWithName(name string) (*appconfig.Deployment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appconfig.Deployment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appconfig.Deployment not found", name)
+}
+
+// GetAllAppConfigDeploymentStrategyResources retrieves all appconfig.DeploymentStrategy items from an AWS CloudFormation template
+func (t *Template) GetAllAppConfigDeploymentStrategyResources() map[string]*appconfig.DeploymentStrategy {
+ results := map[string]*appconfig.DeploymentStrategy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appconfig.DeploymentStrategy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppConfigDeploymentStrategyWithName retrieves all appconfig.DeploymentStrategy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppConfigDeploymentStrategyWithName(name string) (*appconfig.DeploymentStrategy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appconfig.DeploymentStrategy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appconfig.DeploymentStrategy not found", name)
+}
+
+// GetAllAppConfigEnvironmentResources retrieves all appconfig.Environment items from an AWS CloudFormation template
+func (t *Template) GetAllAppConfigEnvironmentResources() map[string]*appconfig.Environment {
+ results := map[string]*appconfig.Environment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appconfig.Environment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppConfigEnvironmentWithName retrieves all appconfig.Environment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppConfigEnvironmentWithName(name string) (*appconfig.Environment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appconfig.Environment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appconfig.Environment not found", name)
+}
+
+// GetAllAppConfigHostedConfigurationVersionResources retrieves all appconfig.HostedConfigurationVersion items from an AWS CloudFormation template
+func (t *Template) GetAllAppConfigHostedConfigurationVersionResources() map[string]*appconfig.HostedConfigurationVersion {
+ results := map[string]*appconfig.HostedConfigurationVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appconfig.HostedConfigurationVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppConfigHostedConfigurationVersionWithName retrieves all appconfig.HostedConfigurationVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppConfigHostedConfigurationVersionWithName(name string) (*appconfig.HostedConfigurationVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appconfig.HostedConfigurationVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appconfig.HostedConfigurationVersion not found", name)
+}
+
+// GetAllAppFlowConnectorProfileResources retrieves all appflow.ConnectorProfile items from an AWS CloudFormation template
+func (t *Template) GetAllAppFlowConnectorProfileResources() map[string]*appflow.ConnectorProfile {
+ results := map[string]*appflow.ConnectorProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appflow.ConnectorProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppFlowConnectorProfileWithName retrieves all appflow.ConnectorProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppFlowConnectorProfileWithName(name string) (*appflow.ConnectorProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appflow.ConnectorProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appflow.ConnectorProfile not found", name)
+}
+
+// GetAllAppFlowFlowResources retrieves all appflow.Flow items from an AWS CloudFormation template
+func (t *Template) GetAllAppFlowFlowResources() map[string]*appflow.Flow {
+ results := map[string]*appflow.Flow{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appflow.Flow:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppFlowFlowWithName retrieves all appflow.Flow items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppFlowFlowWithName(name string) (*appflow.Flow, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appflow.Flow:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appflow.Flow not found", name)
+}
+
+// GetAllAppIntegrationsEventIntegrationResources retrieves all appintegrations.EventIntegration items from an AWS CloudFormation template
+func (t *Template) GetAllAppIntegrationsEventIntegrationResources() map[string]*appintegrations.EventIntegration {
+ results := map[string]*appintegrations.EventIntegration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appintegrations.EventIntegration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppIntegrationsEventIntegrationWithName retrieves all appintegrations.EventIntegration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppIntegrationsEventIntegrationWithName(name string) (*appintegrations.EventIntegration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appintegrations.EventIntegration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appintegrations.EventIntegration not found", name)
+}
+
+// GetAllAppMeshGatewayRouteResources retrieves all appmesh.GatewayRoute items from an AWS CloudFormation template
+func (t *Template) GetAllAppMeshGatewayRouteResources() map[string]*appmesh.GatewayRoute {
+ results := map[string]*appmesh.GatewayRoute{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appmesh.GatewayRoute:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppMeshGatewayRouteWithName retrieves all appmesh.GatewayRoute items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppMeshGatewayRouteWithName(name string) (*appmesh.GatewayRoute, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appmesh.GatewayRoute:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appmesh.GatewayRoute not found", name)
+}
+
+// GetAllAppMeshMeshResources retrieves all appmesh.Mesh items from an AWS CloudFormation template
+func (t *Template) GetAllAppMeshMeshResources() map[string]*appmesh.Mesh {
+ results := map[string]*appmesh.Mesh{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appmesh.Mesh:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppMeshMeshWithName retrieves all appmesh.Mesh items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppMeshMeshWithName(name string) (*appmesh.Mesh, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appmesh.Mesh:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appmesh.Mesh not found", name)
+}
+
+// GetAllAppMeshRouteResources retrieves all appmesh.Route items from an AWS CloudFormation template
+func (t *Template) GetAllAppMeshRouteResources() map[string]*appmesh.Route {
+ results := map[string]*appmesh.Route{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appmesh.Route:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppMeshRouteWithName retrieves all appmesh.Route items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppMeshRouteWithName(name string) (*appmesh.Route, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appmesh.Route:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appmesh.Route not found", name)
+}
+
+// GetAllAppMeshVirtualGatewayResources retrieves all appmesh.VirtualGateway items from an AWS CloudFormation template
+func (t *Template) GetAllAppMeshVirtualGatewayResources() map[string]*appmesh.VirtualGateway {
+ results := map[string]*appmesh.VirtualGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appmesh.VirtualGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppMeshVirtualGatewayWithName retrieves all appmesh.VirtualGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppMeshVirtualGatewayWithName(name string) (*appmesh.VirtualGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appmesh.VirtualGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appmesh.VirtualGateway not found", name)
+}
+
+// GetAllAppMeshVirtualNodeResources retrieves all appmesh.VirtualNode items from an AWS CloudFormation template
+func (t *Template) GetAllAppMeshVirtualNodeResources() map[string]*appmesh.VirtualNode {
+ results := map[string]*appmesh.VirtualNode{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appmesh.VirtualNode:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppMeshVirtualNodeWithName retrieves all appmesh.VirtualNode items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppMeshVirtualNodeWithName(name string) (*appmesh.VirtualNode, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appmesh.VirtualNode:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appmesh.VirtualNode not found", name)
+}
+
+// GetAllAppMeshVirtualRouterResources retrieves all appmesh.VirtualRouter items from an AWS CloudFormation template
+func (t *Template) GetAllAppMeshVirtualRouterResources() map[string]*appmesh.VirtualRouter {
+ results := map[string]*appmesh.VirtualRouter{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appmesh.VirtualRouter:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppMeshVirtualRouterWithName retrieves all appmesh.VirtualRouter items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppMeshVirtualRouterWithName(name string) (*appmesh.VirtualRouter, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appmesh.VirtualRouter:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appmesh.VirtualRouter not found", name)
+}
+
+// GetAllAppMeshVirtualServiceResources retrieves all appmesh.VirtualService items from an AWS CloudFormation template
+func (t *Template) GetAllAppMeshVirtualServiceResources() map[string]*appmesh.VirtualService {
+ results := map[string]*appmesh.VirtualService{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appmesh.VirtualService:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppMeshVirtualServiceWithName retrieves all appmesh.VirtualService items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppMeshVirtualServiceWithName(name string) (*appmesh.VirtualService, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appmesh.VirtualService:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appmesh.VirtualService not found", name)
+}
+
+// GetAllAppRunnerServiceResources retrieves all apprunner.Service items from an AWS CloudFormation template
+func (t *Template) GetAllAppRunnerServiceResources() map[string]*apprunner.Service {
+ results := map[string]*apprunner.Service{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *apprunner.Service:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppRunnerServiceWithName retrieves all apprunner.Service items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppRunnerServiceWithName(name string) (*apprunner.Service, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *apprunner.Service:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type apprunner.Service not found", name)
+}
+
+// GetAllAppStreamAppBlockResources retrieves all appstream.AppBlock items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamAppBlockResources() map[string]*appstream.AppBlock {
+ results := map[string]*appstream.AppBlock{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.AppBlock:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamAppBlockWithName retrieves all appstream.AppBlock items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamAppBlockWithName(name string) (*appstream.AppBlock, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.AppBlock:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.AppBlock not found", name)
+}
+
+// GetAllAppStreamApplicationResources retrieves all appstream.Application items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamApplicationResources() map[string]*appstream.Application {
+ results := map[string]*appstream.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamApplicationWithName retrieves all appstream.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamApplicationWithName(name string) (*appstream.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.Application not found", name)
+}
+
+// GetAllAppStreamApplicationFleetAssociationResources retrieves all appstream.ApplicationFleetAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamApplicationFleetAssociationResources() map[string]*appstream.ApplicationFleetAssociation {
+ results := map[string]*appstream.ApplicationFleetAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.ApplicationFleetAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamApplicationFleetAssociationWithName retrieves all appstream.ApplicationFleetAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamApplicationFleetAssociationWithName(name string) (*appstream.ApplicationFleetAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.ApplicationFleetAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.ApplicationFleetAssociation not found", name)
+}
+
+// GetAllAppStreamDirectoryConfigResources retrieves all appstream.DirectoryConfig items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamDirectoryConfigResources() map[string]*appstream.DirectoryConfig {
+ results := map[string]*appstream.DirectoryConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.DirectoryConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamDirectoryConfigWithName retrieves all appstream.DirectoryConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamDirectoryConfigWithName(name string) (*appstream.DirectoryConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.DirectoryConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.DirectoryConfig not found", name)
+}
+
+// GetAllAppStreamFleetResources retrieves all appstream.Fleet items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamFleetResources() map[string]*appstream.Fleet {
+ results := map[string]*appstream.Fleet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.Fleet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamFleetWithName retrieves all appstream.Fleet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamFleetWithName(name string) (*appstream.Fleet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.Fleet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.Fleet not found", name)
+}
+
+// GetAllAppStreamImageBuilderResources retrieves all appstream.ImageBuilder items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamImageBuilderResources() map[string]*appstream.ImageBuilder {
+ results := map[string]*appstream.ImageBuilder{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.ImageBuilder:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamImageBuilderWithName retrieves all appstream.ImageBuilder items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamImageBuilderWithName(name string) (*appstream.ImageBuilder, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.ImageBuilder:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.ImageBuilder not found", name)
+}
+
+// GetAllAppStreamStackResources retrieves all appstream.Stack items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamStackResources() map[string]*appstream.Stack {
+ results := map[string]*appstream.Stack{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.Stack:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamStackWithName retrieves all appstream.Stack items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamStackWithName(name string) (*appstream.Stack, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.Stack:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.Stack not found", name)
+}
+
+// GetAllAppStreamStackFleetAssociationResources retrieves all appstream.StackFleetAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamStackFleetAssociationResources() map[string]*appstream.StackFleetAssociation {
+ results := map[string]*appstream.StackFleetAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.StackFleetAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamStackFleetAssociationWithName retrieves all appstream.StackFleetAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamStackFleetAssociationWithName(name string) (*appstream.StackFleetAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.StackFleetAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.StackFleetAssociation not found", name)
+}
+
+// GetAllAppStreamStackUserAssociationResources retrieves all appstream.StackUserAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamStackUserAssociationResources() map[string]*appstream.StackUserAssociation {
+ results := map[string]*appstream.StackUserAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.StackUserAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamStackUserAssociationWithName retrieves all appstream.StackUserAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamStackUserAssociationWithName(name string) (*appstream.StackUserAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.StackUserAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.StackUserAssociation not found", name)
+}
+
+// GetAllAppStreamUserResources retrieves all appstream.User items from an AWS CloudFormation template
+func (t *Template) GetAllAppStreamUserResources() map[string]*appstream.User {
+ results := map[string]*appstream.User{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appstream.User:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppStreamUserWithName retrieves all appstream.User items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppStreamUserWithName(name string) (*appstream.User, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appstream.User:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appstream.User not found", name)
+}
+
+// GetAllAppSyncApiCacheResources retrieves all appsync.ApiCache items from an AWS CloudFormation template
+func (t *Template) GetAllAppSyncApiCacheResources() map[string]*appsync.ApiCache {
+ results := map[string]*appsync.ApiCache{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appsync.ApiCache:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppSyncApiCacheWithName retrieves all appsync.ApiCache items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppSyncApiCacheWithName(name string) (*appsync.ApiCache, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appsync.ApiCache:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appsync.ApiCache not found", name)
+}
+
+// GetAllAppSyncApiKeyResources retrieves all appsync.ApiKey items from an AWS CloudFormation template
+func (t *Template) GetAllAppSyncApiKeyResources() map[string]*appsync.ApiKey {
+ results := map[string]*appsync.ApiKey{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appsync.ApiKey:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppSyncApiKeyWithName retrieves all appsync.ApiKey items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppSyncApiKeyWithName(name string) (*appsync.ApiKey, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appsync.ApiKey:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appsync.ApiKey not found", name)
+}
+
+// GetAllAppSyncDataSourceResources retrieves all appsync.DataSource items from an AWS CloudFormation template
+func (t *Template) GetAllAppSyncDataSourceResources() map[string]*appsync.DataSource {
+ results := map[string]*appsync.DataSource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appsync.DataSource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppSyncDataSourceWithName retrieves all appsync.DataSource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppSyncDataSourceWithName(name string) (*appsync.DataSource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appsync.DataSource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appsync.DataSource not found", name)
+}
+
+// GetAllAppSyncFunctionConfigurationResources retrieves all appsync.FunctionConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllAppSyncFunctionConfigurationResources() map[string]*appsync.FunctionConfiguration {
+ results := map[string]*appsync.FunctionConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appsync.FunctionConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppSyncFunctionConfigurationWithName retrieves all appsync.FunctionConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppSyncFunctionConfigurationWithName(name string) (*appsync.FunctionConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appsync.FunctionConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appsync.FunctionConfiguration not found", name)
+}
+
+// GetAllAppSyncGraphQLApiResources retrieves all appsync.GraphQLApi items from an AWS CloudFormation template
+func (t *Template) GetAllAppSyncGraphQLApiResources() map[string]*appsync.GraphQLApi {
+ results := map[string]*appsync.GraphQLApi{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appsync.GraphQLApi:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppSyncGraphQLApiWithName retrieves all appsync.GraphQLApi items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppSyncGraphQLApiWithName(name string) (*appsync.GraphQLApi, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appsync.GraphQLApi:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appsync.GraphQLApi not found", name)
+}
+
+// GetAllAppSyncGraphQLSchemaResources retrieves all appsync.GraphQLSchema items from an AWS CloudFormation template
+func (t *Template) GetAllAppSyncGraphQLSchemaResources() map[string]*appsync.GraphQLSchema {
+ results := map[string]*appsync.GraphQLSchema{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appsync.GraphQLSchema:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppSyncGraphQLSchemaWithName retrieves all appsync.GraphQLSchema items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppSyncGraphQLSchemaWithName(name string) (*appsync.GraphQLSchema, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appsync.GraphQLSchema:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appsync.GraphQLSchema not found", name)
+}
+
+// GetAllAppSyncResolverResources retrieves all appsync.Resolver items from an AWS CloudFormation template
+func (t *Template) GetAllAppSyncResolverResources() map[string]*appsync.Resolver {
+ results := map[string]*appsync.Resolver{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *appsync.Resolver:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAppSyncResolverWithName retrieves all appsync.Resolver items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAppSyncResolverWithName(name string) (*appsync.Resolver, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *appsync.Resolver:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type appsync.Resolver not found", name)
+}
+
+// GetAllApplicationAutoScalingScalableTargetResources retrieves all applicationautoscaling.ScalableTarget items from an AWS CloudFormation template
+func (t *Template) GetAllApplicationAutoScalingScalableTargetResources() map[string]*applicationautoscaling.ScalableTarget {
+ results := map[string]*applicationautoscaling.ScalableTarget{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *applicationautoscaling.ScalableTarget:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApplicationAutoScalingScalableTargetWithName retrieves all applicationautoscaling.ScalableTarget items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApplicationAutoScalingScalableTargetWithName(name string) (*applicationautoscaling.ScalableTarget, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *applicationautoscaling.ScalableTarget:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type applicationautoscaling.ScalableTarget not found", name)
+}
+
+// GetAllApplicationAutoScalingScalingPolicyResources retrieves all applicationautoscaling.ScalingPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllApplicationAutoScalingScalingPolicyResources() map[string]*applicationautoscaling.ScalingPolicy {
+ results := map[string]*applicationautoscaling.ScalingPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *applicationautoscaling.ScalingPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApplicationAutoScalingScalingPolicyWithName retrieves all applicationautoscaling.ScalingPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApplicationAutoScalingScalingPolicyWithName(name string) (*applicationautoscaling.ScalingPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *applicationautoscaling.ScalingPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type applicationautoscaling.ScalingPolicy not found", name)
+}
+
+// GetAllApplicationInsightsApplicationResources retrieves all applicationinsights.Application items from an AWS CloudFormation template
+func (t *Template) GetAllApplicationInsightsApplicationResources() map[string]*applicationinsights.Application {
+ results := map[string]*applicationinsights.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *applicationinsights.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetApplicationInsightsApplicationWithName retrieves all applicationinsights.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetApplicationInsightsApplicationWithName(name string) (*applicationinsights.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *applicationinsights.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type applicationinsights.Application not found", name)
+}
+
+// GetAllAthenaDataCatalogResources retrieves all athena.DataCatalog items from an AWS CloudFormation template
+func (t *Template) GetAllAthenaDataCatalogResources() map[string]*athena.DataCatalog {
+ results := map[string]*athena.DataCatalog{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *athena.DataCatalog:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAthenaDataCatalogWithName retrieves all athena.DataCatalog items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAthenaDataCatalogWithName(name string) (*athena.DataCatalog, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *athena.DataCatalog:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type athena.DataCatalog not found", name)
+}
+
+// GetAllAthenaNamedQueryResources retrieves all athena.NamedQuery items from an AWS CloudFormation template
+func (t *Template) GetAllAthenaNamedQueryResources() map[string]*athena.NamedQuery {
+ results := map[string]*athena.NamedQuery{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *athena.NamedQuery:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAthenaNamedQueryWithName retrieves all athena.NamedQuery items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAthenaNamedQueryWithName(name string) (*athena.NamedQuery, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *athena.NamedQuery:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type athena.NamedQuery not found", name)
+}
+
+// GetAllAthenaPreparedStatementResources retrieves all athena.PreparedStatement items from an AWS CloudFormation template
+func (t *Template) GetAllAthenaPreparedStatementResources() map[string]*athena.PreparedStatement {
+ results := map[string]*athena.PreparedStatement{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *athena.PreparedStatement:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAthenaPreparedStatementWithName retrieves all athena.PreparedStatement items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAthenaPreparedStatementWithName(name string) (*athena.PreparedStatement, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *athena.PreparedStatement:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type athena.PreparedStatement not found", name)
+}
+
+// GetAllAthenaWorkGroupResources retrieves all athena.WorkGroup items from an AWS CloudFormation template
+func (t *Template) GetAllAthenaWorkGroupResources() map[string]*athena.WorkGroup {
+ results := map[string]*athena.WorkGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *athena.WorkGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAthenaWorkGroupWithName retrieves all athena.WorkGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAthenaWorkGroupWithName(name string) (*athena.WorkGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *athena.WorkGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type athena.WorkGroup not found", name)
+}
+
+// GetAllAuditManagerAssessmentResources retrieves all auditmanager.Assessment items from an AWS CloudFormation template
+func (t *Template) GetAllAuditManagerAssessmentResources() map[string]*auditmanager.Assessment {
+ results := map[string]*auditmanager.Assessment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *auditmanager.Assessment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAuditManagerAssessmentWithName retrieves all auditmanager.Assessment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAuditManagerAssessmentWithName(name string) (*auditmanager.Assessment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *auditmanager.Assessment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type auditmanager.Assessment not found", name)
+}
+
+// GetAllAutoScalingAutoScalingGroupResources retrieves all autoscaling.AutoScalingGroup items from an AWS CloudFormation template
+func (t *Template) GetAllAutoScalingAutoScalingGroupResources() map[string]*autoscaling.AutoScalingGroup {
+ results := map[string]*autoscaling.AutoScalingGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *autoscaling.AutoScalingGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAutoScalingAutoScalingGroupWithName retrieves all autoscaling.AutoScalingGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAutoScalingAutoScalingGroupWithName(name string) (*autoscaling.AutoScalingGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *autoscaling.AutoScalingGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type autoscaling.AutoScalingGroup not found", name)
+}
+
+// GetAllAutoScalingLaunchConfigurationResources retrieves all autoscaling.LaunchConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllAutoScalingLaunchConfigurationResources() map[string]*autoscaling.LaunchConfiguration {
+ results := map[string]*autoscaling.LaunchConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *autoscaling.LaunchConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAutoScalingLaunchConfigurationWithName retrieves all autoscaling.LaunchConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAutoScalingLaunchConfigurationWithName(name string) (*autoscaling.LaunchConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *autoscaling.LaunchConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type autoscaling.LaunchConfiguration not found", name)
+}
+
+// GetAllAutoScalingLifecycleHookResources retrieves all autoscaling.LifecycleHook items from an AWS CloudFormation template
+func (t *Template) GetAllAutoScalingLifecycleHookResources() map[string]*autoscaling.LifecycleHook {
+ results := map[string]*autoscaling.LifecycleHook{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *autoscaling.LifecycleHook:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAutoScalingLifecycleHookWithName retrieves all autoscaling.LifecycleHook items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAutoScalingLifecycleHookWithName(name string) (*autoscaling.LifecycleHook, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *autoscaling.LifecycleHook:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type autoscaling.LifecycleHook not found", name)
+}
+
+// GetAllAutoScalingScalingPolicyResources retrieves all autoscaling.ScalingPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllAutoScalingScalingPolicyResources() map[string]*autoscaling.ScalingPolicy {
+ results := map[string]*autoscaling.ScalingPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *autoscaling.ScalingPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAutoScalingScalingPolicyWithName retrieves all autoscaling.ScalingPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAutoScalingScalingPolicyWithName(name string) (*autoscaling.ScalingPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *autoscaling.ScalingPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type autoscaling.ScalingPolicy not found", name)
+}
+
+// GetAllAutoScalingScheduledActionResources retrieves all autoscaling.ScheduledAction items from an AWS CloudFormation template
+func (t *Template) GetAllAutoScalingScheduledActionResources() map[string]*autoscaling.ScheduledAction {
+ results := map[string]*autoscaling.ScheduledAction{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *autoscaling.ScheduledAction:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAutoScalingScheduledActionWithName retrieves all autoscaling.ScheduledAction items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAutoScalingScheduledActionWithName(name string) (*autoscaling.ScheduledAction, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *autoscaling.ScheduledAction:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type autoscaling.ScheduledAction not found", name)
+}
+
+// GetAllAutoScalingWarmPoolResources retrieves all autoscaling.WarmPool items from an AWS CloudFormation template
+func (t *Template) GetAllAutoScalingWarmPoolResources() map[string]*autoscaling.WarmPool {
+ results := map[string]*autoscaling.WarmPool{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *autoscaling.WarmPool:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAutoScalingWarmPoolWithName retrieves all autoscaling.WarmPool items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAutoScalingWarmPoolWithName(name string) (*autoscaling.WarmPool, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *autoscaling.WarmPool:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type autoscaling.WarmPool not found", name)
+}
+
+// GetAllAutoScalingPlansScalingPlanResources retrieves all autoscalingplans.ScalingPlan items from an AWS CloudFormation template
+func (t *Template) GetAllAutoScalingPlansScalingPlanResources() map[string]*autoscalingplans.ScalingPlan {
+ results := map[string]*autoscalingplans.ScalingPlan{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *autoscalingplans.ScalingPlan:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetAutoScalingPlansScalingPlanWithName retrieves all autoscalingplans.ScalingPlan items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetAutoScalingPlansScalingPlanWithName(name string) (*autoscalingplans.ScalingPlan, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *autoscalingplans.ScalingPlan:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type autoscalingplans.ScalingPlan not found", name)
+}
+
+// GetAllBackupBackupPlanResources retrieves all backup.BackupPlan items from an AWS CloudFormation template
+func (t *Template) GetAllBackupBackupPlanResources() map[string]*backup.BackupPlan {
+ results := map[string]*backup.BackupPlan{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *backup.BackupPlan:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBackupBackupPlanWithName retrieves all backup.BackupPlan items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBackupBackupPlanWithName(name string) (*backup.BackupPlan, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *backup.BackupPlan:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type backup.BackupPlan not found", name)
+}
+
+// GetAllBackupBackupSelectionResources retrieves all backup.BackupSelection items from an AWS CloudFormation template
+func (t *Template) GetAllBackupBackupSelectionResources() map[string]*backup.BackupSelection {
+ results := map[string]*backup.BackupSelection{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *backup.BackupSelection:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBackupBackupSelectionWithName retrieves all backup.BackupSelection items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBackupBackupSelectionWithName(name string) (*backup.BackupSelection, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *backup.BackupSelection:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type backup.BackupSelection not found", name)
+}
+
+// GetAllBackupBackupVaultResources retrieves all backup.BackupVault items from an AWS CloudFormation template
+func (t *Template) GetAllBackupBackupVaultResources() map[string]*backup.BackupVault {
+ results := map[string]*backup.BackupVault{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *backup.BackupVault:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBackupBackupVaultWithName retrieves all backup.BackupVault items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBackupBackupVaultWithName(name string) (*backup.BackupVault, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *backup.BackupVault:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type backup.BackupVault not found", name)
+}
+
+// GetAllBackupFrameworkResources retrieves all backup.Framework items from an AWS CloudFormation template
+func (t *Template) GetAllBackupFrameworkResources() map[string]*backup.Framework {
+ results := map[string]*backup.Framework{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *backup.Framework:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBackupFrameworkWithName retrieves all backup.Framework items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBackupFrameworkWithName(name string) (*backup.Framework, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *backup.Framework:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type backup.Framework not found", name)
+}
+
+// GetAllBackupReportPlanResources retrieves all backup.ReportPlan items from an AWS CloudFormation template
+func (t *Template) GetAllBackupReportPlanResources() map[string]*backup.ReportPlan {
+ results := map[string]*backup.ReportPlan{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *backup.ReportPlan:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBackupReportPlanWithName retrieves all backup.ReportPlan items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBackupReportPlanWithName(name string) (*backup.ReportPlan, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *backup.ReportPlan:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type backup.ReportPlan not found", name)
+}
+
+// GetAllBatchComputeEnvironmentResources retrieves all batch.ComputeEnvironment items from an AWS CloudFormation template
+func (t *Template) GetAllBatchComputeEnvironmentResources() map[string]*batch.ComputeEnvironment {
+ results := map[string]*batch.ComputeEnvironment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *batch.ComputeEnvironment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBatchComputeEnvironmentWithName retrieves all batch.ComputeEnvironment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBatchComputeEnvironmentWithName(name string) (*batch.ComputeEnvironment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *batch.ComputeEnvironment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type batch.ComputeEnvironment not found", name)
+}
+
+// GetAllBatchJobDefinitionResources retrieves all batch.JobDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllBatchJobDefinitionResources() map[string]*batch.JobDefinition {
+ results := map[string]*batch.JobDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *batch.JobDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBatchJobDefinitionWithName retrieves all batch.JobDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBatchJobDefinitionWithName(name string) (*batch.JobDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *batch.JobDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type batch.JobDefinition not found", name)
+}
+
+// GetAllBatchJobQueueResources retrieves all batch.JobQueue items from an AWS CloudFormation template
+func (t *Template) GetAllBatchJobQueueResources() map[string]*batch.JobQueue {
+ results := map[string]*batch.JobQueue{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *batch.JobQueue:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBatchJobQueueWithName retrieves all batch.JobQueue items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBatchJobQueueWithName(name string) (*batch.JobQueue, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *batch.JobQueue:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type batch.JobQueue not found", name)
+}
+
+// GetAllBatchSchedulingPolicyResources retrieves all batch.SchedulingPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllBatchSchedulingPolicyResources() map[string]*batch.SchedulingPolicy {
+ results := map[string]*batch.SchedulingPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *batch.SchedulingPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBatchSchedulingPolicyWithName retrieves all batch.SchedulingPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBatchSchedulingPolicyWithName(name string) (*batch.SchedulingPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *batch.SchedulingPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type batch.SchedulingPolicy not found", name)
+}
+
+// GetAllBudgetsBudgetResources retrieves all budgets.Budget items from an AWS CloudFormation template
+func (t *Template) GetAllBudgetsBudgetResources() map[string]*budgets.Budget {
+ results := map[string]*budgets.Budget{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *budgets.Budget:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBudgetsBudgetWithName retrieves all budgets.Budget items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBudgetsBudgetWithName(name string) (*budgets.Budget, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *budgets.Budget:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type budgets.Budget not found", name)
+}
+
+// GetAllBudgetsBudgetsActionResources retrieves all budgets.BudgetsAction items from an AWS CloudFormation template
+func (t *Template) GetAllBudgetsBudgetsActionResources() map[string]*budgets.BudgetsAction {
+ results := map[string]*budgets.BudgetsAction{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *budgets.BudgetsAction:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetBudgetsBudgetsActionWithName retrieves all budgets.BudgetsAction items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetBudgetsBudgetsActionWithName(name string) (*budgets.BudgetsAction, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *budgets.BudgetsAction:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type budgets.BudgetsAction not found", name)
+}
+
+// GetAllCEAnomalyMonitorResources retrieves all ce.AnomalyMonitor items from an AWS CloudFormation template
+func (t *Template) GetAllCEAnomalyMonitorResources() map[string]*ce.AnomalyMonitor {
+ results := map[string]*ce.AnomalyMonitor{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ce.AnomalyMonitor:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCEAnomalyMonitorWithName retrieves all ce.AnomalyMonitor items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCEAnomalyMonitorWithName(name string) (*ce.AnomalyMonitor, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ce.AnomalyMonitor:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ce.AnomalyMonitor not found", name)
+}
+
+// GetAllCEAnomalySubscriptionResources retrieves all ce.AnomalySubscription items from an AWS CloudFormation template
+func (t *Template) GetAllCEAnomalySubscriptionResources() map[string]*ce.AnomalySubscription {
+ results := map[string]*ce.AnomalySubscription{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ce.AnomalySubscription:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCEAnomalySubscriptionWithName retrieves all ce.AnomalySubscription items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCEAnomalySubscriptionWithName(name string) (*ce.AnomalySubscription, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ce.AnomalySubscription:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ce.AnomalySubscription not found", name)
+}
+
+// GetAllCECostCategoryResources retrieves all ce.CostCategory items from an AWS CloudFormation template
+func (t *Template) GetAllCECostCategoryResources() map[string]*ce.CostCategory {
+ results := map[string]*ce.CostCategory{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ce.CostCategory:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCECostCategoryWithName retrieves all ce.CostCategory items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCECostCategoryWithName(name string) (*ce.CostCategory, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ce.CostCategory:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ce.CostCategory not found", name)
+}
+
+// GetAllCURReportDefinitionResources retrieves all cur.ReportDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllCURReportDefinitionResources() map[string]*cur.ReportDefinition {
+ results := map[string]*cur.ReportDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cur.ReportDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCURReportDefinitionWithName retrieves all cur.ReportDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCURReportDefinitionWithName(name string) (*cur.ReportDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cur.ReportDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cur.ReportDefinition not found", name)
+}
+
+// GetAllCassandraKeyspaceResources retrieves all cassandra.Keyspace items from an AWS CloudFormation template
+func (t *Template) GetAllCassandraKeyspaceResources() map[string]*cassandra.Keyspace {
+ results := map[string]*cassandra.Keyspace{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cassandra.Keyspace:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCassandraKeyspaceWithName retrieves all cassandra.Keyspace items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCassandraKeyspaceWithName(name string) (*cassandra.Keyspace, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cassandra.Keyspace:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cassandra.Keyspace not found", name)
+}
+
+// GetAllCassandraTableResources retrieves all cassandra.Table items from an AWS CloudFormation template
+func (t *Template) GetAllCassandraTableResources() map[string]*cassandra.Table {
+ results := map[string]*cassandra.Table{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cassandra.Table:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCassandraTableWithName retrieves all cassandra.Table items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCassandraTableWithName(name string) (*cassandra.Table, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cassandra.Table:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cassandra.Table not found", name)
+}
+
+// GetAllCertificateManagerAccountResources retrieves all certificatemanager.Account items from an AWS CloudFormation template
+func (t *Template) GetAllCertificateManagerAccountResources() map[string]*certificatemanager.Account {
+ results := map[string]*certificatemanager.Account{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *certificatemanager.Account:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCertificateManagerAccountWithName retrieves all certificatemanager.Account items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCertificateManagerAccountWithName(name string) (*certificatemanager.Account, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *certificatemanager.Account:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type certificatemanager.Account not found", name)
+}
+
+// GetAllCertificateManagerCertificateResources retrieves all certificatemanager.Certificate items from an AWS CloudFormation template
+func (t *Template) GetAllCertificateManagerCertificateResources() map[string]*certificatemanager.Certificate {
+ results := map[string]*certificatemanager.Certificate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *certificatemanager.Certificate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCertificateManagerCertificateWithName retrieves all certificatemanager.Certificate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCertificateManagerCertificateWithName(name string) (*certificatemanager.Certificate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *certificatemanager.Certificate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type certificatemanager.Certificate not found", name)
+}
+
+// GetAllChatbotSlackChannelConfigurationResources retrieves all chatbot.SlackChannelConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllChatbotSlackChannelConfigurationResources() map[string]*chatbot.SlackChannelConfiguration {
+ results := map[string]*chatbot.SlackChannelConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *chatbot.SlackChannelConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetChatbotSlackChannelConfigurationWithName retrieves all chatbot.SlackChannelConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetChatbotSlackChannelConfigurationWithName(name string) (*chatbot.SlackChannelConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *chatbot.SlackChannelConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type chatbot.SlackChannelConfiguration not found", name)
+}
+
+// GetAllCloud9EnvironmentEC2Resources retrieves all cloud9.EnvironmentEC2 items from an AWS CloudFormation template
+func (t *Template) GetAllCloud9EnvironmentEC2Resources() map[string]*cloud9.EnvironmentEC2 {
+ results := map[string]*cloud9.EnvironmentEC2{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloud9.EnvironmentEC2:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloud9EnvironmentEC2WithName retrieves all cloud9.EnvironmentEC2 items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloud9EnvironmentEC2WithName(name string) (*cloud9.EnvironmentEC2, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloud9.EnvironmentEC2:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloud9.EnvironmentEC2 not found", name)
+}
+
+// GetAllCloudFormationCustomResourceResources retrieves all cloudformation.CustomResource items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationCustomResourceResources() map[string]*cloudformation.CustomResource {
+ results := map[string]*cloudformation.CustomResource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.CustomResource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationCustomResourceWithName retrieves all cloudformation.CustomResource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationCustomResourceWithName(name string) (*cloudformation.CustomResource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.CustomResource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.CustomResource not found", name)
+}
+
+// GetAllCloudFormationMacroResources retrieves all cloudformation.Macro items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationMacroResources() map[string]*cloudformation.Macro {
+ results := map[string]*cloudformation.Macro{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.Macro:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationMacroWithName retrieves all cloudformation.Macro items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationMacroWithName(name string) (*cloudformation.Macro, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.Macro:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.Macro not found", name)
+}
+
+// GetAllCloudFormationModuleDefaultVersionResources retrieves all cloudformation.ModuleDefaultVersion items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationModuleDefaultVersionResources() map[string]*cloudformation.ModuleDefaultVersion {
+ results := map[string]*cloudformation.ModuleDefaultVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.ModuleDefaultVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationModuleDefaultVersionWithName retrieves all cloudformation.ModuleDefaultVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationModuleDefaultVersionWithName(name string) (*cloudformation.ModuleDefaultVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.ModuleDefaultVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.ModuleDefaultVersion not found", name)
+}
+
+// GetAllCloudFormationModuleVersionResources retrieves all cloudformation.ModuleVersion items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationModuleVersionResources() map[string]*cloudformation.ModuleVersion {
+ results := map[string]*cloudformation.ModuleVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.ModuleVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationModuleVersionWithName retrieves all cloudformation.ModuleVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationModuleVersionWithName(name string) (*cloudformation.ModuleVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.ModuleVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.ModuleVersion not found", name)
+}
+
+// GetAllCloudFormationPublicTypeVersionResources retrieves all cloudformation.PublicTypeVersion items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationPublicTypeVersionResources() map[string]*cloudformation.PublicTypeVersion {
+ results := map[string]*cloudformation.PublicTypeVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.PublicTypeVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationPublicTypeVersionWithName retrieves all cloudformation.PublicTypeVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationPublicTypeVersionWithName(name string) (*cloudformation.PublicTypeVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.PublicTypeVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.PublicTypeVersion not found", name)
+}
+
+// GetAllCloudFormationPublisherResources retrieves all cloudformation.Publisher items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationPublisherResources() map[string]*cloudformation.Publisher {
+ results := map[string]*cloudformation.Publisher{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.Publisher:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationPublisherWithName retrieves all cloudformation.Publisher items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationPublisherWithName(name string) (*cloudformation.Publisher, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.Publisher:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.Publisher not found", name)
+}
+
+// GetAllCloudFormationResourceDefaultVersionResources retrieves all cloudformation.ResourceDefaultVersion items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationResourceDefaultVersionResources() map[string]*cloudformation.ResourceDefaultVersion {
+ results := map[string]*cloudformation.ResourceDefaultVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.ResourceDefaultVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationResourceDefaultVersionWithName retrieves all cloudformation.ResourceDefaultVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationResourceDefaultVersionWithName(name string) (*cloudformation.ResourceDefaultVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.ResourceDefaultVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.ResourceDefaultVersion not found", name)
+}
+
+// GetAllCloudFormationResourceVersionResources retrieves all cloudformation.ResourceVersion items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationResourceVersionResources() map[string]*cloudformation.ResourceVersion {
+ results := map[string]*cloudformation.ResourceVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.ResourceVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationResourceVersionWithName retrieves all cloudformation.ResourceVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationResourceVersionWithName(name string) (*cloudformation.ResourceVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.ResourceVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.ResourceVersion not found", name)
+}
+
+// GetAllCloudFormationStackResources retrieves all cloudformation.Stack items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationStackResources() map[string]*cloudformation.Stack {
+ results := map[string]*cloudformation.Stack{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.Stack:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationStackWithName retrieves all cloudformation.Stack items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationStackWithName(name string) (*cloudformation.Stack, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.Stack:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.Stack not found", name)
+}
+
+// GetAllCloudFormationStackSetResources retrieves all cloudformation.StackSet items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationStackSetResources() map[string]*cloudformation.StackSet {
+ results := map[string]*cloudformation.StackSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.StackSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationStackSetWithName retrieves all cloudformation.StackSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationStackSetWithName(name string) (*cloudformation.StackSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.StackSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.StackSet not found", name)
+}
+
+// GetAllCloudFormationTypeActivationResources retrieves all cloudformation.TypeActivation items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationTypeActivationResources() map[string]*cloudformation.TypeActivation {
+ results := map[string]*cloudformation.TypeActivation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.TypeActivation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationTypeActivationWithName retrieves all cloudformation.TypeActivation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationTypeActivationWithName(name string) (*cloudformation.TypeActivation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.TypeActivation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.TypeActivation not found", name)
+}
+
+// GetAllCloudFormationWaitConditionResources retrieves all cloudformation.WaitCondition items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationWaitConditionResources() map[string]*cloudformation.WaitCondition {
+ results := map[string]*cloudformation.WaitCondition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.WaitCondition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationWaitConditionWithName retrieves all cloudformation.WaitCondition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationWaitConditionWithName(name string) (*cloudformation.WaitCondition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.WaitCondition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.WaitCondition not found", name)
+}
+
+// GetAllCloudFormationWaitConditionHandleResources retrieves all cloudformation.WaitConditionHandle items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFormationWaitConditionHandleResources() map[string]*cloudformation.WaitConditionHandle {
+ results := map[string]*cloudformation.WaitConditionHandle{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudformation.WaitConditionHandle:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFormationWaitConditionHandleWithName retrieves all cloudformation.WaitConditionHandle items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFormationWaitConditionHandleWithName(name string) (*cloudformation.WaitConditionHandle, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudformation.WaitConditionHandle:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudformation.WaitConditionHandle not found", name)
+}
+
+// GetAllCloudFrontCachePolicyResources retrieves all cloudfront.CachePolicy items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontCachePolicyResources() map[string]*cloudfront.CachePolicy {
+ results := map[string]*cloudfront.CachePolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.CachePolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontCachePolicyWithName retrieves all cloudfront.CachePolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontCachePolicyWithName(name string) (*cloudfront.CachePolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.CachePolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.CachePolicy not found", name)
+}
+
+// GetAllCloudFrontCloudFrontOriginAccessIdentityResources retrieves all cloudfront.CloudFrontOriginAccessIdentity items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontCloudFrontOriginAccessIdentityResources() map[string]*cloudfront.CloudFrontOriginAccessIdentity {
+ results := map[string]*cloudfront.CloudFrontOriginAccessIdentity{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.CloudFrontOriginAccessIdentity:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontCloudFrontOriginAccessIdentityWithName retrieves all cloudfront.CloudFrontOriginAccessIdentity items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontCloudFrontOriginAccessIdentityWithName(name string) (*cloudfront.CloudFrontOriginAccessIdentity, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.CloudFrontOriginAccessIdentity:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.CloudFrontOriginAccessIdentity not found", name)
+}
+
+// GetAllCloudFrontDistributionResources retrieves all cloudfront.Distribution items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontDistributionResources() map[string]*cloudfront.Distribution {
+ results := map[string]*cloudfront.Distribution{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.Distribution:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontDistributionWithName retrieves all cloudfront.Distribution items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontDistributionWithName(name string) (*cloudfront.Distribution, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.Distribution:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.Distribution not found", name)
+}
+
+// GetAllCloudFrontFunctionResources retrieves all cloudfront.Function items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontFunctionResources() map[string]*cloudfront.Function {
+ results := map[string]*cloudfront.Function{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.Function:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontFunctionWithName retrieves all cloudfront.Function items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontFunctionWithName(name string) (*cloudfront.Function, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.Function:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.Function not found", name)
+}
+
+// GetAllCloudFrontKeyGroupResources retrieves all cloudfront.KeyGroup items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontKeyGroupResources() map[string]*cloudfront.KeyGroup {
+ results := map[string]*cloudfront.KeyGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.KeyGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontKeyGroupWithName retrieves all cloudfront.KeyGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontKeyGroupWithName(name string) (*cloudfront.KeyGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.KeyGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.KeyGroup not found", name)
+}
+
+// GetAllCloudFrontOriginRequestPolicyResources retrieves all cloudfront.OriginRequestPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontOriginRequestPolicyResources() map[string]*cloudfront.OriginRequestPolicy {
+ results := map[string]*cloudfront.OriginRequestPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.OriginRequestPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontOriginRequestPolicyWithName retrieves all cloudfront.OriginRequestPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontOriginRequestPolicyWithName(name string) (*cloudfront.OriginRequestPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.OriginRequestPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.OriginRequestPolicy not found", name)
+}
+
+// GetAllCloudFrontPublicKeyResources retrieves all cloudfront.PublicKey items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontPublicKeyResources() map[string]*cloudfront.PublicKey {
+ results := map[string]*cloudfront.PublicKey{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.PublicKey:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontPublicKeyWithName retrieves all cloudfront.PublicKey items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontPublicKeyWithName(name string) (*cloudfront.PublicKey, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.PublicKey:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.PublicKey not found", name)
+}
+
+// GetAllCloudFrontRealtimeLogConfigResources retrieves all cloudfront.RealtimeLogConfig items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontRealtimeLogConfigResources() map[string]*cloudfront.RealtimeLogConfig {
+ results := map[string]*cloudfront.RealtimeLogConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.RealtimeLogConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontRealtimeLogConfigWithName retrieves all cloudfront.RealtimeLogConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontRealtimeLogConfigWithName(name string) (*cloudfront.RealtimeLogConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.RealtimeLogConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.RealtimeLogConfig not found", name)
+}
+
+// GetAllCloudFrontResponseHeadersPolicyResources retrieves all cloudfront.ResponseHeadersPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontResponseHeadersPolicyResources() map[string]*cloudfront.ResponseHeadersPolicy {
+ results := map[string]*cloudfront.ResponseHeadersPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.ResponseHeadersPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontResponseHeadersPolicyWithName retrieves all cloudfront.ResponseHeadersPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontResponseHeadersPolicyWithName(name string) (*cloudfront.ResponseHeadersPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.ResponseHeadersPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.ResponseHeadersPolicy not found", name)
+}
+
+// GetAllCloudFrontStreamingDistributionResources retrieves all cloudfront.StreamingDistribution items from an AWS CloudFormation template
+func (t *Template) GetAllCloudFrontStreamingDistributionResources() map[string]*cloudfront.StreamingDistribution {
+ results := map[string]*cloudfront.StreamingDistribution{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudfront.StreamingDistribution:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudFrontStreamingDistributionWithName retrieves all cloudfront.StreamingDistribution items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudFrontStreamingDistributionWithName(name string) (*cloudfront.StreamingDistribution, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudfront.StreamingDistribution:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudfront.StreamingDistribution not found", name)
+}
+
+// GetAllCloudTrailTrailResources retrieves all cloudtrail.Trail items from an AWS CloudFormation template
+func (t *Template) GetAllCloudTrailTrailResources() map[string]*cloudtrail.Trail {
+ results := map[string]*cloudtrail.Trail{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudtrail.Trail:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudTrailTrailWithName retrieves all cloudtrail.Trail items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudTrailTrailWithName(name string) (*cloudtrail.Trail, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudtrail.Trail:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudtrail.Trail not found", name)
+}
+
+// GetAllCloudWatchAlarmResources retrieves all cloudwatch.Alarm items from an AWS CloudFormation template
+func (t *Template) GetAllCloudWatchAlarmResources() map[string]*cloudwatch.Alarm {
+ results := map[string]*cloudwatch.Alarm{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudwatch.Alarm:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudWatchAlarmWithName retrieves all cloudwatch.Alarm items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudWatchAlarmWithName(name string) (*cloudwatch.Alarm, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudwatch.Alarm:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudwatch.Alarm not found", name)
+}
+
+// GetAllCloudWatchAnomalyDetectorResources retrieves all cloudwatch.AnomalyDetector items from an AWS CloudFormation template
+func (t *Template) GetAllCloudWatchAnomalyDetectorResources() map[string]*cloudwatch.AnomalyDetector {
+ results := map[string]*cloudwatch.AnomalyDetector{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudwatch.AnomalyDetector:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudWatchAnomalyDetectorWithName retrieves all cloudwatch.AnomalyDetector items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudWatchAnomalyDetectorWithName(name string) (*cloudwatch.AnomalyDetector, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudwatch.AnomalyDetector:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudwatch.AnomalyDetector not found", name)
+}
+
+// GetAllCloudWatchCompositeAlarmResources retrieves all cloudwatch.CompositeAlarm items from an AWS CloudFormation template
+func (t *Template) GetAllCloudWatchCompositeAlarmResources() map[string]*cloudwatch.CompositeAlarm {
+ results := map[string]*cloudwatch.CompositeAlarm{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudwatch.CompositeAlarm:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudWatchCompositeAlarmWithName retrieves all cloudwatch.CompositeAlarm items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudWatchCompositeAlarmWithName(name string) (*cloudwatch.CompositeAlarm, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudwatch.CompositeAlarm:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudwatch.CompositeAlarm not found", name)
+}
+
+// GetAllCloudWatchDashboardResources retrieves all cloudwatch.Dashboard items from an AWS CloudFormation template
+func (t *Template) GetAllCloudWatchDashboardResources() map[string]*cloudwatch.Dashboard {
+ results := map[string]*cloudwatch.Dashboard{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudwatch.Dashboard:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudWatchDashboardWithName retrieves all cloudwatch.Dashboard items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudWatchDashboardWithName(name string) (*cloudwatch.Dashboard, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudwatch.Dashboard:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudwatch.Dashboard not found", name)
+}
+
+// GetAllCloudWatchInsightRuleResources retrieves all cloudwatch.InsightRule items from an AWS CloudFormation template
+func (t *Template) GetAllCloudWatchInsightRuleResources() map[string]*cloudwatch.InsightRule {
+ results := map[string]*cloudwatch.InsightRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudwatch.InsightRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudWatchInsightRuleWithName retrieves all cloudwatch.InsightRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudWatchInsightRuleWithName(name string) (*cloudwatch.InsightRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudwatch.InsightRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudwatch.InsightRule not found", name)
+}
+
+// GetAllCloudWatchMetricStreamResources retrieves all cloudwatch.MetricStream items from an AWS CloudFormation template
+func (t *Template) GetAllCloudWatchMetricStreamResources() map[string]*cloudwatch.MetricStream {
+ results := map[string]*cloudwatch.MetricStream{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cloudwatch.MetricStream:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCloudWatchMetricStreamWithName retrieves all cloudwatch.MetricStream items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCloudWatchMetricStreamWithName(name string) (*cloudwatch.MetricStream, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cloudwatch.MetricStream:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cloudwatch.MetricStream not found", name)
+}
+
+// GetAllCodeArtifactDomainResources retrieves all codeartifact.Domain items from an AWS CloudFormation template
+func (t *Template) GetAllCodeArtifactDomainResources() map[string]*codeartifact.Domain {
+ results := map[string]*codeartifact.Domain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codeartifact.Domain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeArtifactDomainWithName retrieves all codeartifact.Domain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeArtifactDomainWithName(name string) (*codeartifact.Domain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codeartifact.Domain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codeartifact.Domain not found", name)
+}
+
+// GetAllCodeArtifactRepositoryResources retrieves all codeartifact.Repository items from an AWS CloudFormation template
+func (t *Template) GetAllCodeArtifactRepositoryResources() map[string]*codeartifact.Repository {
+ results := map[string]*codeartifact.Repository{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codeartifact.Repository:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeArtifactRepositoryWithName retrieves all codeartifact.Repository items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeArtifactRepositoryWithName(name string) (*codeartifact.Repository, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codeartifact.Repository:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codeartifact.Repository not found", name)
+}
+
+// GetAllCodeBuildProjectResources retrieves all codebuild.Project items from an AWS CloudFormation template
+func (t *Template) GetAllCodeBuildProjectResources() map[string]*codebuild.Project {
+ results := map[string]*codebuild.Project{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codebuild.Project:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeBuildProjectWithName retrieves all codebuild.Project items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeBuildProjectWithName(name string) (*codebuild.Project, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codebuild.Project:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codebuild.Project not found", name)
+}
+
+// GetAllCodeBuildReportGroupResources retrieves all codebuild.ReportGroup items from an AWS CloudFormation template
+func (t *Template) GetAllCodeBuildReportGroupResources() map[string]*codebuild.ReportGroup {
+ results := map[string]*codebuild.ReportGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codebuild.ReportGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeBuildReportGroupWithName retrieves all codebuild.ReportGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeBuildReportGroupWithName(name string) (*codebuild.ReportGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codebuild.ReportGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codebuild.ReportGroup not found", name)
+}
+
+// GetAllCodeBuildSourceCredentialResources retrieves all codebuild.SourceCredential items from an AWS CloudFormation template
+func (t *Template) GetAllCodeBuildSourceCredentialResources() map[string]*codebuild.SourceCredential {
+ results := map[string]*codebuild.SourceCredential{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codebuild.SourceCredential:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeBuildSourceCredentialWithName retrieves all codebuild.SourceCredential items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeBuildSourceCredentialWithName(name string) (*codebuild.SourceCredential, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codebuild.SourceCredential:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codebuild.SourceCredential not found", name)
+}
+
+// GetAllCodeCommitRepositoryResources retrieves all codecommit.Repository items from an AWS CloudFormation template
+func (t *Template) GetAllCodeCommitRepositoryResources() map[string]*codecommit.Repository {
+ results := map[string]*codecommit.Repository{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codecommit.Repository:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeCommitRepositoryWithName retrieves all codecommit.Repository items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeCommitRepositoryWithName(name string) (*codecommit.Repository, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codecommit.Repository:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codecommit.Repository not found", name)
+}
+
+// GetAllCodeDeployApplicationResources retrieves all codedeploy.Application items from an AWS CloudFormation template
+func (t *Template) GetAllCodeDeployApplicationResources() map[string]*codedeploy.Application {
+ results := map[string]*codedeploy.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codedeploy.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeDeployApplicationWithName retrieves all codedeploy.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeDeployApplicationWithName(name string) (*codedeploy.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codedeploy.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codedeploy.Application not found", name)
+}
+
+// GetAllCodeDeployDeploymentConfigResources retrieves all codedeploy.DeploymentConfig items from an AWS CloudFormation template
+func (t *Template) GetAllCodeDeployDeploymentConfigResources() map[string]*codedeploy.DeploymentConfig {
+ results := map[string]*codedeploy.DeploymentConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codedeploy.DeploymentConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeDeployDeploymentConfigWithName retrieves all codedeploy.DeploymentConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeDeployDeploymentConfigWithName(name string) (*codedeploy.DeploymentConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codedeploy.DeploymentConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codedeploy.DeploymentConfig not found", name)
+}
+
+// GetAllCodeDeployDeploymentGroupResources retrieves all codedeploy.DeploymentGroup items from an AWS CloudFormation template
+func (t *Template) GetAllCodeDeployDeploymentGroupResources() map[string]*codedeploy.DeploymentGroup {
+ results := map[string]*codedeploy.DeploymentGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codedeploy.DeploymentGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeDeployDeploymentGroupWithName retrieves all codedeploy.DeploymentGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeDeployDeploymentGroupWithName(name string) (*codedeploy.DeploymentGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codedeploy.DeploymentGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codedeploy.DeploymentGroup not found", name)
+}
+
+// GetAllCodeGuruProfilerProfilingGroupResources retrieves all codeguruprofiler.ProfilingGroup items from an AWS CloudFormation template
+func (t *Template) GetAllCodeGuruProfilerProfilingGroupResources() map[string]*codeguruprofiler.ProfilingGroup {
+ results := map[string]*codeguruprofiler.ProfilingGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codeguruprofiler.ProfilingGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeGuruProfilerProfilingGroupWithName retrieves all codeguruprofiler.ProfilingGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeGuruProfilerProfilingGroupWithName(name string) (*codeguruprofiler.ProfilingGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codeguruprofiler.ProfilingGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codeguruprofiler.ProfilingGroup not found", name)
+}
+
+// GetAllCodeGuruReviewerRepositoryAssociationResources retrieves all codegurureviewer.RepositoryAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllCodeGuruReviewerRepositoryAssociationResources() map[string]*codegurureviewer.RepositoryAssociation {
+ results := map[string]*codegurureviewer.RepositoryAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codegurureviewer.RepositoryAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeGuruReviewerRepositoryAssociationWithName retrieves all codegurureviewer.RepositoryAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeGuruReviewerRepositoryAssociationWithName(name string) (*codegurureviewer.RepositoryAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codegurureviewer.RepositoryAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codegurureviewer.RepositoryAssociation not found", name)
+}
+
+// GetAllCodePipelineCustomActionTypeResources retrieves all codepipeline.CustomActionType items from an AWS CloudFormation template
+func (t *Template) GetAllCodePipelineCustomActionTypeResources() map[string]*codepipeline.CustomActionType {
+ results := map[string]*codepipeline.CustomActionType{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codepipeline.CustomActionType:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodePipelineCustomActionTypeWithName retrieves all codepipeline.CustomActionType items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodePipelineCustomActionTypeWithName(name string) (*codepipeline.CustomActionType, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codepipeline.CustomActionType:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codepipeline.CustomActionType not found", name)
+}
+
+// GetAllCodePipelinePipelineResources retrieves all codepipeline.Pipeline items from an AWS CloudFormation template
+func (t *Template) GetAllCodePipelinePipelineResources() map[string]*codepipeline.Pipeline {
+ results := map[string]*codepipeline.Pipeline{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codepipeline.Pipeline:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodePipelinePipelineWithName retrieves all codepipeline.Pipeline items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodePipelinePipelineWithName(name string) (*codepipeline.Pipeline, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codepipeline.Pipeline:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codepipeline.Pipeline not found", name)
+}
+
+// GetAllCodePipelineWebhookResources retrieves all codepipeline.Webhook items from an AWS CloudFormation template
+func (t *Template) GetAllCodePipelineWebhookResources() map[string]*codepipeline.Webhook {
+ results := map[string]*codepipeline.Webhook{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codepipeline.Webhook:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodePipelineWebhookWithName retrieves all codepipeline.Webhook items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodePipelineWebhookWithName(name string) (*codepipeline.Webhook, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codepipeline.Webhook:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codepipeline.Webhook not found", name)
+}
+
+// GetAllCodeStarGitHubRepositoryResources retrieves all codestar.GitHubRepository items from an AWS CloudFormation template
+func (t *Template) GetAllCodeStarGitHubRepositoryResources() map[string]*codestar.GitHubRepository {
+ results := map[string]*codestar.GitHubRepository{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codestar.GitHubRepository:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeStarGitHubRepositoryWithName retrieves all codestar.GitHubRepository items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeStarGitHubRepositoryWithName(name string) (*codestar.GitHubRepository, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codestar.GitHubRepository:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codestar.GitHubRepository not found", name)
+}
+
+// GetAllCodeStarConnectionsConnectionResources retrieves all codestarconnections.Connection items from an AWS CloudFormation template
+func (t *Template) GetAllCodeStarConnectionsConnectionResources() map[string]*codestarconnections.Connection {
+ results := map[string]*codestarconnections.Connection{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codestarconnections.Connection:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeStarConnectionsConnectionWithName retrieves all codestarconnections.Connection items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeStarConnectionsConnectionWithName(name string) (*codestarconnections.Connection, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codestarconnections.Connection:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codestarconnections.Connection not found", name)
+}
+
+// GetAllCodeStarNotificationsNotificationRuleResources retrieves all codestarnotifications.NotificationRule items from an AWS CloudFormation template
+func (t *Template) GetAllCodeStarNotificationsNotificationRuleResources() map[string]*codestarnotifications.NotificationRule {
+ results := map[string]*codestarnotifications.NotificationRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *codestarnotifications.NotificationRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCodeStarNotificationsNotificationRuleWithName retrieves all codestarnotifications.NotificationRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCodeStarNotificationsNotificationRuleWithName(name string) (*codestarnotifications.NotificationRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *codestarnotifications.NotificationRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type codestarnotifications.NotificationRule not found", name)
+}
+
+// GetAllCognitoIdentityPoolResources retrieves all cognito.IdentityPool items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoIdentityPoolResources() map[string]*cognito.IdentityPool {
+ results := map[string]*cognito.IdentityPool{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.IdentityPool:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoIdentityPoolWithName retrieves all cognito.IdentityPool items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoIdentityPoolWithName(name string) (*cognito.IdentityPool, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.IdentityPool:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.IdentityPool not found", name)
+}
+
+// GetAllCognitoIdentityPoolRoleAttachmentResources retrieves all cognito.IdentityPoolRoleAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoIdentityPoolRoleAttachmentResources() map[string]*cognito.IdentityPoolRoleAttachment {
+ results := map[string]*cognito.IdentityPoolRoleAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.IdentityPoolRoleAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoIdentityPoolRoleAttachmentWithName retrieves all cognito.IdentityPoolRoleAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoIdentityPoolRoleAttachmentWithName(name string) (*cognito.IdentityPoolRoleAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.IdentityPoolRoleAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.IdentityPoolRoleAttachment not found", name)
+}
+
+// GetAllCognitoUserPoolResources retrieves all cognito.UserPool items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolResources() map[string]*cognito.UserPool {
+ results := map[string]*cognito.UserPool{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPool:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolWithName retrieves all cognito.UserPool items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolWithName(name string) (*cognito.UserPool, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPool:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPool not found", name)
+}
+
+// GetAllCognitoUserPoolClientResources retrieves all cognito.UserPoolClient items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolClientResources() map[string]*cognito.UserPoolClient {
+ results := map[string]*cognito.UserPoolClient{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolClient:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolClientWithName retrieves all cognito.UserPoolClient items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolClientWithName(name string) (*cognito.UserPoolClient, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolClient:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolClient not found", name)
+}
+
+// GetAllCognitoUserPoolDomainResources retrieves all cognito.UserPoolDomain items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolDomainResources() map[string]*cognito.UserPoolDomain {
+ results := map[string]*cognito.UserPoolDomain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolDomain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolDomainWithName retrieves all cognito.UserPoolDomain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolDomainWithName(name string) (*cognito.UserPoolDomain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolDomain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolDomain not found", name)
+}
+
+// GetAllCognitoUserPoolGroupResources retrieves all cognito.UserPoolGroup items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolGroupResources() map[string]*cognito.UserPoolGroup {
+ results := map[string]*cognito.UserPoolGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolGroupWithName retrieves all cognito.UserPoolGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolGroupWithName(name string) (*cognito.UserPoolGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolGroup not found", name)
+}
+
+// GetAllCognitoUserPoolIdentityProviderResources retrieves all cognito.UserPoolIdentityProvider items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolIdentityProviderResources() map[string]*cognito.UserPoolIdentityProvider {
+ results := map[string]*cognito.UserPoolIdentityProvider{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolIdentityProvider:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolIdentityProviderWithName retrieves all cognito.UserPoolIdentityProvider items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolIdentityProviderWithName(name string) (*cognito.UserPoolIdentityProvider, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolIdentityProvider:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolIdentityProvider not found", name)
+}
+
+// GetAllCognitoUserPoolResourceServerResources retrieves all cognito.UserPoolResourceServer items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolResourceServerResources() map[string]*cognito.UserPoolResourceServer {
+ results := map[string]*cognito.UserPoolResourceServer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolResourceServer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolResourceServerWithName retrieves all cognito.UserPoolResourceServer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolResourceServerWithName(name string) (*cognito.UserPoolResourceServer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolResourceServer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolResourceServer not found", name)
+}
+
+// GetAllCognitoUserPoolRiskConfigurationAttachmentResources retrieves all cognito.UserPoolRiskConfigurationAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolRiskConfigurationAttachmentResources() map[string]*cognito.UserPoolRiskConfigurationAttachment {
+ results := map[string]*cognito.UserPoolRiskConfigurationAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolRiskConfigurationAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolRiskConfigurationAttachmentWithName retrieves all cognito.UserPoolRiskConfigurationAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolRiskConfigurationAttachmentWithName(name string) (*cognito.UserPoolRiskConfigurationAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolRiskConfigurationAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolRiskConfigurationAttachment not found", name)
+}
+
+// GetAllCognitoUserPoolUICustomizationAttachmentResources retrieves all cognito.UserPoolUICustomizationAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolUICustomizationAttachmentResources() map[string]*cognito.UserPoolUICustomizationAttachment {
+ results := map[string]*cognito.UserPoolUICustomizationAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolUICustomizationAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolUICustomizationAttachmentWithName retrieves all cognito.UserPoolUICustomizationAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolUICustomizationAttachmentWithName(name string) (*cognito.UserPoolUICustomizationAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolUICustomizationAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolUICustomizationAttachment not found", name)
+}
+
+// GetAllCognitoUserPoolUserResources retrieves all cognito.UserPoolUser items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolUserResources() map[string]*cognito.UserPoolUser {
+ results := map[string]*cognito.UserPoolUser{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolUser:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolUserWithName retrieves all cognito.UserPoolUser items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolUserWithName(name string) (*cognito.UserPoolUser, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolUser:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolUser not found", name)
+}
+
+// GetAllCognitoUserPoolUserToGroupAttachmentResources retrieves all cognito.UserPoolUserToGroupAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllCognitoUserPoolUserToGroupAttachmentResources() map[string]*cognito.UserPoolUserToGroupAttachment {
+ results := map[string]*cognito.UserPoolUserToGroupAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolUserToGroupAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCognitoUserPoolUserToGroupAttachmentWithName retrieves all cognito.UserPoolUserToGroupAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCognitoUserPoolUserToGroupAttachmentWithName(name string) (*cognito.UserPoolUserToGroupAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *cognito.UserPoolUserToGroupAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type cognito.UserPoolUserToGroupAttachment not found", name)
+}
+
+// GetAllConfigAggregationAuthorizationResources retrieves all config.AggregationAuthorization items from an AWS CloudFormation template
+func (t *Template) GetAllConfigAggregationAuthorizationResources() map[string]*config.AggregationAuthorization {
+ results := map[string]*config.AggregationAuthorization{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.AggregationAuthorization:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigAggregationAuthorizationWithName retrieves all config.AggregationAuthorization items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigAggregationAuthorizationWithName(name string) (*config.AggregationAuthorization, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.AggregationAuthorization:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.AggregationAuthorization not found", name)
+}
+
+// GetAllConfigConfigRuleResources retrieves all config.ConfigRule items from an AWS CloudFormation template
+func (t *Template) GetAllConfigConfigRuleResources() map[string]*config.ConfigRule {
+ results := map[string]*config.ConfigRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.ConfigRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigConfigRuleWithName retrieves all config.ConfigRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigConfigRuleWithName(name string) (*config.ConfigRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.ConfigRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.ConfigRule not found", name)
+}
+
+// GetAllConfigConfigurationAggregatorResources retrieves all config.ConfigurationAggregator items from an AWS CloudFormation template
+func (t *Template) GetAllConfigConfigurationAggregatorResources() map[string]*config.ConfigurationAggregator {
+ results := map[string]*config.ConfigurationAggregator{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.ConfigurationAggregator:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigConfigurationAggregatorWithName retrieves all config.ConfigurationAggregator items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigConfigurationAggregatorWithName(name string) (*config.ConfigurationAggregator, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.ConfigurationAggregator:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.ConfigurationAggregator not found", name)
+}
+
+// GetAllConfigConfigurationRecorderResources retrieves all config.ConfigurationRecorder items from an AWS CloudFormation template
+func (t *Template) GetAllConfigConfigurationRecorderResources() map[string]*config.ConfigurationRecorder {
+ results := map[string]*config.ConfigurationRecorder{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.ConfigurationRecorder:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigConfigurationRecorderWithName retrieves all config.ConfigurationRecorder items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigConfigurationRecorderWithName(name string) (*config.ConfigurationRecorder, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.ConfigurationRecorder:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.ConfigurationRecorder not found", name)
+}
+
+// GetAllConfigConformancePackResources retrieves all config.ConformancePack items from an AWS CloudFormation template
+func (t *Template) GetAllConfigConformancePackResources() map[string]*config.ConformancePack {
+ results := map[string]*config.ConformancePack{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.ConformancePack:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigConformancePackWithName retrieves all config.ConformancePack items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigConformancePackWithName(name string) (*config.ConformancePack, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.ConformancePack:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.ConformancePack not found", name)
+}
+
+// GetAllConfigDeliveryChannelResources retrieves all config.DeliveryChannel items from an AWS CloudFormation template
+func (t *Template) GetAllConfigDeliveryChannelResources() map[string]*config.DeliveryChannel {
+ results := map[string]*config.DeliveryChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.DeliveryChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigDeliveryChannelWithName retrieves all config.DeliveryChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigDeliveryChannelWithName(name string) (*config.DeliveryChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.DeliveryChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.DeliveryChannel not found", name)
+}
+
+// GetAllConfigOrganizationConfigRuleResources retrieves all config.OrganizationConfigRule items from an AWS CloudFormation template
+func (t *Template) GetAllConfigOrganizationConfigRuleResources() map[string]*config.OrganizationConfigRule {
+ results := map[string]*config.OrganizationConfigRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.OrganizationConfigRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigOrganizationConfigRuleWithName retrieves all config.OrganizationConfigRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigOrganizationConfigRuleWithName(name string) (*config.OrganizationConfigRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.OrganizationConfigRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.OrganizationConfigRule not found", name)
+}
+
+// GetAllConfigOrganizationConformancePackResources retrieves all config.OrganizationConformancePack items from an AWS CloudFormation template
+func (t *Template) GetAllConfigOrganizationConformancePackResources() map[string]*config.OrganizationConformancePack {
+ results := map[string]*config.OrganizationConformancePack{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.OrganizationConformancePack:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigOrganizationConformancePackWithName retrieves all config.OrganizationConformancePack items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigOrganizationConformancePackWithName(name string) (*config.OrganizationConformancePack, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.OrganizationConformancePack:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.OrganizationConformancePack not found", name)
+}
+
+// GetAllConfigRemediationConfigurationResources retrieves all config.RemediationConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllConfigRemediationConfigurationResources() map[string]*config.RemediationConfiguration {
+ results := map[string]*config.RemediationConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.RemediationConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigRemediationConfigurationWithName retrieves all config.RemediationConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigRemediationConfigurationWithName(name string) (*config.RemediationConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.RemediationConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.RemediationConfiguration not found", name)
+}
+
+// GetAllConfigStoredQueryResources retrieves all config.StoredQuery items from an AWS CloudFormation template
+func (t *Template) GetAllConfigStoredQueryResources() map[string]*config.StoredQuery {
+ results := map[string]*config.StoredQuery{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *config.StoredQuery:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConfigStoredQueryWithName retrieves all config.StoredQuery items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConfigStoredQueryWithName(name string) (*config.StoredQuery, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *config.StoredQuery:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type config.StoredQuery not found", name)
+}
+
+// GetAllConnectContactFlowResources retrieves all connect.ContactFlow items from an AWS CloudFormation template
+func (t *Template) GetAllConnectContactFlowResources() map[string]*connect.ContactFlow {
+ results := map[string]*connect.ContactFlow{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *connect.ContactFlow:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConnectContactFlowWithName retrieves all connect.ContactFlow items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConnectContactFlowWithName(name string) (*connect.ContactFlow, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *connect.ContactFlow:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type connect.ContactFlow not found", name)
+}
+
+// GetAllConnectContactFlowModuleResources retrieves all connect.ContactFlowModule items from an AWS CloudFormation template
+func (t *Template) GetAllConnectContactFlowModuleResources() map[string]*connect.ContactFlowModule {
+ results := map[string]*connect.ContactFlowModule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *connect.ContactFlowModule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConnectContactFlowModuleWithName retrieves all connect.ContactFlowModule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConnectContactFlowModuleWithName(name string) (*connect.ContactFlowModule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *connect.ContactFlowModule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type connect.ContactFlowModule not found", name)
+}
+
+// GetAllConnectHoursOfOperationResources retrieves all connect.HoursOfOperation items from an AWS CloudFormation template
+func (t *Template) GetAllConnectHoursOfOperationResources() map[string]*connect.HoursOfOperation {
+ results := map[string]*connect.HoursOfOperation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *connect.HoursOfOperation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConnectHoursOfOperationWithName retrieves all connect.HoursOfOperation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConnectHoursOfOperationWithName(name string) (*connect.HoursOfOperation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *connect.HoursOfOperation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type connect.HoursOfOperation not found", name)
+}
+
+// GetAllConnectQuickConnectResources retrieves all connect.QuickConnect items from an AWS CloudFormation template
+func (t *Template) GetAllConnectQuickConnectResources() map[string]*connect.QuickConnect {
+ results := map[string]*connect.QuickConnect{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *connect.QuickConnect:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConnectQuickConnectWithName retrieves all connect.QuickConnect items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConnectQuickConnectWithName(name string) (*connect.QuickConnect, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *connect.QuickConnect:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type connect.QuickConnect not found", name)
+}
+
+// GetAllConnectUserResources retrieves all connect.User items from an AWS CloudFormation template
+func (t *Template) GetAllConnectUserResources() map[string]*connect.User {
+ results := map[string]*connect.User{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *connect.User:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConnectUserWithName retrieves all connect.User items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConnectUserWithName(name string) (*connect.User, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *connect.User:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type connect.User not found", name)
+}
+
+// GetAllConnectUserHierarchyGroupResources retrieves all connect.UserHierarchyGroup items from an AWS CloudFormation template
+func (t *Template) GetAllConnectUserHierarchyGroupResources() map[string]*connect.UserHierarchyGroup {
+ results := map[string]*connect.UserHierarchyGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *connect.UserHierarchyGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetConnectUserHierarchyGroupWithName retrieves all connect.UserHierarchyGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetConnectUserHierarchyGroupWithName(name string) (*connect.UserHierarchyGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *connect.UserHierarchyGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type connect.UserHierarchyGroup not found", name)
+}
+
+// GetAllCustomerProfilesDomainResources retrieves all customerprofiles.Domain items from an AWS CloudFormation template
+func (t *Template) GetAllCustomerProfilesDomainResources() map[string]*customerprofiles.Domain {
+ results := map[string]*customerprofiles.Domain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *customerprofiles.Domain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCustomerProfilesDomainWithName retrieves all customerprofiles.Domain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCustomerProfilesDomainWithName(name string) (*customerprofiles.Domain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *customerprofiles.Domain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type customerprofiles.Domain not found", name)
+}
+
+// GetAllCustomerProfilesIntegrationResources retrieves all customerprofiles.Integration items from an AWS CloudFormation template
+func (t *Template) GetAllCustomerProfilesIntegrationResources() map[string]*customerprofiles.Integration {
+ results := map[string]*customerprofiles.Integration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *customerprofiles.Integration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCustomerProfilesIntegrationWithName retrieves all customerprofiles.Integration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCustomerProfilesIntegrationWithName(name string) (*customerprofiles.Integration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *customerprofiles.Integration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type customerprofiles.Integration not found", name)
+}
+
+// GetAllCustomerProfilesObjectTypeResources retrieves all customerprofiles.ObjectType items from an AWS CloudFormation template
+func (t *Template) GetAllCustomerProfilesObjectTypeResources() map[string]*customerprofiles.ObjectType {
+ results := map[string]*customerprofiles.ObjectType{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *customerprofiles.ObjectType:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCustomerProfilesObjectTypeWithName retrieves all customerprofiles.ObjectType items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCustomerProfilesObjectTypeWithName(name string) (*customerprofiles.ObjectType, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *customerprofiles.ObjectType:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type customerprofiles.ObjectType not found", name)
+}
+
+// GetAllDAXClusterResources retrieves all dax.Cluster items from an AWS CloudFormation template
+func (t *Template) GetAllDAXClusterResources() map[string]*dax.Cluster {
+ results := map[string]*dax.Cluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dax.Cluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDAXClusterWithName retrieves all dax.Cluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDAXClusterWithName(name string) (*dax.Cluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dax.Cluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dax.Cluster not found", name)
+}
+
+// GetAllDAXParameterGroupResources retrieves all dax.ParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllDAXParameterGroupResources() map[string]*dax.ParameterGroup {
+ results := map[string]*dax.ParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dax.ParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDAXParameterGroupWithName retrieves all dax.ParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDAXParameterGroupWithName(name string) (*dax.ParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dax.ParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dax.ParameterGroup not found", name)
+}
+
+// GetAllDAXSubnetGroupResources retrieves all dax.SubnetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllDAXSubnetGroupResources() map[string]*dax.SubnetGroup {
+ results := map[string]*dax.SubnetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dax.SubnetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDAXSubnetGroupWithName retrieves all dax.SubnetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDAXSubnetGroupWithName(name string) (*dax.SubnetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dax.SubnetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dax.SubnetGroup not found", name)
+}
+
+// GetAllDLMLifecyclePolicyResources retrieves all dlm.LifecyclePolicy items from an AWS CloudFormation template
+func (t *Template) GetAllDLMLifecyclePolicyResources() map[string]*dlm.LifecyclePolicy {
+ results := map[string]*dlm.LifecyclePolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dlm.LifecyclePolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDLMLifecyclePolicyWithName retrieves all dlm.LifecyclePolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDLMLifecyclePolicyWithName(name string) (*dlm.LifecyclePolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dlm.LifecyclePolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dlm.LifecyclePolicy not found", name)
+}
+
+// GetAllDMSCertificateResources retrieves all dms.Certificate items from an AWS CloudFormation template
+func (t *Template) GetAllDMSCertificateResources() map[string]*dms.Certificate {
+ results := map[string]*dms.Certificate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dms.Certificate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDMSCertificateWithName retrieves all dms.Certificate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDMSCertificateWithName(name string) (*dms.Certificate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dms.Certificate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dms.Certificate not found", name)
+}
+
+// GetAllDMSEndpointResources retrieves all dms.Endpoint items from an AWS CloudFormation template
+func (t *Template) GetAllDMSEndpointResources() map[string]*dms.Endpoint {
+ results := map[string]*dms.Endpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dms.Endpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDMSEndpointWithName retrieves all dms.Endpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDMSEndpointWithName(name string) (*dms.Endpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dms.Endpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dms.Endpoint not found", name)
+}
+
+// GetAllDMSEventSubscriptionResources retrieves all dms.EventSubscription items from an AWS CloudFormation template
+func (t *Template) GetAllDMSEventSubscriptionResources() map[string]*dms.EventSubscription {
+ results := map[string]*dms.EventSubscription{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dms.EventSubscription:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDMSEventSubscriptionWithName retrieves all dms.EventSubscription items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDMSEventSubscriptionWithName(name string) (*dms.EventSubscription, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dms.EventSubscription:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dms.EventSubscription not found", name)
+}
+
+// GetAllDMSReplicationInstanceResources retrieves all dms.ReplicationInstance items from an AWS CloudFormation template
+func (t *Template) GetAllDMSReplicationInstanceResources() map[string]*dms.ReplicationInstance {
+ results := map[string]*dms.ReplicationInstance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dms.ReplicationInstance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDMSReplicationInstanceWithName retrieves all dms.ReplicationInstance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDMSReplicationInstanceWithName(name string) (*dms.ReplicationInstance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dms.ReplicationInstance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dms.ReplicationInstance not found", name)
+}
+
+// GetAllDMSReplicationSubnetGroupResources retrieves all dms.ReplicationSubnetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllDMSReplicationSubnetGroupResources() map[string]*dms.ReplicationSubnetGroup {
+ results := map[string]*dms.ReplicationSubnetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dms.ReplicationSubnetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDMSReplicationSubnetGroupWithName retrieves all dms.ReplicationSubnetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDMSReplicationSubnetGroupWithName(name string) (*dms.ReplicationSubnetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dms.ReplicationSubnetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dms.ReplicationSubnetGroup not found", name)
+}
+
+// GetAllDMSReplicationTaskResources retrieves all dms.ReplicationTask items from an AWS CloudFormation template
+func (t *Template) GetAllDMSReplicationTaskResources() map[string]*dms.ReplicationTask {
+ results := map[string]*dms.ReplicationTask{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dms.ReplicationTask:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDMSReplicationTaskWithName retrieves all dms.ReplicationTask items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDMSReplicationTaskWithName(name string) (*dms.ReplicationTask, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dms.ReplicationTask:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dms.ReplicationTask not found", name)
+}
+
+// GetAllDataBrewDatasetResources retrieves all databrew.Dataset items from an AWS CloudFormation template
+func (t *Template) GetAllDataBrewDatasetResources() map[string]*databrew.Dataset {
+ results := map[string]*databrew.Dataset{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *databrew.Dataset:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataBrewDatasetWithName retrieves all databrew.Dataset items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataBrewDatasetWithName(name string) (*databrew.Dataset, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *databrew.Dataset:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type databrew.Dataset not found", name)
+}
+
+// GetAllDataBrewJobResources retrieves all databrew.Job items from an AWS CloudFormation template
+func (t *Template) GetAllDataBrewJobResources() map[string]*databrew.Job {
+ results := map[string]*databrew.Job{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *databrew.Job:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataBrewJobWithName retrieves all databrew.Job items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataBrewJobWithName(name string) (*databrew.Job, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *databrew.Job:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type databrew.Job not found", name)
+}
+
+// GetAllDataBrewProjectResources retrieves all databrew.Project items from an AWS CloudFormation template
+func (t *Template) GetAllDataBrewProjectResources() map[string]*databrew.Project {
+ results := map[string]*databrew.Project{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *databrew.Project:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataBrewProjectWithName retrieves all databrew.Project items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataBrewProjectWithName(name string) (*databrew.Project, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *databrew.Project:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type databrew.Project not found", name)
+}
+
+// GetAllDataBrewRecipeResources retrieves all databrew.Recipe items from an AWS CloudFormation template
+func (t *Template) GetAllDataBrewRecipeResources() map[string]*databrew.Recipe {
+ results := map[string]*databrew.Recipe{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *databrew.Recipe:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataBrewRecipeWithName retrieves all databrew.Recipe items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataBrewRecipeWithName(name string) (*databrew.Recipe, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *databrew.Recipe:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type databrew.Recipe not found", name)
+}
+
+// GetAllDataBrewRulesetResources retrieves all databrew.Ruleset items from an AWS CloudFormation template
+func (t *Template) GetAllDataBrewRulesetResources() map[string]*databrew.Ruleset {
+ results := map[string]*databrew.Ruleset{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *databrew.Ruleset:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataBrewRulesetWithName retrieves all databrew.Ruleset items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataBrewRulesetWithName(name string) (*databrew.Ruleset, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *databrew.Ruleset:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type databrew.Ruleset not found", name)
+}
+
+// GetAllDataBrewScheduleResources retrieves all databrew.Schedule items from an AWS CloudFormation template
+func (t *Template) GetAllDataBrewScheduleResources() map[string]*databrew.Schedule {
+ results := map[string]*databrew.Schedule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *databrew.Schedule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataBrewScheduleWithName retrieves all databrew.Schedule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataBrewScheduleWithName(name string) (*databrew.Schedule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *databrew.Schedule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type databrew.Schedule not found", name)
+}
+
+// GetAllDataPipelinePipelineResources retrieves all datapipeline.Pipeline items from an AWS CloudFormation template
+func (t *Template) GetAllDataPipelinePipelineResources() map[string]*datapipeline.Pipeline {
+ results := map[string]*datapipeline.Pipeline{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datapipeline.Pipeline:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataPipelinePipelineWithName retrieves all datapipeline.Pipeline items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataPipelinePipelineWithName(name string) (*datapipeline.Pipeline, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datapipeline.Pipeline:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datapipeline.Pipeline not found", name)
+}
+
+// GetAllDataSyncAgentResources retrieves all datasync.Agent items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncAgentResources() map[string]*datasync.Agent {
+ results := map[string]*datasync.Agent{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.Agent:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncAgentWithName retrieves all datasync.Agent items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncAgentWithName(name string) (*datasync.Agent, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.Agent:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.Agent not found", name)
+}
+
+// GetAllDataSyncLocationEFSResources retrieves all datasync.LocationEFS items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncLocationEFSResources() map[string]*datasync.LocationEFS {
+ results := map[string]*datasync.LocationEFS{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.LocationEFS:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncLocationEFSWithName retrieves all datasync.LocationEFS items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncLocationEFSWithName(name string) (*datasync.LocationEFS, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.LocationEFS:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.LocationEFS not found", name)
+}
+
+// GetAllDataSyncLocationFSxWindowsResources retrieves all datasync.LocationFSxWindows items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncLocationFSxWindowsResources() map[string]*datasync.LocationFSxWindows {
+ results := map[string]*datasync.LocationFSxWindows{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.LocationFSxWindows:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncLocationFSxWindowsWithName retrieves all datasync.LocationFSxWindows items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncLocationFSxWindowsWithName(name string) (*datasync.LocationFSxWindows, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.LocationFSxWindows:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.LocationFSxWindows not found", name)
+}
+
+// GetAllDataSyncLocationHDFSResources retrieves all datasync.LocationHDFS items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncLocationHDFSResources() map[string]*datasync.LocationHDFS {
+ results := map[string]*datasync.LocationHDFS{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.LocationHDFS:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncLocationHDFSWithName retrieves all datasync.LocationHDFS items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncLocationHDFSWithName(name string) (*datasync.LocationHDFS, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.LocationHDFS:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.LocationHDFS not found", name)
+}
+
+// GetAllDataSyncLocationNFSResources retrieves all datasync.LocationNFS items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncLocationNFSResources() map[string]*datasync.LocationNFS {
+ results := map[string]*datasync.LocationNFS{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.LocationNFS:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncLocationNFSWithName retrieves all datasync.LocationNFS items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncLocationNFSWithName(name string) (*datasync.LocationNFS, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.LocationNFS:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.LocationNFS not found", name)
+}
+
+// GetAllDataSyncLocationObjectStorageResources retrieves all datasync.LocationObjectStorage items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncLocationObjectStorageResources() map[string]*datasync.LocationObjectStorage {
+ results := map[string]*datasync.LocationObjectStorage{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.LocationObjectStorage:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncLocationObjectStorageWithName retrieves all datasync.LocationObjectStorage items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncLocationObjectStorageWithName(name string) (*datasync.LocationObjectStorage, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.LocationObjectStorage:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.LocationObjectStorage not found", name)
+}
+
+// GetAllDataSyncLocationS3Resources retrieves all datasync.LocationS3 items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncLocationS3Resources() map[string]*datasync.LocationS3 {
+ results := map[string]*datasync.LocationS3{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.LocationS3:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncLocationS3WithName retrieves all datasync.LocationS3 items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncLocationS3WithName(name string) (*datasync.LocationS3, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.LocationS3:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.LocationS3 not found", name)
+}
+
+// GetAllDataSyncLocationSMBResources retrieves all datasync.LocationSMB items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncLocationSMBResources() map[string]*datasync.LocationSMB {
+ results := map[string]*datasync.LocationSMB{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.LocationSMB:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncLocationSMBWithName retrieves all datasync.LocationSMB items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncLocationSMBWithName(name string) (*datasync.LocationSMB, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.LocationSMB:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.LocationSMB not found", name)
+}
+
+// GetAllDataSyncTaskResources retrieves all datasync.Task items from an AWS CloudFormation template
+func (t *Template) GetAllDataSyncTaskResources() map[string]*datasync.Task {
+ results := map[string]*datasync.Task{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *datasync.Task:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDataSyncTaskWithName retrieves all datasync.Task items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDataSyncTaskWithName(name string) (*datasync.Task, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *datasync.Task:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type datasync.Task not found", name)
+}
+
+// GetAllDetectiveGraphResources retrieves all detective.Graph items from an AWS CloudFormation template
+func (t *Template) GetAllDetectiveGraphResources() map[string]*detective.Graph {
+ results := map[string]*detective.Graph{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *detective.Graph:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDetectiveGraphWithName retrieves all detective.Graph items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDetectiveGraphWithName(name string) (*detective.Graph, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *detective.Graph:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type detective.Graph not found", name)
+}
+
+// GetAllDetectiveMemberInvitationResources retrieves all detective.MemberInvitation items from an AWS CloudFormation template
+func (t *Template) GetAllDetectiveMemberInvitationResources() map[string]*detective.MemberInvitation {
+ results := map[string]*detective.MemberInvitation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *detective.MemberInvitation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDetectiveMemberInvitationWithName retrieves all detective.MemberInvitation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDetectiveMemberInvitationWithName(name string) (*detective.MemberInvitation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *detective.MemberInvitation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type detective.MemberInvitation not found", name)
+}
+
+// GetAllDevOpsGuruNotificationChannelResources retrieves all devopsguru.NotificationChannel items from an AWS CloudFormation template
+func (t *Template) GetAllDevOpsGuruNotificationChannelResources() map[string]*devopsguru.NotificationChannel {
+ results := map[string]*devopsguru.NotificationChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *devopsguru.NotificationChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDevOpsGuruNotificationChannelWithName retrieves all devopsguru.NotificationChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDevOpsGuruNotificationChannelWithName(name string) (*devopsguru.NotificationChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *devopsguru.NotificationChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type devopsguru.NotificationChannel not found", name)
+}
+
+// GetAllDevOpsGuruResourceCollectionResources retrieves all devopsguru.ResourceCollection items from an AWS CloudFormation template
+func (t *Template) GetAllDevOpsGuruResourceCollectionResources() map[string]*devopsguru.ResourceCollection {
+ results := map[string]*devopsguru.ResourceCollection{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *devopsguru.ResourceCollection:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDevOpsGuruResourceCollectionWithName retrieves all devopsguru.ResourceCollection items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDevOpsGuruResourceCollectionWithName(name string) (*devopsguru.ResourceCollection, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *devopsguru.ResourceCollection:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type devopsguru.ResourceCollection not found", name)
+}
+
+// GetAllDirectoryServiceMicrosoftADResources retrieves all directoryservice.MicrosoftAD items from an AWS CloudFormation template
+func (t *Template) GetAllDirectoryServiceMicrosoftADResources() map[string]*directoryservice.MicrosoftAD {
+ results := map[string]*directoryservice.MicrosoftAD{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *directoryservice.MicrosoftAD:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDirectoryServiceMicrosoftADWithName retrieves all directoryservice.MicrosoftAD items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDirectoryServiceMicrosoftADWithName(name string) (*directoryservice.MicrosoftAD, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *directoryservice.MicrosoftAD:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type directoryservice.MicrosoftAD not found", name)
+}
+
+// GetAllDirectoryServiceSimpleADResources retrieves all directoryservice.SimpleAD items from an AWS CloudFormation template
+func (t *Template) GetAllDirectoryServiceSimpleADResources() map[string]*directoryservice.SimpleAD {
+ results := map[string]*directoryservice.SimpleAD{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *directoryservice.SimpleAD:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDirectoryServiceSimpleADWithName retrieves all directoryservice.SimpleAD items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDirectoryServiceSimpleADWithName(name string) (*directoryservice.SimpleAD, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *directoryservice.SimpleAD:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type directoryservice.SimpleAD not found", name)
+}
+
+// GetAllDocDBDBClusterResources retrieves all docdb.DBCluster items from an AWS CloudFormation template
+func (t *Template) GetAllDocDBDBClusterResources() map[string]*docdb.DBCluster {
+ results := map[string]*docdb.DBCluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *docdb.DBCluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDocDBDBClusterWithName retrieves all docdb.DBCluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDocDBDBClusterWithName(name string) (*docdb.DBCluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *docdb.DBCluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type docdb.DBCluster not found", name)
+}
+
+// GetAllDocDBDBClusterParameterGroupResources retrieves all docdb.DBClusterParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllDocDBDBClusterParameterGroupResources() map[string]*docdb.DBClusterParameterGroup {
+ results := map[string]*docdb.DBClusterParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *docdb.DBClusterParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDocDBDBClusterParameterGroupWithName retrieves all docdb.DBClusterParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDocDBDBClusterParameterGroupWithName(name string) (*docdb.DBClusterParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *docdb.DBClusterParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type docdb.DBClusterParameterGroup not found", name)
+}
+
+// GetAllDocDBDBInstanceResources retrieves all docdb.DBInstance items from an AWS CloudFormation template
+func (t *Template) GetAllDocDBDBInstanceResources() map[string]*docdb.DBInstance {
+ results := map[string]*docdb.DBInstance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *docdb.DBInstance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDocDBDBInstanceWithName retrieves all docdb.DBInstance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDocDBDBInstanceWithName(name string) (*docdb.DBInstance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *docdb.DBInstance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type docdb.DBInstance not found", name)
+}
+
+// GetAllDocDBDBSubnetGroupResources retrieves all docdb.DBSubnetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllDocDBDBSubnetGroupResources() map[string]*docdb.DBSubnetGroup {
+ results := map[string]*docdb.DBSubnetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *docdb.DBSubnetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDocDBDBSubnetGroupWithName retrieves all docdb.DBSubnetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDocDBDBSubnetGroupWithName(name string) (*docdb.DBSubnetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *docdb.DBSubnetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type docdb.DBSubnetGroup not found", name)
+}
+
+// GetAllDynamoDBGlobalTableResources retrieves all dynamodb.GlobalTable items from an AWS CloudFormation template
+func (t *Template) GetAllDynamoDBGlobalTableResources() map[string]*dynamodb.GlobalTable {
+ results := map[string]*dynamodb.GlobalTable{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dynamodb.GlobalTable:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDynamoDBGlobalTableWithName retrieves all dynamodb.GlobalTable items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDynamoDBGlobalTableWithName(name string) (*dynamodb.GlobalTable, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dynamodb.GlobalTable:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dynamodb.GlobalTable not found", name)
+}
+
+// GetAllDynamoDBTableResources retrieves all dynamodb.Table items from an AWS CloudFormation template
+func (t *Template) GetAllDynamoDBTableResources() map[string]*dynamodb.Table {
+ results := map[string]*dynamodb.Table{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *dynamodb.Table:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetDynamoDBTableWithName retrieves all dynamodb.Table items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetDynamoDBTableWithName(name string) (*dynamodb.Table, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *dynamodb.Table:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type dynamodb.Table not found", name)
+}
+
+// GetAllEC2CapacityReservationResources retrieves all ec2.CapacityReservation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2CapacityReservationResources() map[string]*ec2.CapacityReservation {
+ results := map[string]*ec2.CapacityReservation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.CapacityReservation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2CapacityReservationWithName retrieves all ec2.CapacityReservation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2CapacityReservationWithName(name string) (*ec2.CapacityReservation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.CapacityReservation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.CapacityReservation not found", name)
+}
+
+// GetAllEC2CapacityReservationFleetResources retrieves all ec2.CapacityReservationFleet items from an AWS CloudFormation template
+func (t *Template) GetAllEC2CapacityReservationFleetResources() map[string]*ec2.CapacityReservationFleet {
+ results := map[string]*ec2.CapacityReservationFleet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.CapacityReservationFleet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2CapacityReservationFleetWithName retrieves all ec2.CapacityReservationFleet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2CapacityReservationFleetWithName(name string) (*ec2.CapacityReservationFleet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.CapacityReservationFleet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.CapacityReservationFleet not found", name)
+}
+
+// GetAllEC2CarrierGatewayResources retrieves all ec2.CarrierGateway items from an AWS CloudFormation template
+func (t *Template) GetAllEC2CarrierGatewayResources() map[string]*ec2.CarrierGateway {
+ results := map[string]*ec2.CarrierGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.CarrierGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2CarrierGatewayWithName retrieves all ec2.CarrierGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2CarrierGatewayWithName(name string) (*ec2.CarrierGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.CarrierGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.CarrierGateway not found", name)
+}
+
+// GetAllEC2ClientVpnAuthorizationRuleResources retrieves all ec2.ClientVpnAuthorizationRule items from an AWS CloudFormation template
+func (t *Template) GetAllEC2ClientVpnAuthorizationRuleResources() map[string]*ec2.ClientVpnAuthorizationRule {
+ results := map[string]*ec2.ClientVpnAuthorizationRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.ClientVpnAuthorizationRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2ClientVpnAuthorizationRuleWithName retrieves all ec2.ClientVpnAuthorizationRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2ClientVpnAuthorizationRuleWithName(name string) (*ec2.ClientVpnAuthorizationRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.ClientVpnAuthorizationRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.ClientVpnAuthorizationRule not found", name)
+}
+
+// GetAllEC2ClientVpnEndpointResources retrieves all ec2.ClientVpnEndpoint items from an AWS CloudFormation template
+func (t *Template) GetAllEC2ClientVpnEndpointResources() map[string]*ec2.ClientVpnEndpoint {
+ results := map[string]*ec2.ClientVpnEndpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.ClientVpnEndpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2ClientVpnEndpointWithName retrieves all ec2.ClientVpnEndpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2ClientVpnEndpointWithName(name string) (*ec2.ClientVpnEndpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.ClientVpnEndpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.ClientVpnEndpoint not found", name)
+}
+
+// GetAllEC2ClientVpnRouteResources retrieves all ec2.ClientVpnRoute items from an AWS CloudFormation template
+func (t *Template) GetAllEC2ClientVpnRouteResources() map[string]*ec2.ClientVpnRoute {
+ results := map[string]*ec2.ClientVpnRoute{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.ClientVpnRoute:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2ClientVpnRouteWithName retrieves all ec2.ClientVpnRoute items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2ClientVpnRouteWithName(name string) (*ec2.ClientVpnRoute, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.ClientVpnRoute:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.ClientVpnRoute not found", name)
+}
+
+// GetAllEC2ClientVpnTargetNetworkAssociationResources retrieves all ec2.ClientVpnTargetNetworkAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2ClientVpnTargetNetworkAssociationResources() map[string]*ec2.ClientVpnTargetNetworkAssociation {
+ results := map[string]*ec2.ClientVpnTargetNetworkAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.ClientVpnTargetNetworkAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2ClientVpnTargetNetworkAssociationWithName retrieves all ec2.ClientVpnTargetNetworkAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2ClientVpnTargetNetworkAssociationWithName(name string) (*ec2.ClientVpnTargetNetworkAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.ClientVpnTargetNetworkAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.ClientVpnTargetNetworkAssociation not found", name)
+}
+
+// GetAllEC2CustomerGatewayResources retrieves all ec2.CustomerGateway items from an AWS CloudFormation template
+func (t *Template) GetAllEC2CustomerGatewayResources() map[string]*ec2.CustomerGateway {
+ results := map[string]*ec2.CustomerGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.CustomerGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2CustomerGatewayWithName retrieves all ec2.CustomerGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2CustomerGatewayWithName(name string) (*ec2.CustomerGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.CustomerGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.CustomerGateway not found", name)
+}
+
+// GetAllEC2DHCPOptionsResources retrieves all ec2.DHCPOptions items from an AWS CloudFormation template
+func (t *Template) GetAllEC2DHCPOptionsResources() map[string]*ec2.DHCPOptions {
+ results := map[string]*ec2.DHCPOptions{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.DHCPOptions:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2DHCPOptionsWithName retrieves all ec2.DHCPOptions items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2DHCPOptionsWithName(name string) (*ec2.DHCPOptions, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.DHCPOptions:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.DHCPOptions not found", name)
+}
+
+// GetAllEC2EC2FleetResources retrieves all ec2.EC2Fleet items from an AWS CloudFormation template
+func (t *Template) GetAllEC2EC2FleetResources() map[string]*ec2.EC2Fleet {
+ results := map[string]*ec2.EC2Fleet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.EC2Fleet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2EC2FleetWithName retrieves all ec2.EC2Fleet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2EC2FleetWithName(name string) (*ec2.EC2Fleet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.EC2Fleet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.EC2Fleet not found", name)
+}
+
+// GetAllEC2EIPResources retrieves all ec2.EIP items from an AWS CloudFormation template
+func (t *Template) GetAllEC2EIPResources() map[string]*ec2.EIP {
+ results := map[string]*ec2.EIP{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.EIP:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2EIPWithName retrieves all ec2.EIP items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2EIPWithName(name string) (*ec2.EIP, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.EIP:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.EIP not found", name)
+}
+
+// GetAllEC2EIPAssociationResources retrieves all ec2.EIPAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2EIPAssociationResources() map[string]*ec2.EIPAssociation {
+ results := map[string]*ec2.EIPAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.EIPAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2EIPAssociationWithName retrieves all ec2.EIPAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2EIPAssociationWithName(name string) (*ec2.EIPAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.EIPAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.EIPAssociation not found", name)
+}
+
+// GetAllEC2EgressOnlyInternetGatewayResources retrieves all ec2.EgressOnlyInternetGateway items from an AWS CloudFormation template
+func (t *Template) GetAllEC2EgressOnlyInternetGatewayResources() map[string]*ec2.EgressOnlyInternetGateway {
+ results := map[string]*ec2.EgressOnlyInternetGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.EgressOnlyInternetGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2EgressOnlyInternetGatewayWithName retrieves all ec2.EgressOnlyInternetGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2EgressOnlyInternetGatewayWithName(name string) (*ec2.EgressOnlyInternetGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.EgressOnlyInternetGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.EgressOnlyInternetGateway not found", name)
+}
+
+// GetAllEC2EnclaveCertificateIamRoleAssociationResources retrieves all ec2.EnclaveCertificateIamRoleAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2EnclaveCertificateIamRoleAssociationResources() map[string]*ec2.EnclaveCertificateIamRoleAssociation {
+ results := map[string]*ec2.EnclaveCertificateIamRoleAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.EnclaveCertificateIamRoleAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2EnclaveCertificateIamRoleAssociationWithName retrieves all ec2.EnclaveCertificateIamRoleAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2EnclaveCertificateIamRoleAssociationWithName(name string) (*ec2.EnclaveCertificateIamRoleAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.EnclaveCertificateIamRoleAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.EnclaveCertificateIamRoleAssociation not found", name)
+}
+
+// GetAllEC2FlowLogResources retrieves all ec2.FlowLog items from an AWS CloudFormation template
+func (t *Template) GetAllEC2FlowLogResources() map[string]*ec2.FlowLog {
+ results := map[string]*ec2.FlowLog{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.FlowLog:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2FlowLogWithName retrieves all ec2.FlowLog items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2FlowLogWithName(name string) (*ec2.FlowLog, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.FlowLog:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.FlowLog not found", name)
+}
+
+// GetAllEC2GatewayRouteTableAssociationResources retrieves all ec2.GatewayRouteTableAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2GatewayRouteTableAssociationResources() map[string]*ec2.GatewayRouteTableAssociation {
+ results := map[string]*ec2.GatewayRouteTableAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.GatewayRouteTableAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2GatewayRouteTableAssociationWithName retrieves all ec2.GatewayRouteTableAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2GatewayRouteTableAssociationWithName(name string) (*ec2.GatewayRouteTableAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.GatewayRouteTableAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.GatewayRouteTableAssociation not found", name)
+}
+
+// GetAllEC2HostResources retrieves all ec2.Host items from an AWS CloudFormation template
+func (t *Template) GetAllEC2HostResources() map[string]*ec2.Host {
+ results := map[string]*ec2.Host{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.Host:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2HostWithName retrieves all ec2.Host items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2HostWithName(name string) (*ec2.Host, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.Host:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.Host not found", name)
+}
+
+// GetAllEC2IPAMResources retrieves all ec2.IPAM items from an AWS CloudFormation template
+func (t *Template) GetAllEC2IPAMResources() map[string]*ec2.IPAM {
+ results := map[string]*ec2.IPAM{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.IPAM:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2IPAMWithName retrieves all ec2.IPAM items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2IPAMWithName(name string) (*ec2.IPAM, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.IPAM:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.IPAM not found", name)
+}
+
+// GetAllEC2IPAMAllocationResources retrieves all ec2.IPAMAllocation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2IPAMAllocationResources() map[string]*ec2.IPAMAllocation {
+ results := map[string]*ec2.IPAMAllocation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.IPAMAllocation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2IPAMAllocationWithName retrieves all ec2.IPAMAllocation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2IPAMAllocationWithName(name string) (*ec2.IPAMAllocation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.IPAMAllocation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.IPAMAllocation not found", name)
+}
+
+// GetAllEC2IPAMPoolResources retrieves all ec2.IPAMPool items from an AWS CloudFormation template
+func (t *Template) GetAllEC2IPAMPoolResources() map[string]*ec2.IPAMPool {
+ results := map[string]*ec2.IPAMPool{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.IPAMPool:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2IPAMPoolWithName retrieves all ec2.IPAMPool items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2IPAMPoolWithName(name string) (*ec2.IPAMPool, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.IPAMPool:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.IPAMPool not found", name)
+}
+
+// GetAllEC2IPAMScopeResources retrieves all ec2.IPAMScope items from an AWS CloudFormation template
+func (t *Template) GetAllEC2IPAMScopeResources() map[string]*ec2.IPAMScope {
+ results := map[string]*ec2.IPAMScope{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.IPAMScope:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2IPAMScopeWithName retrieves all ec2.IPAMScope items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2IPAMScopeWithName(name string) (*ec2.IPAMScope, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.IPAMScope:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.IPAMScope not found", name)
+}
+
+// GetAllEC2InstanceResources retrieves all ec2.Instance items from an AWS CloudFormation template
+func (t *Template) GetAllEC2InstanceResources() map[string]*ec2.Instance {
+ results := map[string]*ec2.Instance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.Instance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2InstanceWithName retrieves all ec2.Instance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2InstanceWithName(name string) (*ec2.Instance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.Instance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.Instance not found", name)
+}
+
+// GetAllEC2InternetGatewayResources retrieves all ec2.InternetGateway items from an AWS CloudFormation template
+func (t *Template) GetAllEC2InternetGatewayResources() map[string]*ec2.InternetGateway {
+ results := map[string]*ec2.InternetGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.InternetGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2InternetGatewayWithName retrieves all ec2.InternetGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2InternetGatewayWithName(name string) (*ec2.InternetGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.InternetGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.InternetGateway not found", name)
+}
+
+// GetAllEC2LaunchTemplateResources retrieves all ec2.LaunchTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllEC2LaunchTemplateResources() map[string]*ec2.LaunchTemplate {
+ results := map[string]*ec2.LaunchTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.LaunchTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2LaunchTemplateWithName retrieves all ec2.LaunchTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2LaunchTemplateWithName(name string) (*ec2.LaunchTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.LaunchTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.LaunchTemplate not found", name)
+}
+
+// GetAllEC2LocalGatewayRouteResources retrieves all ec2.LocalGatewayRoute items from an AWS CloudFormation template
+func (t *Template) GetAllEC2LocalGatewayRouteResources() map[string]*ec2.LocalGatewayRoute {
+ results := map[string]*ec2.LocalGatewayRoute{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.LocalGatewayRoute:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2LocalGatewayRouteWithName retrieves all ec2.LocalGatewayRoute items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2LocalGatewayRouteWithName(name string) (*ec2.LocalGatewayRoute, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.LocalGatewayRoute:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.LocalGatewayRoute not found", name)
+}
+
+// GetAllEC2LocalGatewayRouteTableVPCAssociationResources retrieves all ec2.LocalGatewayRouteTableVPCAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2LocalGatewayRouteTableVPCAssociationResources() map[string]*ec2.LocalGatewayRouteTableVPCAssociation {
+ results := map[string]*ec2.LocalGatewayRouteTableVPCAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.LocalGatewayRouteTableVPCAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2LocalGatewayRouteTableVPCAssociationWithName retrieves all ec2.LocalGatewayRouteTableVPCAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2LocalGatewayRouteTableVPCAssociationWithName(name string) (*ec2.LocalGatewayRouteTableVPCAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.LocalGatewayRouteTableVPCAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.LocalGatewayRouteTableVPCAssociation not found", name)
+}
+
+// GetAllEC2NatGatewayResources retrieves all ec2.NatGateway items from an AWS CloudFormation template
+func (t *Template) GetAllEC2NatGatewayResources() map[string]*ec2.NatGateway {
+ results := map[string]*ec2.NatGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.NatGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2NatGatewayWithName retrieves all ec2.NatGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2NatGatewayWithName(name string) (*ec2.NatGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.NatGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.NatGateway not found", name)
+}
+
+// GetAllEC2NetworkAclResources retrieves all ec2.NetworkAcl items from an AWS CloudFormation template
+func (t *Template) GetAllEC2NetworkAclResources() map[string]*ec2.NetworkAcl {
+ results := map[string]*ec2.NetworkAcl{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkAcl:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2NetworkAclWithName retrieves all ec2.NetworkAcl items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2NetworkAclWithName(name string) (*ec2.NetworkAcl, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkAcl:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.NetworkAcl not found", name)
+}
+
+// GetAllEC2NetworkAclEntryResources retrieves all ec2.NetworkAclEntry items from an AWS CloudFormation template
+func (t *Template) GetAllEC2NetworkAclEntryResources() map[string]*ec2.NetworkAclEntry {
+ results := map[string]*ec2.NetworkAclEntry{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkAclEntry:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2NetworkAclEntryWithName retrieves all ec2.NetworkAclEntry items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2NetworkAclEntryWithName(name string) (*ec2.NetworkAclEntry, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkAclEntry:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.NetworkAclEntry not found", name)
+}
+
+// GetAllEC2NetworkInsightsAnalysisResources retrieves all ec2.NetworkInsightsAnalysis items from an AWS CloudFormation template
+func (t *Template) GetAllEC2NetworkInsightsAnalysisResources() map[string]*ec2.NetworkInsightsAnalysis {
+ results := map[string]*ec2.NetworkInsightsAnalysis{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInsightsAnalysis:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2NetworkInsightsAnalysisWithName retrieves all ec2.NetworkInsightsAnalysis items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2NetworkInsightsAnalysisWithName(name string) (*ec2.NetworkInsightsAnalysis, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInsightsAnalysis:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.NetworkInsightsAnalysis not found", name)
+}
+
+// GetAllEC2NetworkInsightsPathResources retrieves all ec2.NetworkInsightsPath items from an AWS CloudFormation template
+func (t *Template) GetAllEC2NetworkInsightsPathResources() map[string]*ec2.NetworkInsightsPath {
+ results := map[string]*ec2.NetworkInsightsPath{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInsightsPath:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2NetworkInsightsPathWithName retrieves all ec2.NetworkInsightsPath items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2NetworkInsightsPathWithName(name string) (*ec2.NetworkInsightsPath, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInsightsPath:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.NetworkInsightsPath not found", name)
+}
+
+// GetAllEC2NetworkInterfaceResources retrieves all ec2.NetworkInterface items from an AWS CloudFormation template
+func (t *Template) GetAllEC2NetworkInterfaceResources() map[string]*ec2.NetworkInterface {
+ results := map[string]*ec2.NetworkInterface{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInterface:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2NetworkInterfaceWithName retrieves all ec2.NetworkInterface items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2NetworkInterfaceWithName(name string) (*ec2.NetworkInterface, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInterface:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.NetworkInterface not found", name)
+}
+
+// GetAllEC2NetworkInterfaceAttachmentResources retrieves all ec2.NetworkInterfaceAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllEC2NetworkInterfaceAttachmentResources() map[string]*ec2.NetworkInterfaceAttachment {
+ results := map[string]*ec2.NetworkInterfaceAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInterfaceAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2NetworkInterfaceAttachmentWithName retrieves all ec2.NetworkInterfaceAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2NetworkInterfaceAttachmentWithName(name string) (*ec2.NetworkInterfaceAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInterfaceAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.NetworkInterfaceAttachment not found", name)
+}
+
+// GetAllEC2NetworkInterfacePermissionResources retrieves all ec2.NetworkInterfacePermission items from an AWS CloudFormation template
+func (t *Template) GetAllEC2NetworkInterfacePermissionResources() map[string]*ec2.NetworkInterfacePermission {
+ results := map[string]*ec2.NetworkInterfacePermission{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInterfacePermission:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2NetworkInterfacePermissionWithName retrieves all ec2.NetworkInterfacePermission items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2NetworkInterfacePermissionWithName(name string) (*ec2.NetworkInterfacePermission, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.NetworkInterfacePermission:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.NetworkInterfacePermission not found", name)
+}
+
+// GetAllEC2PlacementGroupResources retrieves all ec2.PlacementGroup items from an AWS CloudFormation template
+func (t *Template) GetAllEC2PlacementGroupResources() map[string]*ec2.PlacementGroup {
+ results := map[string]*ec2.PlacementGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.PlacementGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2PlacementGroupWithName retrieves all ec2.PlacementGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2PlacementGroupWithName(name string) (*ec2.PlacementGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.PlacementGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.PlacementGroup not found", name)
+}
+
+// GetAllEC2PrefixListResources retrieves all ec2.PrefixList items from an AWS CloudFormation template
+func (t *Template) GetAllEC2PrefixListResources() map[string]*ec2.PrefixList {
+ results := map[string]*ec2.PrefixList{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.PrefixList:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2PrefixListWithName retrieves all ec2.PrefixList items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2PrefixListWithName(name string) (*ec2.PrefixList, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.PrefixList:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.PrefixList not found", name)
+}
+
+// GetAllEC2RouteResources retrieves all ec2.Route items from an AWS CloudFormation template
+func (t *Template) GetAllEC2RouteResources() map[string]*ec2.Route {
+ results := map[string]*ec2.Route{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.Route:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2RouteWithName retrieves all ec2.Route items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2RouteWithName(name string) (*ec2.Route, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.Route:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.Route not found", name)
+}
+
+// GetAllEC2RouteTableResources retrieves all ec2.RouteTable items from an AWS CloudFormation template
+func (t *Template) GetAllEC2RouteTableResources() map[string]*ec2.RouteTable {
+ results := map[string]*ec2.RouteTable{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.RouteTable:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2RouteTableWithName retrieves all ec2.RouteTable items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2RouteTableWithName(name string) (*ec2.RouteTable, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.RouteTable:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.RouteTable not found", name)
+}
+
+// GetAllEC2SecurityGroupResources retrieves all ec2.SecurityGroup items from an AWS CloudFormation template
+func (t *Template) GetAllEC2SecurityGroupResources() map[string]*ec2.SecurityGroup {
+ results := map[string]*ec2.SecurityGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.SecurityGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2SecurityGroupWithName retrieves all ec2.SecurityGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2SecurityGroupWithName(name string) (*ec2.SecurityGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.SecurityGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.SecurityGroup not found", name)
+}
+
+// GetAllEC2SecurityGroupEgressResources retrieves all ec2.SecurityGroupEgress items from an AWS CloudFormation template
+func (t *Template) GetAllEC2SecurityGroupEgressResources() map[string]*ec2.SecurityGroupEgress {
+ results := map[string]*ec2.SecurityGroupEgress{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.SecurityGroupEgress:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2SecurityGroupEgressWithName retrieves all ec2.SecurityGroupEgress items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2SecurityGroupEgressWithName(name string) (*ec2.SecurityGroupEgress, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.SecurityGroupEgress:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.SecurityGroupEgress not found", name)
+}
+
+// GetAllEC2SecurityGroupIngressResources retrieves all ec2.SecurityGroupIngress items from an AWS CloudFormation template
+func (t *Template) GetAllEC2SecurityGroupIngressResources() map[string]*ec2.SecurityGroupIngress {
+ results := map[string]*ec2.SecurityGroupIngress{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.SecurityGroupIngress:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2SecurityGroupIngressWithName retrieves all ec2.SecurityGroupIngress items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2SecurityGroupIngressWithName(name string) (*ec2.SecurityGroupIngress, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.SecurityGroupIngress:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.SecurityGroupIngress not found", name)
+}
+
+// GetAllEC2SpotFleetResources retrieves all ec2.SpotFleet items from an AWS CloudFormation template
+func (t *Template) GetAllEC2SpotFleetResources() map[string]*ec2.SpotFleet {
+ results := map[string]*ec2.SpotFleet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.SpotFleet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2SpotFleetWithName retrieves all ec2.SpotFleet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2SpotFleetWithName(name string) (*ec2.SpotFleet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.SpotFleet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.SpotFleet not found", name)
+}
+
+// GetAllEC2SubnetResources retrieves all ec2.Subnet items from an AWS CloudFormation template
+func (t *Template) GetAllEC2SubnetResources() map[string]*ec2.Subnet {
+ results := map[string]*ec2.Subnet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.Subnet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2SubnetWithName retrieves all ec2.Subnet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2SubnetWithName(name string) (*ec2.Subnet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.Subnet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.Subnet not found", name)
+}
+
+// GetAllEC2SubnetCidrBlockResources retrieves all ec2.SubnetCidrBlock items from an AWS CloudFormation template
+func (t *Template) GetAllEC2SubnetCidrBlockResources() map[string]*ec2.SubnetCidrBlock {
+ results := map[string]*ec2.SubnetCidrBlock{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.SubnetCidrBlock:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2SubnetCidrBlockWithName retrieves all ec2.SubnetCidrBlock items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2SubnetCidrBlockWithName(name string) (*ec2.SubnetCidrBlock, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.SubnetCidrBlock:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.SubnetCidrBlock not found", name)
+}
+
+// GetAllEC2SubnetNetworkAclAssociationResources retrieves all ec2.SubnetNetworkAclAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2SubnetNetworkAclAssociationResources() map[string]*ec2.SubnetNetworkAclAssociation {
+ results := map[string]*ec2.SubnetNetworkAclAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.SubnetNetworkAclAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2SubnetNetworkAclAssociationWithName retrieves all ec2.SubnetNetworkAclAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2SubnetNetworkAclAssociationWithName(name string) (*ec2.SubnetNetworkAclAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.SubnetNetworkAclAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.SubnetNetworkAclAssociation not found", name)
+}
+
+// GetAllEC2SubnetRouteTableAssociationResources retrieves all ec2.SubnetRouteTableAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2SubnetRouteTableAssociationResources() map[string]*ec2.SubnetRouteTableAssociation {
+ results := map[string]*ec2.SubnetRouteTableAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.SubnetRouteTableAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2SubnetRouteTableAssociationWithName retrieves all ec2.SubnetRouteTableAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2SubnetRouteTableAssociationWithName(name string) (*ec2.SubnetRouteTableAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.SubnetRouteTableAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.SubnetRouteTableAssociation not found", name)
+}
+
+// GetAllEC2TrafficMirrorFilterResources retrieves all ec2.TrafficMirrorFilter items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TrafficMirrorFilterResources() map[string]*ec2.TrafficMirrorFilter {
+ results := map[string]*ec2.TrafficMirrorFilter{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TrafficMirrorFilter:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TrafficMirrorFilterWithName retrieves all ec2.TrafficMirrorFilter items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TrafficMirrorFilterWithName(name string) (*ec2.TrafficMirrorFilter, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TrafficMirrorFilter:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TrafficMirrorFilter not found", name)
+}
+
+// GetAllEC2TrafficMirrorFilterRuleResources retrieves all ec2.TrafficMirrorFilterRule items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TrafficMirrorFilterRuleResources() map[string]*ec2.TrafficMirrorFilterRule {
+ results := map[string]*ec2.TrafficMirrorFilterRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TrafficMirrorFilterRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TrafficMirrorFilterRuleWithName retrieves all ec2.TrafficMirrorFilterRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TrafficMirrorFilterRuleWithName(name string) (*ec2.TrafficMirrorFilterRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TrafficMirrorFilterRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TrafficMirrorFilterRule not found", name)
+}
+
+// GetAllEC2TrafficMirrorSessionResources retrieves all ec2.TrafficMirrorSession items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TrafficMirrorSessionResources() map[string]*ec2.TrafficMirrorSession {
+ results := map[string]*ec2.TrafficMirrorSession{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TrafficMirrorSession:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TrafficMirrorSessionWithName retrieves all ec2.TrafficMirrorSession items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TrafficMirrorSessionWithName(name string) (*ec2.TrafficMirrorSession, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TrafficMirrorSession:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TrafficMirrorSession not found", name)
+}
+
+// GetAllEC2TrafficMirrorTargetResources retrieves all ec2.TrafficMirrorTarget items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TrafficMirrorTargetResources() map[string]*ec2.TrafficMirrorTarget {
+ results := map[string]*ec2.TrafficMirrorTarget{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TrafficMirrorTarget:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TrafficMirrorTargetWithName retrieves all ec2.TrafficMirrorTarget items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TrafficMirrorTargetWithName(name string) (*ec2.TrafficMirrorTarget, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TrafficMirrorTarget:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TrafficMirrorTarget not found", name)
+}
+
+// GetAllEC2TransitGatewayResources retrieves all ec2.TransitGateway items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayResources() map[string]*ec2.TransitGateway {
+ results := map[string]*ec2.TransitGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayWithName retrieves all ec2.TransitGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayWithName(name string) (*ec2.TransitGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGateway not found", name)
+}
+
+// GetAllEC2TransitGatewayAttachmentResources retrieves all ec2.TransitGatewayAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayAttachmentResources() map[string]*ec2.TransitGatewayAttachment {
+ results := map[string]*ec2.TransitGatewayAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayAttachmentWithName retrieves all ec2.TransitGatewayAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayAttachmentWithName(name string) (*ec2.TransitGatewayAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayAttachment not found", name)
+}
+
+// GetAllEC2TransitGatewayConnectResources retrieves all ec2.TransitGatewayConnect items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayConnectResources() map[string]*ec2.TransitGatewayConnect {
+ results := map[string]*ec2.TransitGatewayConnect{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayConnect:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayConnectWithName retrieves all ec2.TransitGatewayConnect items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayConnectWithName(name string) (*ec2.TransitGatewayConnect, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayConnect:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayConnect not found", name)
+}
+
+// GetAllEC2TransitGatewayMulticastDomainResources retrieves all ec2.TransitGatewayMulticastDomain items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayMulticastDomainResources() map[string]*ec2.TransitGatewayMulticastDomain {
+ results := map[string]*ec2.TransitGatewayMulticastDomain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayMulticastDomain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayMulticastDomainWithName retrieves all ec2.TransitGatewayMulticastDomain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayMulticastDomainWithName(name string) (*ec2.TransitGatewayMulticastDomain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayMulticastDomain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayMulticastDomain not found", name)
+}
+
+// GetAllEC2TransitGatewayMulticastDomainAssociationResources retrieves all ec2.TransitGatewayMulticastDomainAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayMulticastDomainAssociationResources() map[string]*ec2.TransitGatewayMulticastDomainAssociation {
+ results := map[string]*ec2.TransitGatewayMulticastDomainAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayMulticastDomainAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayMulticastDomainAssociationWithName retrieves all ec2.TransitGatewayMulticastDomainAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayMulticastDomainAssociationWithName(name string) (*ec2.TransitGatewayMulticastDomainAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayMulticastDomainAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayMulticastDomainAssociation not found", name)
+}
+
+// GetAllEC2TransitGatewayMulticastGroupMemberResources retrieves all ec2.TransitGatewayMulticastGroupMember items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayMulticastGroupMemberResources() map[string]*ec2.TransitGatewayMulticastGroupMember {
+ results := map[string]*ec2.TransitGatewayMulticastGroupMember{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayMulticastGroupMember:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayMulticastGroupMemberWithName retrieves all ec2.TransitGatewayMulticastGroupMember items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayMulticastGroupMemberWithName(name string) (*ec2.TransitGatewayMulticastGroupMember, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayMulticastGroupMember:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayMulticastGroupMember not found", name)
+}
+
+// GetAllEC2TransitGatewayMulticastGroupSourceResources retrieves all ec2.TransitGatewayMulticastGroupSource items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayMulticastGroupSourceResources() map[string]*ec2.TransitGatewayMulticastGroupSource {
+ results := map[string]*ec2.TransitGatewayMulticastGroupSource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayMulticastGroupSource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayMulticastGroupSourceWithName retrieves all ec2.TransitGatewayMulticastGroupSource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayMulticastGroupSourceWithName(name string) (*ec2.TransitGatewayMulticastGroupSource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayMulticastGroupSource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayMulticastGroupSource not found", name)
+}
+
+// GetAllEC2TransitGatewayPeeringAttachmentResources retrieves all ec2.TransitGatewayPeeringAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayPeeringAttachmentResources() map[string]*ec2.TransitGatewayPeeringAttachment {
+ results := map[string]*ec2.TransitGatewayPeeringAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayPeeringAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayPeeringAttachmentWithName retrieves all ec2.TransitGatewayPeeringAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayPeeringAttachmentWithName(name string) (*ec2.TransitGatewayPeeringAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayPeeringAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayPeeringAttachment not found", name)
+}
+
+// GetAllEC2TransitGatewayRouteResources retrieves all ec2.TransitGatewayRoute items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayRouteResources() map[string]*ec2.TransitGatewayRoute {
+ results := map[string]*ec2.TransitGatewayRoute{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayRoute:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayRouteWithName retrieves all ec2.TransitGatewayRoute items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayRouteWithName(name string) (*ec2.TransitGatewayRoute, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayRoute:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayRoute not found", name)
+}
+
+// GetAllEC2TransitGatewayRouteTableResources retrieves all ec2.TransitGatewayRouteTable items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayRouteTableResources() map[string]*ec2.TransitGatewayRouteTable {
+ results := map[string]*ec2.TransitGatewayRouteTable{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayRouteTable:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayRouteTableWithName retrieves all ec2.TransitGatewayRouteTable items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayRouteTableWithName(name string) (*ec2.TransitGatewayRouteTable, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayRouteTable:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayRouteTable not found", name)
+}
+
+// GetAllEC2TransitGatewayRouteTableAssociationResources retrieves all ec2.TransitGatewayRouteTableAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayRouteTableAssociationResources() map[string]*ec2.TransitGatewayRouteTableAssociation {
+ results := map[string]*ec2.TransitGatewayRouteTableAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayRouteTableAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayRouteTableAssociationWithName retrieves all ec2.TransitGatewayRouteTableAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayRouteTableAssociationWithName(name string) (*ec2.TransitGatewayRouteTableAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayRouteTableAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayRouteTableAssociation not found", name)
+}
+
+// GetAllEC2TransitGatewayRouteTablePropagationResources retrieves all ec2.TransitGatewayRouteTablePropagation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayRouteTablePropagationResources() map[string]*ec2.TransitGatewayRouteTablePropagation {
+ results := map[string]*ec2.TransitGatewayRouteTablePropagation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayRouteTablePropagation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayRouteTablePropagationWithName retrieves all ec2.TransitGatewayRouteTablePropagation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayRouteTablePropagationWithName(name string) (*ec2.TransitGatewayRouteTablePropagation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayRouteTablePropagation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayRouteTablePropagation not found", name)
+}
+
+// GetAllEC2TransitGatewayVpcAttachmentResources retrieves all ec2.TransitGatewayVpcAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllEC2TransitGatewayVpcAttachmentResources() map[string]*ec2.TransitGatewayVpcAttachment {
+ results := map[string]*ec2.TransitGatewayVpcAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayVpcAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2TransitGatewayVpcAttachmentWithName retrieves all ec2.TransitGatewayVpcAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2TransitGatewayVpcAttachmentWithName(name string) (*ec2.TransitGatewayVpcAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.TransitGatewayVpcAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.TransitGatewayVpcAttachment not found", name)
+}
+
+// GetAllEC2VPCResources retrieves all ec2.VPC items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCResources() map[string]*ec2.VPC {
+ results := map[string]*ec2.VPC{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPC:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCWithName retrieves all ec2.VPC items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCWithName(name string) (*ec2.VPC, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPC:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPC not found", name)
+}
+
+// GetAllEC2VPCCidrBlockResources retrieves all ec2.VPCCidrBlock items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCCidrBlockResources() map[string]*ec2.VPCCidrBlock {
+ results := map[string]*ec2.VPCCidrBlock{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPCCidrBlock:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCCidrBlockWithName retrieves all ec2.VPCCidrBlock items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCCidrBlockWithName(name string) (*ec2.VPCCidrBlock, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPCCidrBlock:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPCCidrBlock not found", name)
+}
+
+// GetAllEC2VPCDHCPOptionsAssociationResources retrieves all ec2.VPCDHCPOptionsAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCDHCPOptionsAssociationResources() map[string]*ec2.VPCDHCPOptionsAssociation {
+ results := map[string]*ec2.VPCDHCPOptionsAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPCDHCPOptionsAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCDHCPOptionsAssociationWithName retrieves all ec2.VPCDHCPOptionsAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCDHCPOptionsAssociationWithName(name string) (*ec2.VPCDHCPOptionsAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPCDHCPOptionsAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPCDHCPOptionsAssociation not found", name)
+}
+
+// GetAllEC2VPCEndpointResources retrieves all ec2.VPCEndpoint items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCEndpointResources() map[string]*ec2.VPCEndpoint {
+ results := map[string]*ec2.VPCEndpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPCEndpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCEndpointWithName retrieves all ec2.VPCEndpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCEndpointWithName(name string) (*ec2.VPCEndpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPCEndpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPCEndpoint not found", name)
+}
+
+// GetAllEC2VPCEndpointConnectionNotificationResources retrieves all ec2.VPCEndpointConnectionNotification items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCEndpointConnectionNotificationResources() map[string]*ec2.VPCEndpointConnectionNotification {
+ results := map[string]*ec2.VPCEndpointConnectionNotification{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPCEndpointConnectionNotification:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCEndpointConnectionNotificationWithName retrieves all ec2.VPCEndpointConnectionNotification items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCEndpointConnectionNotificationWithName(name string) (*ec2.VPCEndpointConnectionNotification, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPCEndpointConnectionNotification:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPCEndpointConnectionNotification not found", name)
+}
+
+// GetAllEC2VPCEndpointServiceResources retrieves all ec2.VPCEndpointService items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCEndpointServiceResources() map[string]*ec2.VPCEndpointService {
+ results := map[string]*ec2.VPCEndpointService{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPCEndpointService:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCEndpointServiceWithName retrieves all ec2.VPCEndpointService items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCEndpointServiceWithName(name string) (*ec2.VPCEndpointService, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPCEndpointService:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPCEndpointService not found", name)
+}
+
+// GetAllEC2VPCEndpointServicePermissionsResources retrieves all ec2.VPCEndpointServicePermissions items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCEndpointServicePermissionsResources() map[string]*ec2.VPCEndpointServicePermissions {
+ results := map[string]*ec2.VPCEndpointServicePermissions{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPCEndpointServicePermissions:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCEndpointServicePermissionsWithName retrieves all ec2.VPCEndpointServicePermissions items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCEndpointServicePermissionsWithName(name string) (*ec2.VPCEndpointServicePermissions, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPCEndpointServicePermissions:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPCEndpointServicePermissions not found", name)
+}
+
+// GetAllEC2VPCGatewayAttachmentResources retrieves all ec2.VPCGatewayAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCGatewayAttachmentResources() map[string]*ec2.VPCGatewayAttachment {
+ results := map[string]*ec2.VPCGatewayAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPCGatewayAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCGatewayAttachmentWithName retrieves all ec2.VPCGatewayAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCGatewayAttachmentWithName(name string) (*ec2.VPCGatewayAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPCGatewayAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPCGatewayAttachment not found", name)
+}
+
+// GetAllEC2VPCPeeringConnectionResources retrieves all ec2.VPCPeeringConnection items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPCPeeringConnectionResources() map[string]*ec2.VPCPeeringConnection {
+ results := map[string]*ec2.VPCPeeringConnection{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPCPeeringConnection:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPCPeeringConnectionWithName retrieves all ec2.VPCPeeringConnection items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPCPeeringConnectionWithName(name string) (*ec2.VPCPeeringConnection, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPCPeeringConnection:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPCPeeringConnection not found", name)
+}
+
+// GetAllEC2VPNConnectionResources retrieves all ec2.VPNConnection items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPNConnectionResources() map[string]*ec2.VPNConnection {
+ results := map[string]*ec2.VPNConnection{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPNConnection:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPNConnectionWithName retrieves all ec2.VPNConnection items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPNConnectionWithName(name string) (*ec2.VPNConnection, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPNConnection:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPNConnection not found", name)
+}
+
+// GetAllEC2VPNConnectionRouteResources retrieves all ec2.VPNConnectionRoute items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPNConnectionRouteResources() map[string]*ec2.VPNConnectionRoute {
+ results := map[string]*ec2.VPNConnectionRoute{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPNConnectionRoute:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPNConnectionRouteWithName retrieves all ec2.VPNConnectionRoute items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPNConnectionRouteWithName(name string) (*ec2.VPNConnectionRoute, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPNConnectionRoute:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPNConnectionRoute not found", name)
+}
+
+// GetAllEC2VPNGatewayResources retrieves all ec2.VPNGateway items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPNGatewayResources() map[string]*ec2.VPNGateway {
+ results := map[string]*ec2.VPNGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPNGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPNGatewayWithName retrieves all ec2.VPNGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPNGatewayWithName(name string) (*ec2.VPNGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPNGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPNGateway not found", name)
+}
+
+// GetAllEC2VPNGatewayRoutePropagationResources retrieves all ec2.VPNGatewayRoutePropagation items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VPNGatewayRoutePropagationResources() map[string]*ec2.VPNGatewayRoutePropagation {
+ results := map[string]*ec2.VPNGatewayRoutePropagation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VPNGatewayRoutePropagation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VPNGatewayRoutePropagationWithName retrieves all ec2.VPNGatewayRoutePropagation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VPNGatewayRoutePropagationWithName(name string) (*ec2.VPNGatewayRoutePropagation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VPNGatewayRoutePropagation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VPNGatewayRoutePropagation not found", name)
+}
+
+// GetAllEC2VolumeResources retrieves all ec2.Volume items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VolumeResources() map[string]*ec2.Volume {
+ results := map[string]*ec2.Volume{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.Volume:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VolumeWithName retrieves all ec2.Volume items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VolumeWithName(name string) (*ec2.Volume, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.Volume:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.Volume not found", name)
+}
+
+// GetAllEC2VolumeAttachmentResources retrieves all ec2.VolumeAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllEC2VolumeAttachmentResources() map[string]*ec2.VolumeAttachment {
+ results := map[string]*ec2.VolumeAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ec2.VolumeAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEC2VolumeAttachmentWithName retrieves all ec2.VolumeAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEC2VolumeAttachmentWithName(name string) (*ec2.VolumeAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ec2.VolumeAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ec2.VolumeAttachment not found", name)
+}
+
+// GetAllECRPublicRepositoryResources retrieves all ecr.PublicRepository items from an AWS CloudFormation template
+func (t *Template) GetAllECRPublicRepositoryResources() map[string]*ecr.PublicRepository {
+ results := map[string]*ecr.PublicRepository{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecr.PublicRepository:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECRPublicRepositoryWithName retrieves all ecr.PublicRepository items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECRPublicRepositoryWithName(name string) (*ecr.PublicRepository, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecr.PublicRepository:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecr.PublicRepository not found", name)
+}
+
+// GetAllECRRegistryPolicyResources retrieves all ecr.RegistryPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllECRRegistryPolicyResources() map[string]*ecr.RegistryPolicy {
+ results := map[string]*ecr.RegistryPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecr.RegistryPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECRRegistryPolicyWithName retrieves all ecr.RegistryPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECRRegistryPolicyWithName(name string) (*ecr.RegistryPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecr.RegistryPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecr.RegistryPolicy not found", name)
+}
+
+// GetAllECRReplicationConfigurationResources retrieves all ecr.ReplicationConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllECRReplicationConfigurationResources() map[string]*ecr.ReplicationConfiguration {
+ results := map[string]*ecr.ReplicationConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecr.ReplicationConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECRReplicationConfigurationWithName retrieves all ecr.ReplicationConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECRReplicationConfigurationWithName(name string) (*ecr.ReplicationConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecr.ReplicationConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecr.ReplicationConfiguration not found", name)
+}
+
+// GetAllECRRepositoryResources retrieves all ecr.Repository items from an AWS CloudFormation template
+func (t *Template) GetAllECRRepositoryResources() map[string]*ecr.Repository {
+ results := map[string]*ecr.Repository{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecr.Repository:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECRRepositoryWithName retrieves all ecr.Repository items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECRRepositoryWithName(name string) (*ecr.Repository, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecr.Repository:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecr.Repository not found", name)
+}
+
+// GetAllECSCapacityProviderResources retrieves all ecs.CapacityProvider items from an AWS CloudFormation template
+func (t *Template) GetAllECSCapacityProviderResources() map[string]*ecs.CapacityProvider {
+ results := map[string]*ecs.CapacityProvider{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecs.CapacityProvider:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECSCapacityProviderWithName retrieves all ecs.CapacityProvider items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECSCapacityProviderWithName(name string) (*ecs.CapacityProvider, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecs.CapacityProvider:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecs.CapacityProvider not found", name)
+}
+
+// GetAllECSClusterResources retrieves all ecs.Cluster items from an AWS CloudFormation template
+func (t *Template) GetAllECSClusterResources() map[string]*ecs.Cluster {
+ results := map[string]*ecs.Cluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecs.Cluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECSClusterWithName retrieves all ecs.Cluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECSClusterWithName(name string) (*ecs.Cluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecs.Cluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecs.Cluster not found", name)
+}
+
+// GetAllECSClusterCapacityProviderAssociationsResources retrieves all ecs.ClusterCapacityProviderAssociations items from an AWS CloudFormation template
+func (t *Template) GetAllECSClusterCapacityProviderAssociationsResources() map[string]*ecs.ClusterCapacityProviderAssociations {
+ results := map[string]*ecs.ClusterCapacityProviderAssociations{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecs.ClusterCapacityProviderAssociations:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECSClusterCapacityProviderAssociationsWithName retrieves all ecs.ClusterCapacityProviderAssociations items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECSClusterCapacityProviderAssociationsWithName(name string) (*ecs.ClusterCapacityProviderAssociations, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecs.ClusterCapacityProviderAssociations:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecs.ClusterCapacityProviderAssociations not found", name)
+}
+
+// GetAllECSPrimaryTaskSetResources retrieves all ecs.PrimaryTaskSet items from an AWS CloudFormation template
+func (t *Template) GetAllECSPrimaryTaskSetResources() map[string]*ecs.PrimaryTaskSet {
+ results := map[string]*ecs.PrimaryTaskSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecs.PrimaryTaskSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECSPrimaryTaskSetWithName retrieves all ecs.PrimaryTaskSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECSPrimaryTaskSetWithName(name string) (*ecs.PrimaryTaskSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecs.PrimaryTaskSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecs.PrimaryTaskSet not found", name)
+}
+
+// GetAllECSServiceResources retrieves all ecs.Service items from an AWS CloudFormation template
+func (t *Template) GetAllECSServiceResources() map[string]*ecs.Service {
+ results := map[string]*ecs.Service{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecs.Service:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECSServiceWithName retrieves all ecs.Service items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECSServiceWithName(name string) (*ecs.Service, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecs.Service:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecs.Service not found", name)
+}
+
+// GetAllECSTaskDefinitionResources retrieves all ecs.TaskDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllECSTaskDefinitionResources() map[string]*ecs.TaskDefinition {
+ results := map[string]*ecs.TaskDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecs.TaskDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECSTaskDefinitionWithName retrieves all ecs.TaskDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECSTaskDefinitionWithName(name string) (*ecs.TaskDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecs.TaskDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecs.TaskDefinition not found", name)
+}
+
+// GetAllECSTaskSetResources retrieves all ecs.TaskSet items from an AWS CloudFormation template
+func (t *Template) GetAllECSTaskSetResources() map[string]*ecs.TaskSet {
+ results := map[string]*ecs.TaskSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ecs.TaskSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetECSTaskSetWithName retrieves all ecs.TaskSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetECSTaskSetWithName(name string) (*ecs.TaskSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ecs.TaskSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ecs.TaskSet not found", name)
+}
+
+// GetAllEFSAccessPointResources retrieves all efs.AccessPoint items from an AWS CloudFormation template
+func (t *Template) GetAllEFSAccessPointResources() map[string]*efs.AccessPoint {
+ results := map[string]*efs.AccessPoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *efs.AccessPoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEFSAccessPointWithName retrieves all efs.AccessPoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEFSAccessPointWithName(name string) (*efs.AccessPoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *efs.AccessPoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type efs.AccessPoint not found", name)
+}
+
+// GetAllEFSFileSystemResources retrieves all efs.FileSystem items from an AWS CloudFormation template
+func (t *Template) GetAllEFSFileSystemResources() map[string]*efs.FileSystem {
+ results := map[string]*efs.FileSystem{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *efs.FileSystem:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEFSFileSystemWithName retrieves all efs.FileSystem items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEFSFileSystemWithName(name string) (*efs.FileSystem, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *efs.FileSystem:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type efs.FileSystem not found", name)
+}
+
+// GetAllEFSMountTargetResources retrieves all efs.MountTarget items from an AWS CloudFormation template
+func (t *Template) GetAllEFSMountTargetResources() map[string]*efs.MountTarget {
+ results := map[string]*efs.MountTarget{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *efs.MountTarget:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEFSMountTargetWithName retrieves all efs.MountTarget items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEFSMountTargetWithName(name string) (*efs.MountTarget, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *efs.MountTarget:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type efs.MountTarget not found", name)
+}
+
+// GetAllEKSAddonResources retrieves all eks.Addon items from an AWS CloudFormation template
+func (t *Template) GetAllEKSAddonResources() map[string]*eks.Addon {
+ results := map[string]*eks.Addon{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *eks.Addon:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEKSAddonWithName retrieves all eks.Addon items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEKSAddonWithName(name string) (*eks.Addon, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *eks.Addon:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type eks.Addon not found", name)
+}
+
+// GetAllEKSClusterResources retrieves all eks.Cluster items from an AWS CloudFormation template
+func (t *Template) GetAllEKSClusterResources() map[string]*eks.Cluster {
+ results := map[string]*eks.Cluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *eks.Cluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEKSClusterWithName retrieves all eks.Cluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEKSClusterWithName(name string) (*eks.Cluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *eks.Cluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type eks.Cluster not found", name)
+}
+
+// GetAllEKSFargateProfileResources retrieves all eks.FargateProfile items from an AWS CloudFormation template
+func (t *Template) GetAllEKSFargateProfileResources() map[string]*eks.FargateProfile {
+ results := map[string]*eks.FargateProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *eks.FargateProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEKSFargateProfileWithName retrieves all eks.FargateProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEKSFargateProfileWithName(name string) (*eks.FargateProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *eks.FargateProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type eks.FargateProfile not found", name)
+}
+
+// GetAllEKSNodegroupResources retrieves all eks.Nodegroup items from an AWS CloudFormation template
+func (t *Template) GetAllEKSNodegroupResources() map[string]*eks.Nodegroup {
+ results := map[string]*eks.Nodegroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *eks.Nodegroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEKSNodegroupWithName retrieves all eks.Nodegroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEKSNodegroupWithName(name string) (*eks.Nodegroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *eks.Nodegroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type eks.Nodegroup not found", name)
+}
+
+// GetAllEMRClusterResources retrieves all emr.Cluster items from an AWS CloudFormation template
+func (t *Template) GetAllEMRClusterResources() map[string]*emr.Cluster {
+ results := map[string]*emr.Cluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *emr.Cluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEMRClusterWithName retrieves all emr.Cluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEMRClusterWithName(name string) (*emr.Cluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *emr.Cluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type emr.Cluster not found", name)
+}
+
+// GetAllEMRInstanceFleetConfigResources retrieves all emr.InstanceFleetConfig items from an AWS CloudFormation template
+func (t *Template) GetAllEMRInstanceFleetConfigResources() map[string]*emr.InstanceFleetConfig {
+ results := map[string]*emr.InstanceFleetConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *emr.InstanceFleetConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEMRInstanceFleetConfigWithName retrieves all emr.InstanceFleetConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEMRInstanceFleetConfigWithName(name string) (*emr.InstanceFleetConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *emr.InstanceFleetConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type emr.InstanceFleetConfig not found", name)
+}
+
+// GetAllEMRInstanceGroupConfigResources retrieves all emr.InstanceGroupConfig items from an AWS CloudFormation template
+func (t *Template) GetAllEMRInstanceGroupConfigResources() map[string]*emr.InstanceGroupConfig {
+ results := map[string]*emr.InstanceGroupConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *emr.InstanceGroupConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEMRInstanceGroupConfigWithName retrieves all emr.InstanceGroupConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEMRInstanceGroupConfigWithName(name string) (*emr.InstanceGroupConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *emr.InstanceGroupConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type emr.InstanceGroupConfig not found", name)
+}
+
+// GetAllEMRSecurityConfigurationResources retrieves all emr.SecurityConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllEMRSecurityConfigurationResources() map[string]*emr.SecurityConfiguration {
+ results := map[string]*emr.SecurityConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *emr.SecurityConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEMRSecurityConfigurationWithName retrieves all emr.SecurityConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEMRSecurityConfigurationWithName(name string) (*emr.SecurityConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *emr.SecurityConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type emr.SecurityConfiguration not found", name)
+}
+
+// GetAllEMRStepResources retrieves all emr.Step items from an AWS CloudFormation template
+func (t *Template) GetAllEMRStepResources() map[string]*emr.Step {
+ results := map[string]*emr.Step{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *emr.Step:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEMRStepWithName retrieves all emr.Step items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEMRStepWithName(name string) (*emr.Step, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *emr.Step:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type emr.Step not found", name)
+}
+
+// GetAllEMRStudioResources retrieves all emr.Studio items from an AWS CloudFormation template
+func (t *Template) GetAllEMRStudioResources() map[string]*emr.Studio {
+ results := map[string]*emr.Studio{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *emr.Studio:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEMRStudioWithName retrieves all emr.Studio items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEMRStudioWithName(name string) (*emr.Studio, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *emr.Studio:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type emr.Studio not found", name)
+}
+
+// GetAllEMRStudioSessionMappingResources retrieves all emr.StudioSessionMapping items from an AWS CloudFormation template
+func (t *Template) GetAllEMRStudioSessionMappingResources() map[string]*emr.StudioSessionMapping {
+ results := map[string]*emr.StudioSessionMapping{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *emr.StudioSessionMapping:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEMRStudioSessionMappingWithName retrieves all emr.StudioSessionMapping items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEMRStudioSessionMappingWithName(name string) (*emr.StudioSessionMapping, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *emr.StudioSessionMapping:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type emr.StudioSessionMapping not found", name)
+}
+
+// GetAllEMRContainersVirtualClusterResources retrieves all emrcontainers.VirtualCluster items from an AWS CloudFormation template
+func (t *Template) GetAllEMRContainersVirtualClusterResources() map[string]*emrcontainers.VirtualCluster {
+ results := map[string]*emrcontainers.VirtualCluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *emrcontainers.VirtualCluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEMRContainersVirtualClusterWithName retrieves all emrcontainers.VirtualCluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEMRContainersVirtualClusterWithName(name string) (*emrcontainers.VirtualCluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *emrcontainers.VirtualCluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type emrcontainers.VirtualCluster not found", name)
+}
+
+// GetAllElastiCacheCacheClusterResources retrieves all elasticache.CacheCluster items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheCacheClusterResources() map[string]*elasticache.CacheCluster {
+ results := map[string]*elasticache.CacheCluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.CacheCluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheCacheClusterWithName retrieves all elasticache.CacheCluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheCacheClusterWithName(name string) (*elasticache.CacheCluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.CacheCluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.CacheCluster not found", name)
+}
+
+// GetAllElastiCacheGlobalReplicationGroupResources retrieves all elasticache.GlobalReplicationGroup items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheGlobalReplicationGroupResources() map[string]*elasticache.GlobalReplicationGroup {
+ results := map[string]*elasticache.GlobalReplicationGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.GlobalReplicationGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheGlobalReplicationGroupWithName retrieves all elasticache.GlobalReplicationGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheGlobalReplicationGroupWithName(name string) (*elasticache.GlobalReplicationGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.GlobalReplicationGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.GlobalReplicationGroup not found", name)
+}
+
+// GetAllElastiCacheParameterGroupResources retrieves all elasticache.ParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheParameterGroupResources() map[string]*elasticache.ParameterGroup {
+ results := map[string]*elasticache.ParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.ParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheParameterGroupWithName retrieves all elasticache.ParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheParameterGroupWithName(name string) (*elasticache.ParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.ParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.ParameterGroup not found", name)
+}
+
+// GetAllElastiCacheReplicationGroupResources retrieves all elasticache.ReplicationGroup items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheReplicationGroupResources() map[string]*elasticache.ReplicationGroup {
+ results := map[string]*elasticache.ReplicationGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.ReplicationGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheReplicationGroupWithName retrieves all elasticache.ReplicationGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheReplicationGroupWithName(name string) (*elasticache.ReplicationGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.ReplicationGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.ReplicationGroup not found", name)
+}
+
+// GetAllElastiCacheSecurityGroupResources retrieves all elasticache.SecurityGroup items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheSecurityGroupResources() map[string]*elasticache.SecurityGroup {
+ results := map[string]*elasticache.SecurityGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.SecurityGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheSecurityGroupWithName retrieves all elasticache.SecurityGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheSecurityGroupWithName(name string) (*elasticache.SecurityGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.SecurityGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.SecurityGroup not found", name)
+}
+
+// GetAllElastiCacheSecurityGroupIngressResources retrieves all elasticache.SecurityGroupIngress items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheSecurityGroupIngressResources() map[string]*elasticache.SecurityGroupIngress {
+ results := map[string]*elasticache.SecurityGroupIngress{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.SecurityGroupIngress:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheSecurityGroupIngressWithName retrieves all elasticache.SecurityGroupIngress items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheSecurityGroupIngressWithName(name string) (*elasticache.SecurityGroupIngress, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.SecurityGroupIngress:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.SecurityGroupIngress not found", name)
+}
+
+// GetAllElastiCacheSubnetGroupResources retrieves all elasticache.SubnetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheSubnetGroupResources() map[string]*elasticache.SubnetGroup {
+ results := map[string]*elasticache.SubnetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.SubnetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheSubnetGroupWithName retrieves all elasticache.SubnetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheSubnetGroupWithName(name string) (*elasticache.SubnetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.SubnetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.SubnetGroup not found", name)
+}
+
+// GetAllElastiCacheUserResources retrieves all elasticache.User items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheUserResources() map[string]*elasticache.User {
+ results := map[string]*elasticache.User{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.User:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheUserWithName retrieves all elasticache.User items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheUserWithName(name string) (*elasticache.User, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.User:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.User not found", name)
+}
+
+// GetAllElastiCacheUserGroupResources retrieves all elasticache.UserGroup items from an AWS CloudFormation template
+func (t *Template) GetAllElastiCacheUserGroupResources() map[string]*elasticache.UserGroup {
+ results := map[string]*elasticache.UserGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticache.UserGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElastiCacheUserGroupWithName retrieves all elasticache.UserGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElastiCacheUserGroupWithName(name string) (*elasticache.UserGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticache.UserGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticache.UserGroup not found", name)
+}
+
+// GetAllElasticBeanstalkApplicationResources retrieves all elasticbeanstalk.Application items from an AWS CloudFormation template
+func (t *Template) GetAllElasticBeanstalkApplicationResources() map[string]*elasticbeanstalk.Application {
+ results := map[string]*elasticbeanstalk.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticbeanstalk.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticBeanstalkApplicationWithName retrieves all elasticbeanstalk.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticBeanstalkApplicationWithName(name string) (*elasticbeanstalk.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticbeanstalk.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticbeanstalk.Application not found", name)
+}
+
+// GetAllElasticBeanstalkApplicationVersionResources retrieves all elasticbeanstalk.ApplicationVersion items from an AWS CloudFormation template
+func (t *Template) GetAllElasticBeanstalkApplicationVersionResources() map[string]*elasticbeanstalk.ApplicationVersion {
+ results := map[string]*elasticbeanstalk.ApplicationVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticbeanstalk.ApplicationVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticBeanstalkApplicationVersionWithName retrieves all elasticbeanstalk.ApplicationVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticBeanstalkApplicationVersionWithName(name string) (*elasticbeanstalk.ApplicationVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticbeanstalk.ApplicationVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticbeanstalk.ApplicationVersion not found", name)
+}
+
+// GetAllElasticBeanstalkConfigurationTemplateResources retrieves all elasticbeanstalk.ConfigurationTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllElasticBeanstalkConfigurationTemplateResources() map[string]*elasticbeanstalk.ConfigurationTemplate {
+ results := map[string]*elasticbeanstalk.ConfigurationTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticbeanstalk.ConfigurationTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticBeanstalkConfigurationTemplateWithName retrieves all elasticbeanstalk.ConfigurationTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticBeanstalkConfigurationTemplateWithName(name string) (*elasticbeanstalk.ConfigurationTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticbeanstalk.ConfigurationTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticbeanstalk.ConfigurationTemplate not found", name)
+}
+
+// GetAllElasticBeanstalkEnvironmentResources retrieves all elasticbeanstalk.Environment items from an AWS CloudFormation template
+func (t *Template) GetAllElasticBeanstalkEnvironmentResources() map[string]*elasticbeanstalk.Environment {
+ results := map[string]*elasticbeanstalk.Environment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticbeanstalk.Environment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticBeanstalkEnvironmentWithName retrieves all elasticbeanstalk.Environment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticBeanstalkEnvironmentWithName(name string) (*elasticbeanstalk.Environment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticbeanstalk.Environment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticbeanstalk.Environment not found", name)
+}
+
+// GetAllElasticLoadBalancingLoadBalancerResources retrieves all elasticloadbalancing.LoadBalancer items from an AWS CloudFormation template
+func (t *Template) GetAllElasticLoadBalancingLoadBalancerResources() map[string]*elasticloadbalancing.LoadBalancer {
+ results := map[string]*elasticloadbalancing.LoadBalancer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancing.LoadBalancer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticLoadBalancingLoadBalancerWithName retrieves all elasticloadbalancing.LoadBalancer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticLoadBalancingLoadBalancerWithName(name string) (*elasticloadbalancing.LoadBalancer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancing.LoadBalancer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticloadbalancing.LoadBalancer not found", name)
+}
+
+// GetAllElasticLoadBalancingV2ListenerResources retrieves all elasticloadbalancingv2.Listener items from an AWS CloudFormation template
+func (t *Template) GetAllElasticLoadBalancingV2ListenerResources() map[string]*elasticloadbalancingv2.Listener {
+ results := map[string]*elasticloadbalancingv2.Listener{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.Listener:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticLoadBalancingV2ListenerWithName retrieves all elasticloadbalancingv2.Listener items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticLoadBalancingV2ListenerWithName(name string) (*elasticloadbalancingv2.Listener, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.Listener:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticloadbalancingv2.Listener not found", name)
+}
+
+// GetAllElasticLoadBalancingV2ListenerCertificateResources retrieves all elasticloadbalancingv2.ListenerCertificate items from an AWS CloudFormation template
+func (t *Template) GetAllElasticLoadBalancingV2ListenerCertificateResources() map[string]*elasticloadbalancingv2.ListenerCertificate {
+ results := map[string]*elasticloadbalancingv2.ListenerCertificate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.ListenerCertificate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticLoadBalancingV2ListenerCertificateWithName retrieves all elasticloadbalancingv2.ListenerCertificate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticLoadBalancingV2ListenerCertificateWithName(name string) (*elasticloadbalancingv2.ListenerCertificate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.ListenerCertificate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticloadbalancingv2.ListenerCertificate not found", name)
+}
+
+// GetAllElasticLoadBalancingV2ListenerRuleResources retrieves all elasticloadbalancingv2.ListenerRule items from an AWS CloudFormation template
+func (t *Template) GetAllElasticLoadBalancingV2ListenerRuleResources() map[string]*elasticloadbalancingv2.ListenerRule {
+ results := map[string]*elasticloadbalancingv2.ListenerRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.ListenerRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticLoadBalancingV2ListenerRuleWithName retrieves all elasticloadbalancingv2.ListenerRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticLoadBalancingV2ListenerRuleWithName(name string) (*elasticloadbalancingv2.ListenerRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.ListenerRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticloadbalancingv2.ListenerRule not found", name)
+}
+
+// GetAllElasticLoadBalancingV2LoadBalancerResources retrieves all elasticloadbalancingv2.LoadBalancer items from an AWS CloudFormation template
+func (t *Template) GetAllElasticLoadBalancingV2LoadBalancerResources() map[string]*elasticloadbalancingv2.LoadBalancer {
+ results := map[string]*elasticloadbalancingv2.LoadBalancer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.LoadBalancer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticLoadBalancingV2LoadBalancerWithName retrieves all elasticloadbalancingv2.LoadBalancer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticLoadBalancingV2LoadBalancerWithName(name string) (*elasticloadbalancingv2.LoadBalancer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.LoadBalancer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticloadbalancingv2.LoadBalancer not found", name)
+}
+
+// GetAllElasticLoadBalancingV2TargetGroupResources retrieves all elasticloadbalancingv2.TargetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllElasticLoadBalancingV2TargetGroupResources() map[string]*elasticloadbalancingv2.TargetGroup {
+ results := map[string]*elasticloadbalancingv2.TargetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.TargetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticLoadBalancingV2TargetGroupWithName retrieves all elasticloadbalancingv2.TargetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticLoadBalancingV2TargetGroupWithName(name string) (*elasticloadbalancingv2.TargetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticloadbalancingv2.TargetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticloadbalancingv2.TargetGroup not found", name)
+}
+
+// GetAllElasticsearchDomainResources retrieves all elasticsearch.Domain items from an AWS CloudFormation template
+func (t *Template) GetAllElasticsearchDomainResources() map[string]*elasticsearch.Domain {
+ results := map[string]*elasticsearch.Domain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *elasticsearch.Domain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetElasticsearchDomainWithName retrieves all elasticsearch.Domain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetElasticsearchDomainWithName(name string) (*elasticsearch.Domain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *elasticsearch.Domain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type elasticsearch.Domain not found", name)
+}
+
+// GetAllEventSchemasDiscovererResources retrieves all eventschemas.Discoverer items from an AWS CloudFormation template
+func (t *Template) GetAllEventSchemasDiscovererResources() map[string]*eventschemas.Discoverer {
+ results := map[string]*eventschemas.Discoverer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *eventschemas.Discoverer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventSchemasDiscovererWithName retrieves all eventschemas.Discoverer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventSchemasDiscovererWithName(name string) (*eventschemas.Discoverer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *eventschemas.Discoverer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type eventschemas.Discoverer not found", name)
+}
+
+// GetAllEventSchemasRegistryResources retrieves all eventschemas.Registry items from an AWS CloudFormation template
+func (t *Template) GetAllEventSchemasRegistryResources() map[string]*eventschemas.Registry {
+ results := map[string]*eventschemas.Registry{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *eventschemas.Registry:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventSchemasRegistryWithName retrieves all eventschemas.Registry items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventSchemasRegistryWithName(name string) (*eventschemas.Registry, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *eventschemas.Registry:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type eventschemas.Registry not found", name)
+}
+
+// GetAllEventSchemasRegistryPolicyResources retrieves all eventschemas.RegistryPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllEventSchemasRegistryPolicyResources() map[string]*eventschemas.RegistryPolicy {
+ results := map[string]*eventschemas.RegistryPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *eventschemas.RegistryPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventSchemasRegistryPolicyWithName retrieves all eventschemas.RegistryPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventSchemasRegistryPolicyWithName(name string) (*eventschemas.RegistryPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *eventschemas.RegistryPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type eventschemas.RegistryPolicy not found", name)
+}
+
+// GetAllEventSchemasSchemaResources retrieves all eventschemas.Schema items from an AWS CloudFormation template
+func (t *Template) GetAllEventSchemasSchemaResources() map[string]*eventschemas.Schema {
+ results := map[string]*eventschemas.Schema{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *eventschemas.Schema:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventSchemasSchemaWithName retrieves all eventschemas.Schema items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventSchemasSchemaWithName(name string) (*eventschemas.Schema, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *eventschemas.Schema:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type eventschemas.Schema not found", name)
+}
+
+// GetAllEventsApiDestinationResources retrieves all events.ApiDestination items from an AWS CloudFormation template
+func (t *Template) GetAllEventsApiDestinationResources() map[string]*events.ApiDestination {
+ results := map[string]*events.ApiDestination{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *events.ApiDestination:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventsApiDestinationWithName retrieves all events.ApiDestination items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventsApiDestinationWithName(name string) (*events.ApiDestination, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *events.ApiDestination:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type events.ApiDestination not found", name)
+}
+
+// GetAllEventsArchiveResources retrieves all events.Archive items from an AWS CloudFormation template
+func (t *Template) GetAllEventsArchiveResources() map[string]*events.Archive {
+ results := map[string]*events.Archive{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *events.Archive:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventsArchiveWithName retrieves all events.Archive items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventsArchiveWithName(name string) (*events.Archive, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *events.Archive:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type events.Archive not found", name)
+}
+
+// GetAllEventsConnectionResources retrieves all events.Connection items from an AWS CloudFormation template
+func (t *Template) GetAllEventsConnectionResources() map[string]*events.Connection {
+ results := map[string]*events.Connection{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *events.Connection:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventsConnectionWithName retrieves all events.Connection items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventsConnectionWithName(name string) (*events.Connection, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *events.Connection:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type events.Connection not found", name)
+}
+
+// GetAllEventsEventBusResources retrieves all events.EventBus items from an AWS CloudFormation template
+func (t *Template) GetAllEventsEventBusResources() map[string]*events.EventBus {
+ results := map[string]*events.EventBus{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *events.EventBus:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventsEventBusWithName retrieves all events.EventBus items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventsEventBusWithName(name string) (*events.EventBus, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *events.EventBus:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type events.EventBus not found", name)
+}
+
+// GetAllEventsEventBusPolicyResources retrieves all events.EventBusPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllEventsEventBusPolicyResources() map[string]*events.EventBusPolicy {
+ results := map[string]*events.EventBusPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *events.EventBusPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventsEventBusPolicyWithName retrieves all events.EventBusPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventsEventBusPolicyWithName(name string) (*events.EventBusPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *events.EventBusPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type events.EventBusPolicy not found", name)
+}
+
+// GetAllEventsRuleResources retrieves all events.Rule items from an AWS CloudFormation template
+func (t *Template) GetAllEventsRuleResources() map[string]*events.Rule {
+ results := map[string]*events.Rule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *events.Rule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEventsRuleWithName retrieves all events.Rule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEventsRuleWithName(name string) (*events.Rule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *events.Rule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type events.Rule not found", name)
+}
+
+// GetAllEvidentlyExperimentResources retrieves all evidently.Experiment items from an AWS CloudFormation template
+func (t *Template) GetAllEvidentlyExperimentResources() map[string]*evidently.Experiment {
+ results := map[string]*evidently.Experiment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *evidently.Experiment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEvidentlyExperimentWithName retrieves all evidently.Experiment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEvidentlyExperimentWithName(name string) (*evidently.Experiment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *evidently.Experiment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type evidently.Experiment not found", name)
+}
+
+// GetAllEvidentlyFeatureResources retrieves all evidently.Feature items from an AWS CloudFormation template
+func (t *Template) GetAllEvidentlyFeatureResources() map[string]*evidently.Feature {
+ results := map[string]*evidently.Feature{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *evidently.Feature:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEvidentlyFeatureWithName retrieves all evidently.Feature items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEvidentlyFeatureWithName(name string) (*evidently.Feature, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *evidently.Feature:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type evidently.Feature not found", name)
+}
+
+// GetAllEvidentlyLaunchResources retrieves all evidently.Launch items from an AWS CloudFormation template
+func (t *Template) GetAllEvidentlyLaunchResources() map[string]*evidently.Launch {
+ results := map[string]*evidently.Launch{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *evidently.Launch:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEvidentlyLaunchWithName retrieves all evidently.Launch items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEvidentlyLaunchWithName(name string) (*evidently.Launch, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *evidently.Launch:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type evidently.Launch not found", name)
+}
+
+// GetAllEvidentlyProjectResources retrieves all evidently.Project items from an AWS CloudFormation template
+func (t *Template) GetAllEvidentlyProjectResources() map[string]*evidently.Project {
+ results := map[string]*evidently.Project{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *evidently.Project:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetEvidentlyProjectWithName retrieves all evidently.Project items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetEvidentlyProjectWithName(name string) (*evidently.Project, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *evidently.Project:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type evidently.Project not found", name)
+}
+
+// GetAllFISExperimentTemplateResources retrieves all fis.ExperimentTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllFISExperimentTemplateResources() map[string]*fis.ExperimentTemplate {
+ results := map[string]*fis.ExperimentTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *fis.ExperimentTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFISExperimentTemplateWithName retrieves all fis.ExperimentTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFISExperimentTemplateWithName(name string) (*fis.ExperimentTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *fis.ExperimentTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type fis.ExperimentTemplate not found", name)
+}
+
+// GetAllFMSNotificationChannelResources retrieves all fms.NotificationChannel items from an AWS CloudFormation template
+func (t *Template) GetAllFMSNotificationChannelResources() map[string]*fms.NotificationChannel {
+ results := map[string]*fms.NotificationChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *fms.NotificationChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFMSNotificationChannelWithName retrieves all fms.NotificationChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFMSNotificationChannelWithName(name string) (*fms.NotificationChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *fms.NotificationChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type fms.NotificationChannel not found", name)
+}
+
+// GetAllFMSPolicyResources retrieves all fms.Policy items from an AWS CloudFormation template
+func (t *Template) GetAllFMSPolicyResources() map[string]*fms.Policy {
+ results := map[string]*fms.Policy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *fms.Policy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFMSPolicyWithName retrieves all fms.Policy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFMSPolicyWithName(name string) (*fms.Policy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *fms.Policy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type fms.Policy not found", name)
+}
+
+// GetAllFSxFileSystemResources retrieves all fsx.FileSystem items from an AWS CloudFormation template
+func (t *Template) GetAllFSxFileSystemResources() map[string]*fsx.FileSystem {
+ results := map[string]*fsx.FileSystem{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *fsx.FileSystem:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFSxFileSystemWithName retrieves all fsx.FileSystem items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFSxFileSystemWithName(name string) (*fsx.FileSystem, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *fsx.FileSystem:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type fsx.FileSystem not found", name)
+}
+
+// GetAllFinSpaceEnvironmentResources retrieves all finspace.Environment items from an AWS CloudFormation template
+func (t *Template) GetAllFinSpaceEnvironmentResources() map[string]*finspace.Environment {
+ results := map[string]*finspace.Environment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *finspace.Environment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFinSpaceEnvironmentWithName retrieves all finspace.Environment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFinSpaceEnvironmentWithName(name string) (*finspace.Environment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *finspace.Environment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type finspace.Environment not found", name)
+}
+
+// GetAllFraudDetectorDetectorResources retrieves all frauddetector.Detector items from an AWS CloudFormation template
+func (t *Template) GetAllFraudDetectorDetectorResources() map[string]*frauddetector.Detector {
+ results := map[string]*frauddetector.Detector{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *frauddetector.Detector:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFraudDetectorDetectorWithName retrieves all frauddetector.Detector items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFraudDetectorDetectorWithName(name string) (*frauddetector.Detector, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *frauddetector.Detector:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type frauddetector.Detector not found", name)
+}
+
+// GetAllFraudDetectorEntityTypeResources retrieves all frauddetector.EntityType items from an AWS CloudFormation template
+func (t *Template) GetAllFraudDetectorEntityTypeResources() map[string]*frauddetector.EntityType {
+ results := map[string]*frauddetector.EntityType{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *frauddetector.EntityType:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFraudDetectorEntityTypeWithName retrieves all frauddetector.EntityType items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFraudDetectorEntityTypeWithName(name string) (*frauddetector.EntityType, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *frauddetector.EntityType:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type frauddetector.EntityType not found", name)
+}
+
+// GetAllFraudDetectorEventTypeResources retrieves all frauddetector.EventType items from an AWS CloudFormation template
+func (t *Template) GetAllFraudDetectorEventTypeResources() map[string]*frauddetector.EventType {
+ results := map[string]*frauddetector.EventType{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *frauddetector.EventType:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFraudDetectorEventTypeWithName retrieves all frauddetector.EventType items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFraudDetectorEventTypeWithName(name string) (*frauddetector.EventType, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *frauddetector.EventType:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type frauddetector.EventType not found", name)
+}
+
+// GetAllFraudDetectorLabelResources retrieves all frauddetector.Label items from an AWS CloudFormation template
+func (t *Template) GetAllFraudDetectorLabelResources() map[string]*frauddetector.Label {
+ results := map[string]*frauddetector.Label{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *frauddetector.Label:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFraudDetectorLabelWithName retrieves all frauddetector.Label items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFraudDetectorLabelWithName(name string) (*frauddetector.Label, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *frauddetector.Label:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type frauddetector.Label not found", name)
+}
+
+// GetAllFraudDetectorOutcomeResources retrieves all frauddetector.Outcome items from an AWS CloudFormation template
+func (t *Template) GetAllFraudDetectorOutcomeResources() map[string]*frauddetector.Outcome {
+ results := map[string]*frauddetector.Outcome{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *frauddetector.Outcome:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFraudDetectorOutcomeWithName retrieves all frauddetector.Outcome items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFraudDetectorOutcomeWithName(name string) (*frauddetector.Outcome, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *frauddetector.Outcome:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type frauddetector.Outcome not found", name)
+}
+
+// GetAllFraudDetectorVariableResources retrieves all frauddetector.Variable items from an AWS CloudFormation template
+func (t *Template) GetAllFraudDetectorVariableResources() map[string]*frauddetector.Variable {
+ results := map[string]*frauddetector.Variable{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *frauddetector.Variable:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetFraudDetectorVariableWithName retrieves all frauddetector.Variable items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetFraudDetectorVariableWithName(name string) (*frauddetector.Variable, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *frauddetector.Variable:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type frauddetector.Variable not found", name)
+}
+
+// GetAllGameLiftAliasResources retrieves all gamelift.Alias items from an AWS CloudFormation template
+func (t *Template) GetAllGameLiftAliasResources() map[string]*gamelift.Alias {
+ results := map[string]*gamelift.Alias{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *gamelift.Alias:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGameLiftAliasWithName retrieves all gamelift.Alias items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGameLiftAliasWithName(name string) (*gamelift.Alias, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *gamelift.Alias:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type gamelift.Alias not found", name)
+}
+
+// GetAllGameLiftBuildResources retrieves all gamelift.Build items from an AWS CloudFormation template
+func (t *Template) GetAllGameLiftBuildResources() map[string]*gamelift.Build {
+ results := map[string]*gamelift.Build{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *gamelift.Build:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGameLiftBuildWithName retrieves all gamelift.Build items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGameLiftBuildWithName(name string) (*gamelift.Build, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *gamelift.Build:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type gamelift.Build not found", name)
+}
+
+// GetAllGameLiftFleetResources retrieves all gamelift.Fleet items from an AWS CloudFormation template
+func (t *Template) GetAllGameLiftFleetResources() map[string]*gamelift.Fleet {
+ results := map[string]*gamelift.Fleet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *gamelift.Fleet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGameLiftFleetWithName retrieves all gamelift.Fleet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGameLiftFleetWithName(name string) (*gamelift.Fleet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *gamelift.Fleet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type gamelift.Fleet not found", name)
+}
+
+// GetAllGameLiftGameServerGroupResources retrieves all gamelift.GameServerGroup items from an AWS CloudFormation template
+func (t *Template) GetAllGameLiftGameServerGroupResources() map[string]*gamelift.GameServerGroup {
+ results := map[string]*gamelift.GameServerGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *gamelift.GameServerGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGameLiftGameServerGroupWithName retrieves all gamelift.GameServerGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGameLiftGameServerGroupWithName(name string) (*gamelift.GameServerGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *gamelift.GameServerGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type gamelift.GameServerGroup not found", name)
+}
+
+// GetAllGameLiftGameSessionQueueResources retrieves all gamelift.GameSessionQueue items from an AWS CloudFormation template
+func (t *Template) GetAllGameLiftGameSessionQueueResources() map[string]*gamelift.GameSessionQueue {
+ results := map[string]*gamelift.GameSessionQueue{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *gamelift.GameSessionQueue:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGameLiftGameSessionQueueWithName retrieves all gamelift.GameSessionQueue items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGameLiftGameSessionQueueWithName(name string) (*gamelift.GameSessionQueue, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *gamelift.GameSessionQueue:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type gamelift.GameSessionQueue not found", name)
+}
+
+// GetAllGameLiftMatchmakingConfigurationResources retrieves all gamelift.MatchmakingConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllGameLiftMatchmakingConfigurationResources() map[string]*gamelift.MatchmakingConfiguration {
+ results := map[string]*gamelift.MatchmakingConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *gamelift.MatchmakingConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGameLiftMatchmakingConfigurationWithName retrieves all gamelift.MatchmakingConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGameLiftMatchmakingConfigurationWithName(name string) (*gamelift.MatchmakingConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *gamelift.MatchmakingConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type gamelift.MatchmakingConfiguration not found", name)
+}
+
+// GetAllGameLiftMatchmakingRuleSetResources retrieves all gamelift.MatchmakingRuleSet items from an AWS CloudFormation template
+func (t *Template) GetAllGameLiftMatchmakingRuleSetResources() map[string]*gamelift.MatchmakingRuleSet {
+ results := map[string]*gamelift.MatchmakingRuleSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *gamelift.MatchmakingRuleSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGameLiftMatchmakingRuleSetWithName retrieves all gamelift.MatchmakingRuleSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGameLiftMatchmakingRuleSetWithName(name string) (*gamelift.MatchmakingRuleSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *gamelift.MatchmakingRuleSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type gamelift.MatchmakingRuleSet not found", name)
+}
+
+// GetAllGameLiftScriptResources retrieves all gamelift.Script items from an AWS CloudFormation template
+func (t *Template) GetAllGameLiftScriptResources() map[string]*gamelift.Script {
+ results := map[string]*gamelift.Script{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *gamelift.Script:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGameLiftScriptWithName retrieves all gamelift.Script items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGameLiftScriptWithName(name string) (*gamelift.Script, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *gamelift.Script:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type gamelift.Script not found", name)
+}
+
+// GetAllGlobalAcceleratorAcceleratorResources retrieves all globalaccelerator.Accelerator items from an AWS CloudFormation template
+func (t *Template) GetAllGlobalAcceleratorAcceleratorResources() map[string]*globalaccelerator.Accelerator {
+ results := map[string]*globalaccelerator.Accelerator{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *globalaccelerator.Accelerator:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlobalAcceleratorAcceleratorWithName retrieves all globalaccelerator.Accelerator items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlobalAcceleratorAcceleratorWithName(name string) (*globalaccelerator.Accelerator, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *globalaccelerator.Accelerator:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type globalaccelerator.Accelerator not found", name)
+}
+
+// GetAllGlobalAcceleratorEndpointGroupResources retrieves all globalaccelerator.EndpointGroup items from an AWS CloudFormation template
+func (t *Template) GetAllGlobalAcceleratorEndpointGroupResources() map[string]*globalaccelerator.EndpointGroup {
+ results := map[string]*globalaccelerator.EndpointGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *globalaccelerator.EndpointGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlobalAcceleratorEndpointGroupWithName retrieves all globalaccelerator.EndpointGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlobalAcceleratorEndpointGroupWithName(name string) (*globalaccelerator.EndpointGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *globalaccelerator.EndpointGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type globalaccelerator.EndpointGroup not found", name)
+}
+
+// GetAllGlobalAcceleratorListenerResources retrieves all globalaccelerator.Listener items from an AWS CloudFormation template
+func (t *Template) GetAllGlobalAcceleratorListenerResources() map[string]*globalaccelerator.Listener {
+ results := map[string]*globalaccelerator.Listener{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *globalaccelerator.Listener:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlobalAcceleratorListenerWithName retrieves all globalaccelerator.Listener items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlobalAcceleratorListenerWithName(name string) (*globalaccelerator.Listener, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *globalaccelerator.Listener:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type globalaccelerator.Listener not found", name)
+}
+
+// GetAllGlueClassifierResources retrieves all glue.Classifier items from an AWS CloudFormation template
+func (t *Template) GetAllGlueClassifierResources() map[string]*glue.Classifier {
+ results := map[string]*glue.Classifier{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Classifier:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueClassifierWithName retrieves all glue.Classifier items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueClassifierWithName(name string) (*glue.Classifier, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Classifier:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Classifier not found", name)
+}
+
+// GetAllGlueConnectionResources retrieves all glue.Connection items from an AWS CloudFormation template
+func (t *Template) GetAllGlueConnectionResources() map[string]*glue.Connection {
+ results := map[string]*glue.Connection{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Connection:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueConnectionWithName retrieves all glue.Connection items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueConnectionWithName(name string) (*glue.Connection, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Connection:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Connection not found", name)
+}
+
+// GetAllGlueCrawlerResources retrieves all glue.Crawler items from an AWS CloudFormation template
+func (t *Template) GetAllGlueCrawlerResources() map[string]*glue.Crawler {
+ results := map[string]*glue.Crawler{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Crawler:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueCrawlerWithName retrieves all glue.Crawler items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueCrawlerWithName(name string) (*glue.Crawler, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Crawler:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Crawler not found", name)
+}
+
+// GetAllGlueDataCatalogEncryptionSettingsResources retrieves all glue.DataCatalogEncryptionSettings items from an AWS CloudFormation template
+func (t *Template) GetAllGlueDataCatalogEncryptionSettingsResources() map[string]*glue.DataCatalogEncryptionSettings {
+ results := map[string]*glue.DataCatalogEncryptionSettings{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.DataCatalogEncryptionSettings:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueDataCatalogEncryptionSettingsWithName retrieves all glue.DataCatalogEncryptionSettings items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueDataCatalogEncryptionSettingsWithName(name string) (*glue.DataCatalogEncryptionSettings, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.DataCatalogEncryptionSettings:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.DataCatalogEncryptionSettings not found", name)
+}
+
+// GetAllGlueDatabaseResources retrieves all glue.Database items from an AWS CloudFormation template
+func (t *Template) GetAllGlueDatabaseResources() map[string]*glue.Database {
+ results := map[string]*glue.Database{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Database:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueDatabaseWithName retrieves all glue.Database items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueDatabaseWithName(name string) (*glue.Database, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Database:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Database not found", name)
+}
+
+// GetAllGlueDevEndpointResources retrieves all glue.DevEndpoint items from an AWS CloudFormation template
+func (t *Template) GetAllGlueDevEndpointResources() map[string]*glue.DevEndpoint {
+ results := map[string]*glue.DevEndpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.DevEndpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueDevEndpointWithName retrieves all glue.DevEndpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueDevEndpointWithName(name string) (*glue.DevEndpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.DevEndpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.DevEndpoint not found", name)
+}
+
+// GetAllGlueJobResources retrieves all glue.Job items from an AWS CloudFormation template
+func (t *Template) GetAllGlueJobResources() map[string]*glue.Job {
+ results := map[string]*glue.Job{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Job:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueJobWithName retrieves all glue.Job items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueJobWithName(name string) (*glue.Job, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Job:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Job not found", name)
+}
+
+// GetAllGlueMLTransformResources retrieves all glue.MLTransform items from an AWS CloudFormation template
+func (t *Template) GetAllGlueMLTransformResources() map[string]*glue.MLTransform {
+ results := map[string]*glue.MLTransform{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.MLTransform:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueMLTransformWithName retrieves all glue.MLTransform items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueMLTransformWithName(name string) (*glue.MLTransform, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.MLTransform:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.MLTransform not found", name)
+}
+
+// GetAllGluePartitionResources retrieves all glue.Partition items from an AWS CloudFormation template
+func (t *Template) GetAllGluePartitionResources() map[string]*glue.Partition {
+ results := map[string]*glue.Partition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Partition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGluePartitionWithName retrieves all glue.Partition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGluePartitionWithName(name string) (*glue.Partition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Partition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Partition not found", name)
+}
+
+// GetAllGlueRegistryResources retrieves all glue.Registry items from an AWS CloudFormation template
+func (t *Template) GetAllGlueRegistryResources() map[string]*glue.Registry {
+ results := map[string]*glue.Registry{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Registry:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueRegistryWithName retrieves all glue.Registry items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueRegistryWithName(name string) (*glue.Registry, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Registry:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Registry not found", name)
+}
+
+// GetAllGlueSchemaResources retrieves all glue.Schema items from an AWS CloudFormation template
+func (t *Template) GetAllGlueSchemaResources() map[string]*glue.Schema {
+ results := map[string]*glue.Schema{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Schema:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueSchemaWithName retrieves all glue.Schema items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueSchemaWithName(name string) (*glue.Schema, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Schema:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Schema not found", name)
+}
+
+// GetAllGlueSchemaVersionResources retrieves all glue.SchemaVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGlueSchemaVersionResources() map[string]*glue.SchemaVersion {
+ results := map[string]*glue.SchemaVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.SchemaVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueSchemaVersionWithName retrieves all glue.SchemaVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueSchemaVersionWithName(name string) (*glue.SchemaVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.SchemaVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.SchemaVersion not found", name)
+}
+
+// GetAllGlueSchemaVersionMetadataResources retrieves all glue.SchemaVersionMetadata items from an AWS CloudFormation template
+func (t *Template) GetAllGlueSchemaVersionMetadataResources() map[string]*glue.SchemaVersionMetadata {
+ results := map[string]*glue.SchemaVersionMetadata{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.SchemaVersionMetadata:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueSchemaVersionMetadataWithName retrieves all glue.SchemaVersionMetadata items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueSchemaVersionMetadataWithName(name string) (*glue.SchemaVersionMetadata, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.SchemaVersionMetadata:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.SchemaVersionMetadata not found", name)
+}
+
+// GetAllGlueSecurityConfigurationResources retrieves all glue.SecurityConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllGlueSecurityConfigurationResources() map[string]*glue.SecurityConfiguration {
+ results := map[string]*glue.SecurityConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.SecurityConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueSecurityConfigurationWithName retrieves all glue.SecurityConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueSecurityConfigurationWithName(name string) (*glue.SecurityConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.SecurityConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.SecurityConfiguration not found", name)
+}
+
+// GetAllGlueTableResources retrieves all glue.Table items from an AWS CloudFormation template
+func (t *Template) GetAllGlueTableResources() map[string]*glue.Table {
+ results := map[string]*glue.Table{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Table:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueTableWithName retrieves all glue.Table items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueTableWithName(name string) (*glue.Table, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Table:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Table not found", name)
+}
+
+// GetAllGlueTriggerResources retrieves all glue.Trigger items from an AWS CloudFormation template
+func (t *Template) GetAllGlueTriggerResources() map[string]*glue.Trigger {
+ results := map[string]*glue.Trigger{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Trigger:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueTriggerWithName retrieves all glue.Trigger items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueTriggerWithName(name string) (*glue.Trigger, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Trigger:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Trigger not found", name)
+}
+
+// GetAllGlueWorkflowResources retrieves all glue.Workflow items from an AWS CloudFormation template
+func (t *Template) GetAllGlueWorkflowResources() map[string]*glue.Workflow {
+ results := map[string]*glue.Workflow{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *glue.Workflow:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGlueWorkflowWithName retrieves all glue.Workflow items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGlueWorkflowWithName(name string) (*glue.Workflow, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *glue.Workflow:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type glue.Workflow not found", name)
+}
+
+// GetAllGreengrassConnectorDefinitionResources retrieves all greengrass.ConnectorDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassConnectorDefinitionResources() map[string]*greengrass.ConnectorDefinition {
+ results := map[string]*greengrass.ConnectorDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.ConnectorDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassConnectorDefinitionWithName retrieves all greengrass.ConnectorDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassConnectorDefinitionWithName(name string) (*greengrass.ConnectorDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.ConnectorDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.ConnectorDefinition not found", name)
+}
+
+// GetAllGreengrassConnectorDefinitionVersionResources retrieves all greengrass.ConnectorDefinitionVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassConnectorDefinitionVersionResources() map[string]*greengrass.ConnectorDefinitionVersion {
+ results := map[string]*greengrass.ConnectorDefinitionVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.ConnectorDefinitionVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassConnectorDefinitionVersionWithName retrieves all greengrass.ConnectorDefinitionVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassConnectorDefinitionVersionWithName(name string) (*greengrass.ConnectorDefinitionVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.ConnectorDefinitionVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.ConnectorDefinitionVersion not found", name)
+}
+
+// GetAllGreengrassCoreDefinitionResources retrieves all greengrass.CoreDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassCoreDefinitionResources() map[string]*greengrass.CoreDefinition {
+ results := map[string]*greengrass.CoreDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.CoreDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassCoreDefinitionWithName retrieves all greengrass.CoreDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassCoreDefinitionWithName(name string) (*greengrass.CoreDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.CoreDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.CoreDefinition not found", name)
+}
+
+// GetAllGreengrassCoreDefinitionVersionResources retrieves all greengrass.CoreDefinitionVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassCoreDefinitionVersionResources() map[string]*greengrass.CoreDefinitionVersion {
+ results := map[string]*greengrass.CoreDefinitionVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.CoreDefinitionVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassCoreDefinitionVersionWithName retrieves all greengrass.CoreDefinitionVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassCoreDefinitionVersionWithName(name string) (*greengrass.CoreDefinitionVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.CoreDefinitionVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.CoreDefinitionVersion not found", name)
+}
+
+// GetAllGreengrassDeviceDefinitionResources retrieves all greengrass.DeviceDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassDeviceDefinitionResources() map[string]*greengrass.DeviceDefinition {
+ results := map[string]*greengrass.DeviceDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.DeviceDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassDeviceDefinitionWithName retrieves all greengrass.DeviceDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassDeviceDefinitionWithName(name string) (*greengrass.DeviceDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.DeviceDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.DeviceDefinition not found", name)
+}
+
+// GetAllGreengrassDeviceDefinitionVersionResources retrieves all greengrass.DeviceDefinitionVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassDeviceDefinitionVersionResources() map[string]*greengrass.DeviceDefinitionVersion {
+ results := map[string]*greengrass.DeviceDefinitionVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.DeviceDefinitionVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassDeviceDefinitionVersionWithName retrieves all greengrass.DeviceDefinitionVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassDeviceDefinitionVersionWithName(name string) (*greengrass.DeviceDefinitionVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.DeviceDefinitionVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.DeviceDefinitionVersion not found", name)
+}
+
+// GetAllGreengrassFunctionDefinitionResources retrieves all greengrass.FunctionDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassFunctionDefinitionResources() map[string]*greengrass.FunctionDefinition {
+ results := map[string]*greengrass.FunctionDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.FunctionDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassFunctionDefinitionWithName retrieves all greengrass.FunctionDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassFunctionDefinitionWithName(name string) (*greengrass.FunctionDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.FunctionDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.FunctionDefinition not found", name)
+}
+
+// GetAllGreengrassFunctionDefinitionVersionResources retrieves all greengrass.FunctionDefinitionVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassFunctionDefinitionVersionResources() map[string]*greengrass.FunctionDefinitionVersion {
+ results := map[string]*greengrass.FunctionDefinitionVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.FunctionDefinitionVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassFunctionDefinitionVersionWithName retrieves all greengrass.FunctionDefinitionVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassFunctionDefinitionVersionWithName(name string) (*greengrass.FunctionDefinitionVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.FunctionDefinitionVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.FunctionDefinitionVersion not found", name)
+}
+
+// GetAllGreengrassGroupResources retrieves all greengrass.Group items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassGroupResources() map[string]*greengrass.Group {
+ results := map[string]*greengrass.Group{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.Group:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassGroupWithName retrieves all greengrass.Group items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassGroupWithName(name string) (*greengrass.Group, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.Group:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.Group not found", name)
+}
+
+// GetAllGreengrassGroupVersionResources retrieves all greengrass.GroupVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassGroupVersionResources() map[string]*greengrass.GroupVersion {
+ results := map[string]*greengrass.GroupVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.GroupVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassGroupVersionWithName retrieves all greengrass.GroupVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassGroupVersionWithName(name string) (*greengrass.GroupVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.GroupVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.GroupVersion not found", name)
+}
+
+// GetAllGreengrassLoggerDefinitionResources retrieves all greengrass.LoggerDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassLoggerDefinitionResources() map[string]*greengrass.LoggerDefinition {
+ results := map[string]*greengrass.LoggerDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.LoggerDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassLoggerDefinitionWithName retrieves all greengrass.LoggerDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassLoggerDefinitionWithName(name string) (*greengrass.LoggerDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.LoggerDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.LoggerDefinition not found", name)
+}
+
+// GetAllGreengrassLoggerDefinitionVersionResources retrieves all greengrass.LoggerDefinitionVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassLoggerDefinitionVersionResources() map[string]*greengrass.LoggerDefinitionVersion {
+ results := map[string]*greengrass.LoggerDefinitionVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.LoggerDefinitionVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassLoggerDefinitionVersionWithName retrieves all greengrass.LoggerDefinitionVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassLoggerDefinitionVersionWithName(name string) (*greengrass.LoggerDefinitionVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.LoggerDefinitionVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.LoggerDefinitionVersion not found", name)
+}
+
+// GetAllGreengrassResourceDefinitionResources retrieves all greengrass.ResourceDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassResourceDefinitionResources() map[string]*greengrass.ResourceDefinition {
+ results := map[string]*greengrass.ResourceDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.ResourceDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassResourceDefinitionWithName retrieves all greengrass.ResourceDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassResourceDefinitionWithName(name string) (*greengrass.ResourceDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.ResourceDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.ResourceDefinition not found", name)
+}
+
+// GetAllGreengrassResourceDefinitionVersionResources retrieves all greengrass.ResourceDefinitionVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassResourceDefinitionVersionResources() map[string]*greengrass.ResourceDefinitionVersion {
+ results := map[string]*greengrass.ResourceDefinitionVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.ResourceDefinitionVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassResourceDefinitionVersionWithName retrieves all greengrass.ResourceDefinitionVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassResourceDefinitionVersionWithName(name string) (*greengrass.ResourceDefinitionVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.ResourceDefinitionVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.ResourceDefinitionVersion not found", name)
+}
+
+// GetAllGreengrassSubscriptionDefinitionResources retrieves all greengrass.SubscriptionDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassSubscriptionDefinitionResources() map[string]*greengrass.SubscriptionDefinition {
+ results := map[string]*greengrass.SubscriptionDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.SubscriptionDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassSubscriptionDefinitionWithName retrieves all greengrass.SubscriptionDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassSubscriptionDefinitionWithName(name string) (*greengrass.SubscriptionDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.SubscriptionDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.SubscriptionDefinition not found", name)
+}
+
+// GetAllGreengrassSubscriptionDefinitionVersionResources retrieves all greengrass.SubscriptionDefinitionVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassSubscriptionDefinitionVersionResources() map[string]*greengrass.SubscriptionDefinitionVersion {
+ results := map[string]*greengrass.SubscriptionDefinitionVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrass.SubscriptionDefinitionVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassSubscriptionDefinitionVersionWithName retrieves all greengrass.SubscriptionDefinitionVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassSubscriptionDefinitionVersionWithName(name string) (*greengrass.SubscriptionDefinitionVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrass.SubscriptionDefinitionVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrass.SubscriptionDefinitionVersion not found", name)
+}
+
+// GetAllGreengrassV2ComponentVersionResources retrieves all greengrassv2.ComponentVersion items from an AWS CloudFormation template
+func (t *Template) GetAllGreengrassV2ComponentVersionResources() map[string]*greengrassv2.ComponentVersion {
+ results := map[string]*greengrassv2.ComponentVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *greengrassv2.ComponentVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGreengrassV2ComponentVersionWithName retrieves all greengrassv2.ComponentVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGreengrassV2ComponentVersionWithName(name string) (*greengrassv2.ComponentVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *greengrassv2.ComponentVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type greengrassv2.ComponentVersion not found", name)
+}
+
+// GetAllGroundStationConfigResources retrieves all groundstation.Config items from an AWS CloudFormation template
+func (t *Template) GetAllGroundStationConfigResources() map[string]*groundstation.Config {
+ results := map[string]*groundstation.Config{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *groundstation.Config:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGroundStationConfigWithName retrieves all groundstation.Config items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGroundStationConfigWithName(name string) (*groundstation.Config, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *groundstation.Config:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type groundstation.Config not found", name)
+}
+
+// GetAllGroundStationDataflowEndpointGroupResources retrieves all groundstation.DataflowEndpointGroup items from an AWS CloudFormation template
+func (t *Template) GetAllGroundStationDataflowEndpointGroupResources() map[string]*groundstation.DataflowEndpointGroup {
+ results := map[string]*groundstation.DataflowEndpointGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *groundstation.DataflowEndpointGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGroundStationDataflowEndpointGroupWithName retrieves all groundstation.DataflowEndpointGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGroundStationDataflowEndpointGroupWithName(name string) (*groundstation.DataflowEndpointGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *groundstation.DataflowEndpointGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type groundstation.DataflowEndpointGroup not found", name)
+}
+
+// GetAllGroundStationMissionProfileResources retrieves all groundstation.MissionProfile items from an AWS CloudFormation template
+func (t *Template) GetAllGroundStationMissionProfileResources() map[string]*groundstation.MissionProfile {
+ results := map[string]*groundstation.MissionProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *groundstation.MissionProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGroundStationMissionProfileWithName retrieves all groundstation.MissionProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGroundStationMissionProfileWithName(name string) (*groundstation.MissionProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *groundstation.MissionProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type groundstation.MissionProfile not found", name)
+}
+
+// GetAllGuardDutyDetectorResources retrieves all guardduty.Detector items from an AWS CloudFormation template
+func (t *Template) GetAllGuardDutyDetectorResources() map[string]*guardduty.Detector {
+ results := map[string]*guardduty.Detector{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *guardduty.Detector:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGuardDutyDetectorWithName retrieves all guardduty.Detector items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGuardDutyDetectorWithName(name string) (*guardduty.Detector, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *guardduty.Detector:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type guardduty.Detector not found", name)
+}
+
+// GetAllGuardDutyFilterResources retrieves all guardduty.Filter items from an AWS CloudFormation template
+func (t *Template) GetAllGuardDutyFilterResources() map[string]*guardduty.Filter {
+ results := map[string]*guardduty.Filter{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *guardduty.Filter:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGuardDutyFilterWithName retrieves all guardduty.Filter items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGuardDutyFilterWithName(name string) (*guardduty.Filter, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *guardduty.Filter:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type guardduty.Filter not found", name)
+}
+
+// GetAllGuardDutyIPSetResources retrieves all guardduty.IPSet items from an AWS CloudFormation template
+func (t *Template) GetAllGuardDutyIPSetResources() map[string]*guardduty.IPSet {
+ results := map[string]*guardduty.IPSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *guardduty.IPSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGuardDutyIPSetWithName retrieves all guardduty.IPSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGuardDutyIPSetWithName(name string) (*guardduty.IPSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *guardduty.IPSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type guardduty.IPSet not found", name)
+}
+
+// GetAllGuardDutyMasterResources retrieves all guardduty.Master items from an AWS CloudFormation template
+func (t *Template) GetAllGuardDutyMasterResources() map[string]*guardduty.Master {
+ results := map[string]*guardduty.Master{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *guardduty.Master:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGuardDutyMasterWithName retrieves all guardduty.Master items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGuardDutyMasterWithName(name string) (*guardduty.Master, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *guardduty.Master:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type guardduty.Master not found", name)
+}
+
+// GetAllGuardDutyMemberResources retrieves all guardduty.Member items from an AWS CloudFormation template
+func (t *Template) GetAllGuardDutyMemberResources() map[string]*guardduty.Member {
+ results := map[string]*guardduty.Member{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *guardduty.Member:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGuardDutyMemberWithName retrieves all guardduty.Member items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGuardDutyMemberWithName(name string) (*guardduty.Member, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *guardduty.Member:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type guardduty.Member not found", name)
+}
+
+// GetAllGuardDutyThreatIntelSetResources retrieves all guardduty.ThreatIntelSet items from an AWS CloudFormation template
+func (t *Template) GetAllGuardDutyThreatIntelSetResources() map[string]*guardduty.ThreatIntelSet {
+ results := map[string]*guardduty.ThreatIntelSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *guardduty.ThreatIntelSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetGuardDutyThreatIntelSetWithName retrieves all guardduty.ThreatIntelSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetGuardDutyThreatIntelSetWithName(name string) (*guardduty.ThreatIntelSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *guardduty.ThreatIntelSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type guardduty.ThreatIntelSet not found", name)
+}
+
+// GetAllHealthLakeFHIRDatastoreResources retrieves all healthlake.FHIRDatastore items from an AWS CloudFormation template
+func (t *Template) GetAllHealthLakeFHIRDatastoreResources() map[string]*healthlake.FHIRDatastore {
+ results := map[string]*healthlake.FHIRDatastore{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *healthlake.FHIRDatastore:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetHealthLakeFHIRDatastoreWithName retrieves all healthlake.FHIRDatastore items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetHealthLakeFHIRDatastoreWithName(name string) (*healthlake.FHIRDatastore, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *healthlake.FHIRDatastore:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type healthlake.FHIRDatastore not found", name)
+}
+
+// GetAllIAMAccessKeyResources retrieves all iam.AccessKey items from an AWS CloudFormation template
+func (t *Template) GetAllIAMAccessKeyResources() map[string]*iam.AccessKey {
+ results := map[string]*iam.AccessKey{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.AccessKey:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMAccessKeyWithName retrieves all iam.AccessKey items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMAccessKeyWithName(name string) (*iam.AccessKey, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.AccessKey:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.AccessKey not found", name)
+}
+
+// GetAllIAMGroupResources retrieves all iam.Group items from an AWS CloudFormation template
+func (t *Template) GetAllIAMGroupResources() map[string]*iam.Group {
+ results := map[string]*iam.Group{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.Group:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMGroupWithName retrieves all iam.Group items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMGroupWithName(name string) (*iam.Group, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.Group:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.Group not found", name)
+}
+
+// GetAllIAMInstanceProfileResources retrieves all iam.InstanceProfile items from an AWS CloudFormation template
+func (t *Template) GetAllIAMInstanceProfileResources() map[string]*iam.InstanceProfile {
+ results := map[string]*iam.InstanceProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.InstanceProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMInstanceProfileWithName retrieves all iam.InstanceProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMInstanceProfileWithName(name string) (*iam.InstanceProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.InstanceProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.InstanceProfile not found", name)
+}
+
+// GetAllIAMManagedPolicyResources retrieves all iam.ManagedPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllIAMManagedPolicyResources() map[string]*iam.ManagedPolicy {
+ results := map[string]*iam.ManagedPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.ManagedPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMManagedPolicyWithName retrieves all iam.ManagedPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMManagedPolicyWithName(name string) (*iam.ManagedPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.ManagedPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.ManagedPolicy not found", name)
+}
+
+// GetAllIAMOIDCProviderResources retrieves all iam.OIDCProvider items from an AWS CloudFormation template
+func (t *Template) GetAllIAMOIDCProviderResources() map[string]*iam.OIDCProvider {
+ results := map[string]*iam.OIDCProvider{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.OIDCProvider:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMOIDCProviderWithName retrieves all iam.OIDCProvider items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMOIDCProviderWithName(name string) (*iam.OIDCProvider, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.OIDCProvider:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.OIDCProvider not found", name)
+}
+
+// GetAllIAMPolicyResources retrieves all iam.Policy items from an AWS CloudFormation template
+func (t *Template) GetAllIAMPolicyResources() map[string]*iam.Policy {
+ results := map[string]*iam.Policy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.Policy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMPolicyWithName retrieves all iam.Policy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMPolicyWithName(name string) (*iam.Policy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.Policy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.Policy not found", name)
+}
+
+// GetAllIAMRoleResources retrieves all iam.Role items from an AWS CloudFormation template
+func (t *Template) GetAllIAMRoleResources() map[string]*iam.Role {
+ results := map[string]*iam.Role{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.Role:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMRoleWithName retrieves all iam.Role items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMRoleWithName(name string) (*iam.Role, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.Role:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.Role not found", name)
+}
+
+// GetAllIAMSAMLProviderResources retrieves all iam.SAMLProvider items from an AWS CloudFormation template
+func (t *Template) GetAllIAMSAMLProviderResources() map[string]*iam.SAMLProvider {
+ results := map[string]*iam.SAMLProvider{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.SAMLProvider:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMSAMLProviderWithName retrieves all iam.SAMLProvider items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMSAMLProviderWithName(name string) (*iam.SAMLProvider, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.SAMLProvider:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.SAMLProvider not found", name)
+}
+
+// GetAllIAMServerCertificateResources retrieves all iam.ServerCertificate items from an AWS CloudFormation template
+func (t *Template) GetAllIAMServerCertificateResources() map[string]*iam.ServerCertificate {
+ results := map[string]*iam.ServerCertificate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.ServerCertificate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMServerCertificateWithName retrieves all iam.ServerCertificate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMServerCertificateWithName(name string) (*iam.ServerCertificate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.ServerCertificate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.ServerCertificate not found", name)
+}
+
+// GetAllIAMServiceLinkedRoleResources retrieves all iam.ServiceLinkedRole items from an AWS CloudFormation template
+func (t *Template) GetAllIAMServiceLinkedRoleResources() map[string]*iam.ServiceLinkedRole {
+ results := map[string]*iam.ServiceLinkedRole{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.ServiceLinkedRole:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMServiceLinkedRoleWithName retrieves all iam.ServiceLinkedRole items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMServiceLinkedRoleWithName(name string) (*iam.ServiceLinkedRole, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.ServiceLinkedRole:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.ServiceLinkedRole not found", name)
+}
+
+// GetAllIAMUserResources retrieves all iam.User items from an AWS CloudFormation template
+func (t *Template) GetAllIAMUserResources() map[string]*iam.User {
+ results := map[string]*iam.User{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.User:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMUserWithName retrieves all iam.User items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMUserWithName(name string) (*iam.User, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.User:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.User not found", name)
+}
+
+// GetAllIAMUserToGroupAdditionResources retrieves all iam.UserToGroupAddition items from an AWS CloudFormation template
+func (t *Template) GetAllIAMUserToGroupAdditionResources() map[string]*iam.UserToGroupAddition {
+ results := map[string]*iam.UserToGroupAddition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.UserToGroupAddition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMUserToGroupAdditionWithName retrieves all iam.UserToGroupAddition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMUserToGroupAdditionWithName(name string) (*iam.UserToGroupAddition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.UserToGroupAddition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.UserToGroupAddition not found", name)
+}
+
+// GetAllIAMVirtualMFADeviceResources retrieves all iam.VirtualMFADevice items from an AWS CloudFormation template
+func (t *Template) GetAllIAMVirtualMFADeviceResources() map[string]*iam.VirtualMFADevice {
+ results := map[string]*iam.VirtualMFADevice{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iam.VirtualMFADevice:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIAMVirtualMFADeviceWithName retrieves all iam.VirtualMFADevice items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIAMVirtualMFADeviceWithName(name string) (*iam.VirtualMFADevice, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iam.VirtualMFADevice:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iam.VirtualMFADevice not found", name)
+}
+
+// GetAllIVSChannelResources retrieves all ivs.Channel items from an AWS CloudFormation template
+func (t *Template) GetAllIVSChannelResources() map[string]*ivs.Channel {
+ results := map[string]*ivs.Channel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ivs.Channel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIVSChannelWithName retrieves all ivs.Channel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIVSChannelWithName(name string) (*ivs.Channel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ivs.Channel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ivs.Channel not found", name)
+}
+
+// GetAllIVSPlaybackKeyPairResources retrieves all ivs.PlaybackKeyPair items from an AWS CloudFormation template
+func (t *Template) GetAllIVSPlaybackKeyPairResources() map[string]*ivs.PlaybackKeyPair {
+ results := map[string]*ivs.PlaybackKeyPair{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ivs.PlaybackKeyPair:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIVSPlaybackKeyPairWithName retrieves all ivs.PlaybackKeyPair items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIVSPlaybackKeyPairWithName(name string) (*ivs.PlaybackKeyPair, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ivs.PlaybackKeyPair:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ivs.PlaybackKeyPair not found", name)
+}
+
+// GetAllIVSRecordingConfigurationResources retrieves all ivs.RecordingConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllIVSRecordingConfigurationResources() map[string]*ivs.RecordingConfiguration {
+ results := map[string]*ivs.RecordingConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ivs.RecordingConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIVSRecordingConfigurationWithName retrieves all ivs.RecordingConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIVSRecordingConfigurationWithName(name string) (*ivs.RecordingConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ivs.RecordingConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ivs.RecordingConfiguration not found", name)
+}
+
+// GetAllIVSStreamKeyResources retrieves all ivs.StreamKey items from an AWS CloudFormation template
+func (t *Template) GetAllIVSStreamKeyResources() map[string]*ivs.StreamKey {
+ results := map[string]*ivs.StreamKey{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ivs.StreamKey:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIVSStreamKeyWithName retrieves all ivs.StreamKey items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIVSStreamKeyWithName(name string) (*ivs.StreamKey, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ivs.StreamKey:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ivs.StreamKey not found", name)
+}
+
+// GetAllImageBuilderComponentResources retrieves all imagebuilder.Component items from an AWS CloudFormation template
+func (t *Template) GetAllImageBuilderComponentResources() map[string]*imagebuilder.Component {
+ results := map[string]*imagebuilder.Component{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *imagebuilder.Component:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetImageBuilderComponentWithName retrieves all imagebuilder.Component items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetImageBuilderComponentWithName(name string) (*imagebuilder.Component, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *imagebuilder.Component:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type imagebuilder.Component not found", name)
+}
+
+// GetAllImageBuilderContainerRecipeResources retrieves all imagebuilder.ContainerRecipe items from an AWS CloudFormation template
+func (t *Template) GetAllImageBuilderContainerRecipeResources() map[string]*imagebuilder.ContainerRecipe {
+ results := map[string]*imagebuilder.ContainerRecipe{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *imagebuilder.ContainerRecipe:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetImageBuilderContainerRecipeWithName retrieves all imagebuilder.ContainerRecipe items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetImageBuilderContainerRecipeWithName(name string) (*imagebuilder.ContainerRecipe, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *imagebuilder.ContainerRecipe:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type imagebuilder.ContainerRecipe not found", name)
+}
+
+// GetAllImageBuilderDistributionConfigurationResources retrieves all imagebuilder.DistributionConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllImageBuilderDistributionConfigurationResources() map[string]*imagebuilder.DistributionConfiguration {
+ results := map[string]*imagebuilder.DistributionConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *imagebuilder.DistributionConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetImageBuilderDistributionConfigurationWithName retrieves all imagebuilder.DistributionConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetImageBuilderDistributionConfigurationWithName(name string) (*imagebuilder.DistributionConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *imagebuilder.DistributionConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type imagebuilder.DistributionConfiguration not found", name)
+}
+
+// GetAllImageBuilderImageResources retrieves all imagebuilder.Image items from an AWS CloudFormation template
+func (t *Template) GetAllImageBuilderImageResources() map[string]*imagebuilder.Image {
+ results := map[string]*imagebuilder.Image{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *imagebuilder.Image:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetImageBuilderImageWithName retrieves all imagebuilder.Image items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetImageBuilderImageWithName(name string) (*imagebuilder.Image, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *imagebuilder.Image:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type imagebuilder.Image not found", name)
+}
+
+// GetAllImageBuilderImagePipelineResources retrieves all imagebuilder.ImagePipeline items from an AWS CloudFormation template
+func (t *Template) GetAllImageBuilderImagePipelineResources() map[string]*imagebuilder.ImagePipeline {
+ results := map[string]*imagebuilder.ImagePipeline{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *imagebuilder.ImagePipeline:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetImageBuilderImagePipelineWithName retrieves all imagebuilder.ImagePipeline items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetImageBuilderImagePipelineWithName(name string) (*imagebuilder.ImagePipeline, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *imagebuilder.ImagePipeline:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type imagebuilder.ImagePipeline not found", name)
+}
+
+// GetAllImageBuilderImageRecipeResources retrieves all imagebuilder.ImageRecipe items from an AWS CloudFormation template
+func (t *Template) GetAllImageBuilderImageRecipeResources() map[string]*imagebuilder.ImageRecipe {
+ results := map[string]*imagebuilder.ImageRecipe{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *imagebuilder.ImageRecipe:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetImageBuilderImageRecipeWithName retrieves all imagebuilder.ImageRecipe items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetImageBuilderImageRecipeWithName(name string) (*imagebuilder.ImageRecipe, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *imagebuilder.ImageRecipe:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type imagebuilder.ImageRecipe not found", name)
+}
+
+// GetAllImageBuilderInfrastructureConfigurationResources retrieves all imagebuilder.InfrastructureConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllImageBuilderInfrastructureConfigurationResources() map[string]*imagebuilder.InfrastructureConfiguration {
+ results := map[string]*imagebuilder.InfrastructureConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *imagebuilder.InfrastructureConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetImageBuilderInfrastructureConfigurationWithName retrieves all imagebuilder.InfrastructureConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetImageBuilderInfrastructureConfigurationWithName(name string) (*imagebuilder.InfrastructureConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *imagebuilder.InfrastructureConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type imagebuilder.InfrastructureConfiguration not found", name)
+}
+
+// GetAllInspectorAssessmentTargetResources retrieves all inspector.AssessmentTarget items from an AWS CloudFormation template
+func (t *Template) GetAllInspectorAssessmentTargetResources() map[string]*inspector.AssessmentTarget {
+ results := map[string]*inspector.AssessmentTarget{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *inspector.AssessmentTarget:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetInspectorAssessmentTargetWithName retrieves all inspector.AssessmentTarget items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetInspectorAssessmentTargetWithName(name string) (*inspector.AssessmentTarget, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *inspector.AssessmentTarget:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type inspector.AssessmentTarget not found", name)
+}
+
+// GetAllInspectorAssessmentTemplateResources retrieves all inspector.AssessmentTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllInspectorAssessmentTemplateResources() map[string]*inspector.AssessmentTemplate {
+ results := map[string]*inspector.AssessmentTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *inspector.AssessmentTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetInspectorAssessmentTemplateWithName retrieves all inspector.AssessmentTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetInspectorAssessmentTemplateWithName(name string) (*inspector.AssessmentTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *inspector.AssessmentTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type inspector.AssessmentTemplate not found", name)
+}
+
+// GetAllInspectorResourceGroupResources retrieves all inspector.ResourceGroup items from an AWS CloudFormation template
+func (t *Template) GetAllInspectorResourceGroupResources() map[string]*inspector.ResourceGroup {
+ results := map[string]*inspector.ResourceGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *inspector.ResourceGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetInspectorResourceGroupWithName retrieves all inspector.ResourceGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetInspectorResourceGroupWithName(name string) (*inspector.ResourceGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *inspector.ResourceGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type inspector.ResourceGroup not found", name)
+}
+
+// GetAllIoT1ClickDeviceResources retrieves all iot1click.Device items from an AWS CloudFormation template
+func (t *Template) GetAllIoT1ClickDeviceResources() map[string]*iot1click.Device {
+ results := map[string]*iot1click.Device{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot1click.Device:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoT1ClickDeviceWithName retrieves all iot1click.Device items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoT1ClickDeviceWithName(name string) (*iot1click.Device, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot1click.Device:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot1click.Device not found", name)
+}
+
+// GetAllIoT1ClickPlacementResources retrieves all iot1click.Placement items from an AWS CloudFormation template
+func (t *Template) GetAllIoT1ClickPlacementResources() map[string]*iot1click.Placement {
+ results := map[string]*iot1click.Placement{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot1click.Placement:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoT1ClickPlacementWithName retrieves all iot1click.Placement items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoT1ClickPlacementWithName(name string) (*iot1click.Placement, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot1click.Placement:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot1click.Placement not found", name)
+}
+
+// GetAllIoT1ClickProjectResources retrieves all iot1click.Project items from an AWS CloudFormation template
+func (t *Template) GetAllIoT1ClickProjectResources() map[string]*iot1click.Project {
+ results := map[string]*iot1click.Project{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot1click.Project:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoT1ClickProjectWithName retrieves all iot1click.Project items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoT1ClickProjectWithName(name string) (*iot1click.Project, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot1click.Project:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot1click.Project not found", name)
+}
+
+// GetAllIoTAccountAuditConfigurationResources retrieves all iot.AccountAuditConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllIoTAccountAuditConfigurationResources() map[string]*iot.AccountAuditConfiguration {
+ results := map[string]*iot.AccountAuditConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.AccountAuditConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTAccountAuditConfigurationWithName retrieves all iot.AccountAuditConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTAccountAuditConfigurationWithName(name string) (*iot.AccountAuditConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.AccountAuditConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.AccountAuditConfiguration not found", name)
+}
+
+// GetAllIoTAuthorizerResources retrieves all iot.Authorizer items from an AWS CloudFormation template
+func (t *Template) GetAllIoTAuthorizerResources() map[string]*iot.Authorizer {
+ results := map[string]*iot.Authorizer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.Authorizer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTAuthorizerWithName retrieves all iot.Authorizer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTAuthorizerWithName(name string) (*iot.Authorizer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.Authorizer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.Authorizer not found", name)
+}
+
+// GetAllIoTCertificateResources retrieves all iot.Certificate items from an AWS CloudFormation template
+func (t *Template) GetAllIoTCertificateResources() map[string]*iot.Certificate {
+ results := map[string]*iot.Certificate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.Certificate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTCertificateWithName retrieves all iot.Certificate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTCertificateWithName(name string) (*iot.Certificate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.Certificate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.Certificate not found", name)
+}
+
+// GetAllIoTCustomMetricResources retrieves all iot.CustomMetric items from an AWS CloudFormation template
+func (t *Template) GetAllIoTCustomMetricResources() map[string]*iot.CustomMetric {
+ results := map[string]*iot.CustomMetric{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.CustomMetric:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTCustomMetricWithName retrieves all iot.CustomMetric items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTCustomMetricWithName(name string) (*iot.CustomMetric, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.CustomMetric:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.CustomMetric not found", name)
+}
+
+// GetAllIoTDimensionResources retrieves all iot.Dimension items from an AWS CloudFormation template
+func (t *Template) GetAllIoTDimensionResources() map[string]*iot.Dimension {
+ results := map[string]*iot.Dimension{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.Dimension:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTDimensionWithName retrieves all iot.Dimension items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTDimensionWithName(name string) (*iot.Dimension, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.Dimension:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.Dimension not found", name)
+}
+
+// GetAllIoTDomainConfigurationResources retrieves all iot.DomainConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllIoTDomainConfigurationResources() map[string]*iot.DomainConfiguration {
+ results := map[string]*iot.DomainConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.DomainConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTDomainConfigurationWithName retrieves all iot.DomainConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTDomainConfigurationWithName(name string) (*iot.DomainConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.DomainConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.DomainConfiguration not found", name)
+}
+
+// GetAllIoTFleetMetricResources retrieves all iot.FleetMetric items from an AWS CloudFormation template
+func (t *Template) GetAllIoTFleetMetricResources() map[string]*iot.FleetMetric {
+ results := map[string]*iot.FleetMetric{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.FleetMetric:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTFleetMetricWithName retrieves all iot.FleetMetric items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTFleetMetricWithName(name string) (*iot.FleetMetric, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.FleetMetric:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.FleetMetric not found", name)
+}
+
+// GetAllIoTJobTemplateResources retrieves all iot.JobTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllIoTJobTemplateResources() map[string]*iot.JobTemplate {
+ results := map[string]*iot.JobTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.JobTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTJobTemplateWithName retrieves all iot.JobTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTJobTemplateWithName(name string) (*iot.JobTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.JobTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.JobTemplate not found", name)
+}
+
+// GetAllIoTLoggingResources retrieves all iot.Logging items from an AWS CloudFormation template
+func (t *Template) GetAllIoTLoggingResources() map[string]*iot.Logging {
+ results := map[string]*iot.Logging{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.Logging:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTLoggingWithName retrieves all iot.Logging items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTLoggingWithName(name string) (*iot.Logging, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.Logging:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.Logging not found", name)
+}
+
+// GetAllIoTMitigationActionResources retrieves all iot.MitigationAction items from an AWS CloudFormation template
+func (t *Template) GetAllIoTMitigationActionResources() map[string]*iot.MitigationAction {
+ results := map[string]*iot.MitigationAction{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.MitigationAction:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTMitigationActionWithName retrieves all iot.MitigationAction items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTMitigationActionWithName(name string) (*iot.MitigationAction, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.MitigationAction:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.MitigationAction not found", name)
+}
+
+// GetAllIoTPolicyResources retrieves all iot.Policy items from an AWS CloudFormation template
+func (t *Template) GetAllIoTPolicyResources() map[string]*iot.Policy {
+ results := map[string]*iot.Policy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.Policy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTPolicyWithName retrieves all iot.Policy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTPolicyWithName(name string) (*iot.Policy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.Policy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.Policy not found", name)
+}
+
+// GetAllIoTPolicyPrincipalAttachmentResources retrieves all iot.PolicyPrincipalAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllIoTPolicyPrincipalAttachmentResources() map[string]*iot.PolicyPrincipalAttachment {
+ results := map[string]*iot.PolicyPrincipalAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.PolicyPrincipalAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTPolicyPrincipalAttachmentWithName retrieves all iot.PolicyPrincipalAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTPolicyPrincipalAttachmentWithName(name string) (*iot.PolicyPrincipalAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.PolicyPrincipalAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.PolicyPrincipalAttachment not found", name)
+}
+
+// GetAllIoTProvisioningTemplateResources retrieves all iot.ProvisioningTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllIoTProvisioningTemplateResources() map[string]*iot.ProvisioningTemplate {
+ results := map[string]*iot.ProvisioningTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.ProvisioningTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTProvisioningTemplateWithName retrieves all iot.ProvisioningTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTProvisioningTemplateWithName(name string) (*iot.ProvisioningTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.ProvisioningTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.ProvisioningTemplate not found", name)
+}
+
+// GetAllIoTResourceSpecificLoggingResources retrieves all iot.ResourceSpecificLogging items from an AWS CloudFormation template
+func (t *Template) GetAllIoTResourceSpecificLoggingResources() map[string]*iot.ResourceSpecificLogging {
+ results := map[string]*iot.ResourceSpecificLogging{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.ResourceSpecificLogging:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTResourceSpecificLoggingWithName retrieves all iot.ResourceSpecificLogging items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTResourceSpecificLoggingWithName(name string) (*iot.ResourceSpecificLogging, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.ResourceSpecificLogging:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.ResourceSpecificLogging not found", name)
+}
+
+// GetAllIoTScheduledAuditResources retrieves all iot.ScheduledAudit items from an AWS CloudFormation template
+func (t *Template) GetAllIoTScheduledAuditResources() map[string]*iot.ScheduledAudit {
+ results := map[string]*iot.ScheduledAudit{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.ScheduledAudit:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTScheduledAuditWithName retrieves all iot.ScheduledAudit items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTScheduledAuditWithName(name string) (*iot.ScheduledAudit, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.ScheduledAudit:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.ScheduledAudit not found", name)
+}
+
+// GetAllIoTSecurityProfileResources retrieves all iot.SecurityProfile items from an AWS CloudFormation template
+func (t *Template) GetAllIoTSecurityProfileResources() map[string]*iot.SecurityProfile {
+ results := map[string]*iot.SecurityProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.SecurityProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTSecurityProfileWithName retrieves all iot.SecurityProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTSecurityProfileWithName(name string) (*iot.SecurityProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.SecurityProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.SecurityProfile not found", name)
+}
+
+// GetAllIoTThingResources retrieves all iot.Thing items from an AWS CloudFormation template
+func (t *Template) GetAllIoTThingResources() map[string]*iot.Thing {
+ results := map[string]*iot.Thing{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.Thing:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTThingWithName retrieves all iot.Thing items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTThingWithName(name string) (*iot.Thing, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.Thing:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.Thing not found", name)
+}
+
+// GetAllIoTThingPrincipalAttachmentResources retrieves all iot.ThingPrincipalAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllIoTThingPrincipalAttachmentResources() map[string]*iot.ThingPrincipalAttachment {
+ results := map[string]*iot.ThingPrincipalAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.ThingPrincipalAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTThingPrincipalAttachmentWithName retrieves all iot.ThingPrincipalAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTThingPrincipalAttachmentWithName(name string) (*iot.ThingPrincipalAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.ThingPrincipalAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.ThingPrincipalAttachment not found", name)
+}
+
+// GetAllIoTTopicRuleResources retrieves all iot.TopicRule items from an AWS CloudFormation template
+func (t *Template) GetAllIoTTopicRuleResources() map[string]*iot.TopicRule {
+ results := map[string]*iot.TopicRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.TopicRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTTopicRuleWithName retrieves all iot.TopicRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTTopicRuleWithName(name string) (*iot.TopicRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.TopicRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.TopicRule not found", name)
+}
+
+// GetAllIoTTopicRuleDestinationResources retrieves all iot.TopicRuleDestination items from an AWS CloudFormation template
+func (t *Template) GetAllIoTTopicRuleDestinationResources() map[string]*iot.TopicRuleDestination {
+ results := map[string]*iot.TopicRuleDestination{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iot.TopicRuleDestination:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTTopicRuleDestinationWithName retrieves all iot.TopicRuleDestination items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTTopicRuleDestinationWithName(name string) (*iot.TopicRuleDestination, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iot.TopicRuleDestination:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iot.TopicRuleDestination not found", name)
+}
+
+// GetAllIoTAnalyticsChannelResources retrieves all iotanalytics.Channel items from an AWS CloudFormation template
+func (t *Template) GetAllIoTAnalyticsChannelResources() map[string]*iotanalytics.Channel {
+ results := map[string]*iotanalytics.Channel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotanalytics.Channel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTAnalyticsChannelWithName retrieves all iotanalytics.Channel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTAnalyticsChannelWithName(name string) (*iotanalytics.Channel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotanalytics.Channel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotanalytics.Channel not found", name)
+}
+
+// GetAllIoTAnalyticsDatasetResources retrieves all iotanalytics.Dataset items from an AWS CloudFormation template
+func (t *Template) GetAllIoTAnalyticsDatasetResources() map[string]*iotanalytics.Dataset {
+ results := map[string]*iotanalytics.Dataset{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotanalytics.Dataset:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTAnalyticsDatasetWithName retrieves all iotanalytics.Dataset items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTAnalyticsDatasetWithName(name string) (*iotanalytics.Dataset, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotanalytics.Dataset:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotanalytics.Dataset not found", name)
+}
+
+// GetAllIoTAnalyticsDatastoreResources retrieves all iotanalytics.Datastore items from an AWS CloudFormation template
+func (t *Template) GetAllIoTAnalyticsDatastoreResources() map[string]*iotanalytics.Datastore {
+ results := map[string]*iotanalytics.Datastore{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotanalytics.Datastore:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTAnalyticsDatastoreWithName retrieves all iotanalytics.Datastore items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTAnalyticsDatastoreWithName(name string) (*iotanalytics.Datastore, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotanalytics.Datastore:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotanalytics.Datastore not found", name)
+}
+
+// GetAllIoTAnalyticsPipelineResources retrieves all iotanalytics.Pipeline items from an AWS CloudFormation template
+func (t *Template) GetAllIoTAnalyticsPipelineResources() map[string]*iotanalytics.Pipeline {
+ results := map[string]*iotanalytics.Pipeline{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotanalytics.Pipeline:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTAnalyticsPipelineWithName retrieves all iotanalytics.Pipeline items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTAnalyticsPipelineWithName(name string) (*iotanalytics.Pipeline, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotanalytics.Pipeline:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotanalytics.Pipeline not found", name)
+}
+
+// GetAllIoTCoreDeviceAdvisorSuiteDefinitionResources retrieves all iotcoredeviceadvisor.SuiteDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllIoTCoreDeviceAdvisorSuiteDefinitionResources() map[string]*iotcoredeviceadvisor.SuiteDefinition {
+ results := map[string]*iotcoredeviceadvisor.SuiteDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotcoredeviceadvisor.SuiteDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTCoreDeviceAdvisorSuiteDefinitionWithName retrieves all iotcoredeviceadvisor.SuiteDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTCoreDeviceAdvisorSuiteDefinitionWithName(name string) (*iotcoredeviceadvisor.SuiteDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotcoredeviceadvisor.SuiteDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotcoredeviceadvisor.SuiteDefinition not found", name)
+}
+
+// GetAllIoTEventsDetectorModelResources retrieves all iotevents.DetectorModel items from an AWS CloudFormation template
+func (t *Template) GetAllIoTEventsDetectorModelResources() map[string]*iotevents.DetectorModel {
+ results := map[string]*iotevents.DetectorModel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotevents.DetectorModel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTEventsDetectorModelWithName retrieves all iotevents.DetectorModel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTEventsDetectorModelWithName(name string) (*iotevents.DetectorModel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotevents.DetectorModel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotevents.DetectorModel not found", name)
+}
+
+// GetAllIoTEventsInputResources retrieves all iotevents.Input items from an AWS CloudFormation template
+func (t *Template) GetAllIoTEventsInputResources() map[string]*iotevents.Input {
+ results := map[string]*iotevents.Input{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotevents.Input:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTEventsInputWithName retrieves all iotevents.Input items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTEventsInputWithName(name string) (*iotevents.Input, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotevents.Input:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotevents.Input not found", name)
+}
+
+// GetAllIoTFleetHubApplicationResources retrieves all iotfleethub.Application items from an AWS CloudFormation template
+func (t *Template) GetAllIoTFleetHubApplicationResources() map[string]*iotfleethub.Application {
+ results := map[string]*iotfleethub.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotfleethub.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTFleetHubApplicationWithName retrieves all iotfleethub.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTFleetHubApplicationWithName(name string) (*iotfleethub.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotfleethub.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotfleethub.Application not found", name)
+}
+
+// GetAllIoTSiteWiseAccessPolicyResources retrieves all iotsitewise.AccessPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllIoTSiteWiseAccessPolicyResources() map[string]*iotsitewise.AccessPolicy {
+ results := map[string]*iotsitewise.AccessPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotsitewise.AccessPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTSiteWiseAccessPolicyWithName retrieves all iotsitewise.AccessPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTSiteWiseAccessPolicyWithName(name string) (*iotsitewise.AccessPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotsitewise.AccessPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotsitewise.AccessPolicy not found", name)
+}
+
+// GetAllIoTSiteWiseAssetResources retrieves all iotsitewise.Asset items from an AWS CloudFormation template
+func (t *Template) GetAllIoTSiteWiseAssetResources() map[string]*iotsitewise.Asset {
+ results := map[string]*iotsitewise.Asset{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Asset:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTSiteWiseAssetWithName retrieves all iotsitewise.Asset items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTSiteWiseAssetWithName(name string) (*iotsitewise.Asset, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Asset:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotsitewise.Asset not found", name)
+}
+
+// GetAllIoTSiteWiseAssetModelResources retrieves all iotsitewise.AssetModel items from an AWS CloudFormation template
+func (t *Template) GetAllIoTSiteWiseAssetModelResources() map[string]*iotsitewise.AssetModel {
+ results := map[string]*iotsitewise.AssetModel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotsitewise.AssetModel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTSiteWiseAssetModelWithName retrieves all iotsitewise.AssetModel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTSiteWiseAssetModelWithName(name string) (*iotsitewise.AssetModel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotsitewise.AssetModel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotsitewise.AssetModel not found", name)
+}
+
+// GetAllIoTSiteWiseDashboardResources retrieves all iotsitewise.Dashboard items from an AWS CloudFormation template
+func (t *Template) GetAllIoTSiteWiseDashboardResources() map[string]*iotsitewise.Dashboard {
+ results := map[string]*iotsitewise.Dashboard{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Dashboard:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTSiteWiseDashboardWithName retrieves all iotsitewise.Dashboard items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTSiteWiseDashboardWithName(name string) (*iotsitewise.Dashboard, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Dashboard:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotsitewise.Dashboard not found", name)
+}
+
+// GetAllIoTSiteWiseGatewayResources retrieves all iotsitewise.Gateway items from an AWS CloudFormation template
+func (t *Template) GetAllIoTSiteWiseGatewayResources() map[string]*iotsitewise.Gateway {
+ results := map[string]*iotsitewise.Gateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Gateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTSiteWiseGatewayWithName retrieves all iotsitewise.Gateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTSiteWiseGatewayWithName(name string) (*iotsitewise.Gateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Gateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotsitewise.Gateway not found", name)
+}
+
+// GetAllIoTSiteWisePortalResources retrieves all iotsitewise.Portal items from an AWS CloudFormation template
+func (t *Template) GetAllIoTSiteWisePortalResources() map[string]*iotsitewise.Portal {
+ results := map[string]*iotsitewise.Portal{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Portal:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTSiteWisePortalWithName retrieves all iotsitewise.Portal items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTSiteWisePortalWithName(name string) (*iotsitewise.Portal, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Portal:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotsitewise.Portal not found", name)
+}
+
+// GetAllIoTSiteWiseProjectResources retrieves all iotsitewise.Project items from an AWS CloudFormation template
+func (t *Template) GetAllIoTSiteWiseProjectResources() map[string]*iotsitewise.Project {
+ results := map[string]*iotsitewise.Project{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Project:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTSiteWiseProjectWithName retrieves all iotsitewise.Project items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTSiteWiseProjectWithName(name string) (*iotsitewise.Project, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotsitewise.Project:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotsitewise.Project not found", name)
+}
+
+// GetAllIoTThingsGraphFlowTemplateResources retrieves all iotthingsgraph.FlowTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllIoTThingsGraphFlowTemplateResources() map[string]*iotthingsgraph.FlowTemplate {
+ results := map[string]*iotthingsgraph.FlowTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotthingsgraph.FlowTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTThingsGraphFlowTemplateWithName retrieves all iotthingsgraph.FlowTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTThingsGraphFlowTemplateWithName(name string) (*iotthingsgraph.FlowTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotthingsgraph.FlowTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotthingsgraph.FlowTemplate not found", name)
+}
+
+// GetAllIoTWirelessDestinationResources retrieves all iotwireless.Destination items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessDestinationResources() map[string]*iotwireless.Destination {
+ results := map[string]*iotwireless.Destination{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.Destination:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessDestinationWithName retrieves all iotwireless.Destination items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessDestinationWithName(name string) (*iotwireless.Destination, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.Destination:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.Destination not found", name)
+}
+
+// GetAllIoTWirelessDeviceProfileResources retrieves all iotwireless.DeviceProfile items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessDeviceProfileResources() map[string]*iotwireless.DeviceProfile {
+ results := map[string]*iotwireless.DeviceProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.DeviceProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessDeviceProfileWithName retrieves all iotwireless.DeviceProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessDeviceProfileWithName(name string) (*iotwireless.DeviceProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.DeviceProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.DeviceProfile not found", name)
+}
+
+// GetAllIoTWirelessFuotaTaskResources retrieves all iotwireless.FuotaTask items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessFuotaTaskResources() map[string]*iotwireless.FuotaTask {
+ results := map[string]*iotwireless.FuotaTask{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.FuotaTask:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessFuotaTaskWithName retrieves all iotwireless.FuotaTask items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessFuotaTaskWithName(name string) (*iotwireless.FuotaTask, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.FuotaTask:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.FuotaTask not found", name)
+}
+
+// GetAllIoTWirelessMulticastGroupResources retrieves all iotwireless.MulticastGroup items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessMulticastGroupResources() map[string]*iotwireless.MulticastGroup {
+ results := map[string]*iotwireless.MulticastGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.MulticastGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessMulticastGroupWithName retrieves all iotwireless.MulticastGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessMulticastGroupWithName(name string) (*iotwireless.MulticastGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.MulticastGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.MulticastGroup not found", name)
+}
+
+// GetAllIoTWirelessPartnerAccountResources retrieves all iotwireless.PartnerAccount items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessPartnerAccountResources() map[string]*iotwireless.PartnerAccount {
+ results := map[string]*iotwireless.PartnerAccount{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.PartnerAccount:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessPartnerAccountWithName retrieves all iotwireless.PartnerAccount items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessPartnerAccountWithName(name string) (*iotwireless.PartnerAccount, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.PartnerAccount:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.PartnerAccount not found", name)
+}
+
+// GetAllIoTWirelessServiceProfileResources retrieves all iotwireless.ServiceProfile items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessServiceProfileResources() map[string]*iotwireless.ServiceProfile {
+ results := map[string]*iotwireless.ServiceProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.ServiceProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessServiceProfileWithName retrieves all iotwireless.ServiceProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessServiceProfileWithName(name string) (*iotwireless.ServiceProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.ServiceProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.ServiceProfile not found", name)
+}
+
+// GetAllIoTWirelessTaskDefinitionResources retrieves all iotwireless.TaskDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessTaskDefinitionResources() map[string]*iotwireless.TaskDefinition {
+ results := map[string]*iotwireless.TaskDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.TaskDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessTaskDefinitionWithName retrieves all iotwireless.TaskDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessTaskDefinitionWithName(name string) (*iotwireless.TaskDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.TaskDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.TaskDefinition not found", name)
+}
+
+// GetAllIoTWirelessWirelessDeviceResources retrieves all iotwireless.WirelessDevice items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessWirelessDeviceResources() map[string]*iotwireless.WirelessDevice {
+ results := map[string]*iotwireless.WirelessDevice{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.WirelessDevice:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessWirelessDeviceWithName retrieves all iotwireless.WirelessDevice items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessWirelessDeviceWithName(name string) (*iotwireless.WirelessDevice, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.WirelessDevice:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.WirelessDevice not found", name)
+}
+
+// GetAllIoTWirelessWirelessGatewayResources retrieves all iotwireless.WirelessGateway items from an AWS CloudFormation template
+func (t *Template) GetAllIoTWirelessWirelessGatewayResources() map[string]*iotwireless.WirelessGateway {
+ results := map[string]*iotwireless.WirelessGateway{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *iotwireless.WirelessGateway:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetIoTWirelessWirelessGatewayWithName retrieves all iotwireless.WirelessGateway items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetIoTWirelessWirelessGatewayWithName(name string) (*iotwireless.WirelessGateway, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *iotwireless.WirelessGateway:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type iotwireless.WirelessGateway not found", name)
+}
+
+// GetAllKMSAliasResources retrieves all kms.Alias items from an AWS CloudFormation template
+func (t *Template) GetAllKMSAliasResources() map[string]*kms.Alias {
+ results := map[string]*kms.Alias{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kms.Alias:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKMSAliasWithName retrieves all kms.Alias items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKMSAliasWithName(name string) (*kms.Alias, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kms.Alias:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kms.Alias not found", name)
+}
+
+// GetAllKMSKeyResources retrieves all kms.Key items from an AWS CloudFormation template
+func (t *Template) GetAllKMSKeyResources() map[string]*kms.Key {
+ results := map[string]*kms.Key{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kms.Key:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKMSKeyWithName retrieves all kms.Key items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKMSKeyWithName(name string) (*kms.Key, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kms.Key:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kms.Key not found", name)
+}
+
+// GetAllKMSReplicaKeyResources retrieves all kms.ReplicaKey items from an AWS CloudFormation template
+func (t *Template) GetAllKMSReplicaKeyResources() map[string]*kms.ReplicaKey {
+ results := map[string]*kms.ReplicaKey{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kms.ReplicaKey:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKMSReplicaKeyWithName retrieves all kms.ReplicaKey items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKMSReplicaKeyWithName(name string) (*kms.ReplicaKey, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kms.ReplicaKey:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kms.ReplicaKey not found", name)
+}
+
+// GetAllKendraDataSourceResources retrieves all kendra.DataSource items from an AWS CloudFormation template
+func (t *Template) GetAllKendraDataSourceResources() map[string]*kendra.DataSource {
+ results := map[string]*kendra.DataSource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kendra.DataSource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKendraDataSourceWithName retrieves all kendra.DataSource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKendraDataSourceWithName(name string) (*kendra.DataSource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kendra.DataSource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kendra.DataSource not found", name)
+}
+
+// GetAllKendraFaqResources retrieves all kendra.Faq items from an AWS CloudFormation template
+func (t *Template) GetAllKendraFaqResources() map[string]*kendra.Faq {
+ results := map[string]*kendra.Faq{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kendra.Faq:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKendraFaqWithName retrieves all kendra.Faq items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKendraFaqWithName(name string) (*kendra.Faq, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kendra.Faq:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kendra.Faq not found", name)
+}
+
+// GetAllKendraIndexResources retrieves all kendra.Index items from an AWS CloudFormation template
+func (t *Template) GetAllKendraIndexResources() map[string]*kendra.Index {
+ results := map[string]*kendra.Index{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kendra.Index:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKendraIndexWithName retrieves all kendra.Index items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKendraIndexWithName(name string) (*kendra.Index, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kendra.Index:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kendra.Index not found", name)
+}
+
+// GetAllKinesisStreamResources retrieves all kinesis.Stream items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisStreamResources() map[string]*kinesis.Stream {
+ results := map[string]*kinesis.Stream{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesis.Stream:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisStreamWithName retrieves all kinesis.Stream items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisStreamWithName(name string) (*kinesis.Stream, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesis.Stream:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesis.Stream not found", name)
+}
+
+// GetAllKinesisStreamConsumerResources retrieves all kinesis.StreamConsumer items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisStreamConsumerResources() map[string]*kinesis.StreamConsumer {
+ results := map[string]*kinesis.StreamConsumer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesis.StreamConsumer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisStreamConsumerWithName retrieves all kinesis.StreamConsumer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisStreamConsumerWithName(name string) (*kinesis.StreamConsumer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesis.StreamConsumer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesis.StreamConsumer not found", name)
+}
+
+// GetAllKinesisAnalyticsApplicationResources retrieves all kinesisanalytics.Application items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisAnalyticsApplicationResources() map[string]*kinesisanalytics.Application {
+ results := map[string]*kinesisanalytics.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesisanalytics.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisAnalyticsApplicationWithName retrieves all kinesisanalytics.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisAnalyticsApplicationWithName(name string) (*kinesisanalytics.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesisanalytics.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesisanalytics.Application not found", name)
+}
+
+// GetAllKinesisAnalyticsApplicationOutputResources retrieves all kinesisanalytics.ApplicationOutput items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisAnalyticsApplicationOutputResources() map[string]*kinesisanalytics.ApplicationOutput {
+ results := map[string]*kinesisanalytics.ApplicationOutput{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesisanalytics.ApplicationOutput:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisAnalyticsApplicationOutputWithName retrieves all kinesisanalytics.ApplicationOutput items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisAnalyticsApplicationOutputWithName(name string) (*kinesisanalytics.ApplicationOutput, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesisanalytics.ApplicationOutput:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesisanalytics.ApplicationOutput not found", name)
+}
+
+// GetAllKinesisAnalyticsApplicationReferenceDataSourceResources retrieves all kinesisanalytics.ApplicationReferenceDataSource items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisAnalyticsApplicationReferenceDataSourceResources() map[string]*kinesisanalytics.ApplicationReferenceDataSource {
+ results := map[string]*kinesisanalytics.ApplicationReferenceDataSource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesisanalytics.ApplicationReferenceDataSource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisAnalyticsApplicationReferenceDataSourceWithName retrieves all kinesisanalytics.ApplicationReferenceDataSource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisAnalyticsApplicationReferenceDataSourceWithName(name string) (*kinesisanalytics.ApplicationReferenceDataSource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesisanalytics.ApplicationReferenceDataSource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesisanalytics.ApplicationReferenceDataSource not found", name)
+}
+
+// GetAllKinesisAnalyticsV2ApplicationResources retrieves all kinesisanalyticsv2.Application items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisAnalyticsV2ApplicationResources() map[string]*kinesisanalyticsv2.Application {
+ results := map[string]*kinesisanalyticsv2.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesisanalyticsv2.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisAnalyticsV2ApplicationWithName retrieves all kinesisanalyticsv2.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisAnalyticsV2ApplicationWithName(name string) (*kinesisanalyticsv2.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesisanalyticsv2.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesisanalyticsv2.Application not found", name)
+}
+
+// GetAllKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources retrieves all kinesisanalyticsv2.ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionResources() map[string]*kinesisanalyticsv2.ApplicationCloudWatchLoggingOption {
+ results := map[string]*kinesisanalyticsv2.ApplicationCloudWatchLoggingOption{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesisanalyticsv2.ApplicationCloudWatchLoggingOption:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName retrieves all kinesisanalyticsv2.ApplicationCloudWatchLoggingOption items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisAnalyticsV2ApplicationCloudWatchLoggingOptionWithName(name string) (*kinesisanalyticsv2.ApplicationCloudWatchLoggingOption, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesisanalyticsv2.ApplicationCloudWatchLoggingOption:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesisanalyticsv2.ApplicationCloudWatchLoggingOption not found", name)
+}
+
+// GetAllKinesisAnalyticsV2ApplicationOutputResources retrieves all kinesisanalyticsv2.ApplicationOutput items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisAnalyticsV2ApplicationOutputResources() map[string]*kinesisanalyticsv2.ApplicationOutput {
+ results := map[string]*kinesisanalyticsv2.ApplicationOutput{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesisanalyticsv2.ApplicationOutput:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisAnalyticsV2ApplicationOutputWithName retrieves all kinesisanalyticsv2.ApplicationOutput items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisAnalyticsV2ApplicationOutputWithName(name string) (*kinesisanalyticsv2.ApplicationOutput, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesisanalyticsv2.ApplicationOutput:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesisanalyticsv2.ApplicationOutput not found", name)
+}
+
+// GetAllKinesisAnalyticsV2ApplicationReferenceDataSourceResources retrieves all kinesisanalyticsv2.ApplicationReferenceDataSource items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisAnalyticsV2ApplicationReferenceDataSourceResources() map[string]*kinesisanalyticsv2.ApplicationReferenceDataSource {
+ results := map[string]*kinesisanalyticsv2.ApplicationReferenceDataSource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesisanalyticsv2.ApplicationReferenceDataSource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisAnalyticsV2ApplicationReferenceDataSourceWithName retrieves all kinesisanalyticsv2.ApplicationReferenceDataSource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisAnalyticsV2ApplicationReferenceDataSourceWithName(name string) (*kinesisanalyticsv2.ApplicationReferenceDataSource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesisanalyticsv2.ApplicationReferenceDataSource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesisanalyticsv2.ApplicationReferenceDataSource not found", name)
+}
+
+// GetAllKinesisFirehoseDeliveryStreamResources retrieves all kinesisfirehose.DeliveryStream items from an AWS CloudFormation template
+func (t *Template) GetAllKinesisFirehoseDeliveryStreamResources() map[string]*kinesisfirehose.DeliveryStream {
+ results := map[string]*kinesisfirehose.DeliveryStream{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *kinesisfirehose.DeliveryStream:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetKinesisFirehoseDeliveryStreamWithName retrieves all kinesisfirehose.DeliveryStream items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetKinesisFirehoseDeliveryStreamWithName(name string) (*kinesisfirehose.DeliveryStream, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *kinesisfirehose.DeliveryStream:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type kinesisfirehose.DeliveryStream not found", name)
+}
+
+// GetAllLakeFormationDataLakeSettingsResources retrieves all lakeformation.DataLakeSettings items from an AWS CloudFormation template
+func (t *Template) GetAllLakeFormationDataLakeSettingsResources() map[string]*lakeformation.DataLakeSettings {
+ results := map[string]*lakeformation.DataLakeSettings{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lakeformation.DataLakeSettings:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLakeFormationDataLakeSettingsWithName retrieves all lakeformation.DataLakeSettings items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLakeFormationDataLakeSettingsWithName(name string) (*lakeformation.DataLakeSettings, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lakeformation.DataLakeSettings:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lakeformation.DataLakeSettings not found", name)
+}
+
+// GetAllLakeFormationPermissionsResources retrieves all lakeformation.Permissions items from an AWS CloudFormation template
+func (t *Template) GetAllLakeFormationPermissionsResources() map[string]*lakeformation.Permissions {
+ results := map[string]*lakeformation.Permissions{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lakeformation.Permissions:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLakeFormationPermissionsWithName retrieves all lakeformation.Permissions items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLakeFormationPermissionsWithName(name string) (*lakeformation.Permissions, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lakeformation.Permissions:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lakeformation.Permissions not found", name)
+}
+
+// GetAllLakeFormationResourceResources retrieves all lakeformation.Resource items from an AWS CloudFormation template
+func (t *Template) GetAllLakeFormationResourceResources() map[string]*lakeformation.Resource {
+ results := map[string]*lakeformation.Resource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lakeformation.Resource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLakeFormationResourceWithName retrieves all lakeformation.Resource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLakeFormationResourceWithName(name string) (*lakeformation.Resource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lakeformation.Resource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lakeformation.Resource not found", name)
+}
+
+// GetAllLambdaAliasResources retrieves all lambda.Alias items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaAliasResources() map[string]*lambda.Alias {
+ results := map[string]*lambda.Alias{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.Alias:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaAliasWithName retrieves all lambda.Alias items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaAliasWithName(name string) (*lambda.Alias, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.Alias:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.Alias not found", name)
+}
+
+// GetAllLambdaCodeSigningConfigResources retrieves all lambda.CodeSigningConfig items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaCodeSigningConfigResources() map[string]*lambda.CodeSigningConfig {
+ results := map[string]*lambda.CodeSigningConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.CodeSigningConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaCodeSigningConfigWithName retrieves all lambda.CodeSigningConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaCodeSigningConfigWithName(name string) (*lambda.CodeSigningConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.CodeSigningConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.CodeSigningConfig not found", name)
+}
+
+// GetAllLambdaEventInvokeConfigResources retrieves all lambda.EventInvokeConfig items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaEventInvokeConfigResources() map[string]*lambda.EventInvokeConfig {
+ results := map[string]*lambda.EventInvokeConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.EventInvokeConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaEventInvokeConfigWithName retrieves all lambda.EventInvokeConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaEventInvokeConfigWithName(name string) (*lambda.EventInvokeConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.EventInvokeConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.EventInvokeConfig not found", name)
+}
+
+// GetAllLambdaEventSourceMappingResources retrieves all lambda.EventSourceMapping items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaEventSourceMappingResources() map[string]*lambda.EventSourceMapping {
+ results := map[string]*lambda.EventSourceMapping{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.EventSourceMapping:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaEventSourceMappingWithName retrieves all lambda.EventSourceMapping items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaEventSourceMappingWithName(name string) (*lambda.EventSourceMapping, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.EventSourceMapping:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.EventSourceMapping not found", name)
+}
+
+// GetAllLambdaFunctionResources retrieves all lambda.Function items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaFunctionResources() map[string]*lambda.Function {
+ results := map[string]*lambda.Function{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.Function:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaFunctionWithName retrieves all lambda.Function items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaFunctionWithName(name string) (*lambda.Function, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.Function:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.Function not found", name)
+}
+
+// GetAllLambdaLayerVersionResources retrieves all lambda.LayerVersion items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaLayerVersionResources() map[string]*lambda.LayerVersion {
+ results := map[string]*lambda.LayerVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.LayerVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaLayerVersionWithName retrieves all lambda.LayerVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaLayerVersionWithName(name string) (*lambda.LayerVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.LayerVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.LayerVersion not found", name)
+}
+
+// GetAllLambdaLayerVersionPermissionResources retrieves all lambda.LayerVersionPermission items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaLayerVersionPermissionResources() map[string]*lambda.LayerVersionPermission {
+ results := map[string]*lambda.LayerVersionPermission{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.LayerVersionPermission:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaLayerVersionPermissionWithName retrieves all lambda.LayerVersionPermission items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaLayerVersionPermissionWithName(name string) (*lambda.LayerVersionPermission, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.LayerVersionPermission:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.LayerVersionPermission not found", name)
+}
+
+// GetAllLambdaPermissionResources retrieves all lambda.Permission items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaPermissionResources() map[string]*lambda.Permission {
+ results := map[string]*lambda.Permission{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.Permission:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaPermissionWithName retrieves all lambda.Permission items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaPermissionWithName(name string) (*lambda.Permission, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.Permission:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.Permission not found", name)
+}
+
+// GetAllLambdaVersionResources retrieves all lambda.Version items from an AWS CloudFormation template
+func (t *Template) GetAllLambdaVersionResources() map[string]*lambda.Version {
+ results := map[string]*lambda.Version{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lambda.Version:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLambdaVersionWithName retrieves all lambda.Version items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLambdaVersionWithName(name string) (*lambda.Version, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lambda.Version:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lambda.Version not found", name)
+}
+
+// GetAllLicenseManagerGrantResources retrieves all licensemanager.Grant items from an AWS CloudFormation template
+func (t *Template) GetAllLicenseManagerGrantResources() map[string]*licensemanager.Grant {
+ results := map[string]*licensemanager.Grant{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *licensemanager.Grant:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLicenseManagerGrantWithName retrieves all licensemanager.Grant items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLicenseManagerGrantWithName(name string) (*licensemanager.Grant, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *licensemanager.Grant:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type licensemanager.Grant not found", name)
+}
+
+// GetAllLicenseManagerLicenseResources retrieves all licensemanager.License items from an AWS CloudFormation template
+func (t *Template) GetAllLicenseManagerLicenseResources() map[string]*licensemanager.License {
+ results := map[string]*licensemanager.License{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *licensemanager.License:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLicenseManagerLicenseWithName retrieves all licensemanager.License items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLicenseManagerLicenseWithName(name string) (*licensemanager.License, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *licensemanager.License:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type licensemanager.License not found", name)
+}
+
+// GetAllLightsailDatabaseResources retrieves all lightsail.Database items from an AWS CloudFormation template
+func (t *Template) GetAllLightsailDatabaseResources() map[string]*lightsail.Database {
+ results := map[string]*lightsail.Database{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lightsail.Database:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLightsailDatabaseWithName retrieves all lightsail.Database items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLightsailDatabaseWithName(name string) (*lightsail.Database, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lightsail.Database:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lightsail.Database not found", name)
+}
+
+// GetAllLightsailDiskResources retrieves all lightsail.Disk items from an AWS CloudFormation template
+func (t *Template) GetAllLightsailDiskResources() map[string]*lightsail.Disk {
+ results := map[string]*lightsail.Disk{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lightsail.Disk:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLightsailDiskWithName retrieves all lightsail.Disk items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLightsailDiskWithName(name string) (*lightsail.Disk, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lightsail.Disk:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lightsail.Disk not found", name)
+}
+
+// GetAllLightsailInstanceResources retrieves all lightsail.Instance items from an AWS CloudFormation template
+func (t *Template) GetAllLightsailInstanceResources() map[string]*lightsail.Instance {
+ results := map[string]*lightsail.Instance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lightsail.Instance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLightsailInstanceWithName retrieves all lightsail.Instance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLightsailInstanceWithName(name string) (*lightsail.Instance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lightsail.Instance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lightsail.Instance not found", name)
+}
+
+// GetAllLightsailStaticIpResources retrieves all lightsail.StaticIp items from an AWS CloudFormation template
+func (t *Template) GetAllLightsailStaticIpResources() map[string]*lightsail.StaticIp {
+ results := map[string]*lightsail.StaticIp{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lightsail.StaticIp:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLightsailStaticIpWithName retrieves all lightsail.StaticIp items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLightsailStaticIpWithName(name string) (*lightsail.StaticIp, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lightsail.StaticIp:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lightsail.StaticIp not found", name)
+}
+
+// GetAllLocationGeofenceCollectionResources retrieves all location.GeofenceCollection items from an AWS CloudFormation template
+func (t *Template) GetAllLocationGeofenceCollectionResources() map[string]*location.GeofenceCollection {
+ results := map[string]*location.GeofenceCollection{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *location.GeofenceCollection:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLocationGeofenceCollectionWithName retrieves all location.GeofenceCollection items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLocationGeofenceCollectionWithName(name string) (*location.GeofenceCollection, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *location.GeofenceCollection:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type location.GeofenceCollection not found", name)
+}
+
+// GetAllLocationMapResources retrieves all location.Map items from an AWS CloudFormation template
+func (t *Template) GetAllLocationMapResources() map[string]*location.Map {
+ results := map[string]*location.Map{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *location.Map:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLocationMapWithName retrieves all location.Map items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLocationMapWithName(name string) (*location.Map, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *location.Map:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type location.Map not found", name)
+}
+
+// GetAllLocationPlaceIndexResources retrieves all location.PlaceIndex items from an AWS CloudFormation template
+func (t *Template) GetAllLocationPlaceIndexResources() map[string]*location.PlaceIndex {
+ results := map[string]*location.PlaceIndex{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *location.PlaceIndex:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLocationPlaceIndexWithName retrieves all location.PlaceIndex items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLocationPlaceIndexWithName(name string) (*location.PlaceIndex, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *location.PlaceIndex:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type location.PlaceIndex not found", name)
+}
+
+// GetAllLocationRouteCalculatorResources retrieves all location.RouteCalculator items from an AWS CloudFormation template
+func (t *Template) GetAllLocationRouteCalculatorResources() map[string]*location.RouteCalculator {
+ results := map[string]*location.RouteCalculator{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *location.RouteCalculator:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLocationRouteCalculatorWithName retrieves all location.RouteCalculator items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLocationRouteCalculatorWithName(name string) (*location.RouteCalculator, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *location.RouteCalculator:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type location.RouteCalculator not found", name)
+}
+
+// GetAllLocationTrackerResources retrieves all location.Tracker items from an AWS CloudFormation template
+func (t *Template) GetAllLocationTrackerResources() map[string]*location.Tracker {
+ results := map[string]*location.Tracker{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *location.Tracker:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLocationTrackerWithName retrieves all location.Tracker items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLocationTrackerWithName(name string) (*location.Tracker, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *location.Tracker:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type location.Tracker not found", name)
+}
+
+// GetAllLocationTrackerConsumerResources retrieves all location.TrackerConsumer items from an AWS CloudFormation template
+func (t *Template) GetAllLocationTrackerConsumerResources() map[string]*location.TrackerConsumer {
+ results := map[string]*location.TrackerConsumer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *location.TrackerConsumer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLocationTrackerConsumerWithName retrieves all location.TrackerConsumer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLocationTrackerConsumerWithName(name string) (*location.TrackerConsumer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *location.TrackerConsumer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type location.TrackerConsumer not found", name)
+}
+
+// GetAllLogsDestinationResources retrieves all logs.Destination items from an AWS CloudFormation template
+func (t *Template) GetAllLogsDestinationResources() map[string]*logs.Destination {
+ results := map[string]*logs.Destination{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *logs.Destination:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLogsDestinationWithName retrieves all logs.Destination items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLogsDestinationWithName(name string) (*logs.Destination, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *logs.Destination:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type logs.Destination not found", name)
+}
+
+// GetAllLogsLogGroupResources retrieves all logs.LogGroup items from an AWS CloudFormation template
+func (t *Template) GetAllLogsLogGroupResources() map[string]*logs.LogGroup {
+ results := map[string]*logs.LogGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *logs.LogGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLogsLogGroupWithName retrieves all logs.LogGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLogsLogGroupWithName(name string) (*logs.LogGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *logs.LogGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type logs.LogGroup not found", name)
+}
+
+// GetAllLogsLogStreamResources retrieves all logs.LogStream items from an AWS CloudFormation template
+func (t *Template) GetAllLogsLogStreamResources() map[string]*logs.LogStream {
+ results := map[string]*logs.LogStream{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *logs.LogStream:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLogsLogStreamWithName retrieves all logs.LogStream items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLogsLogStreamWithName(name string) (*logs.LogStream, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *logs.LogStream:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type logs.LogStream not found", name)
+}
+
+// GetAllLogsMetricFilterResources retrieves all logs.MetricFilter items from an AWS CloudFormation template
+func (t *Template) GetAllLogsMetricFilterResources() map[string]*logs.MetricFilter {
+ results := map[string]*logs.MetricFilter{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *logs.MetricFilter:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLogsMetricFilterWithName retrieves all logs.MetricFilter items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLogsMetricFilterWithName(name string) (*logs.MetricFilter, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *logs.MetricFilter:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type logs.MetricFilter not found", name)
+}
+
+// GetAllLogsQueryDefinitionResources retrieves all logs.QueryDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllLogsQueryDefinitionResources() map[string]*logs.QueryDefinition {
+ results := map[string]*logs.QueryDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *logs.QueryDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLogsQueryDefinitionWithName retrieves all logs.QueryDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLogsQueryDefinitionWithName(name string) (*logs.QueryDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *logs.QueryDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type logs.QueryDefinition not found", name)
+}
+
+// GetAllLogsResourcePolicyResources retrieves all logs.ResourcePolicy items from an AWS CloudFormation template
+func (t *Template) GetAllLogsResourcePolicyResources() map[string]*logs.ResourcePolicy {
+ results := map[string]*logs.ResourcePolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *logs.ResourcePolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLogsResourcePolicyWithName retrieves all logs.ResourcePolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLogsResourcePolicyWithName(name string) (*logs.ResourcePolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *logs.ResourcePolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type logs.ResourcePolicy not found", name)
+}
+
+// GetAllLogsSubscriptionFilterResources retrieves all logs.SubscriptionFilter items from an AWS CloudFormation template
+func (t *Template) GetAllLogsSubscriptionFilterResources() map[string]*logs.SubscriptionFilter {
+ results := map[string]*logs.SubscriptionFilter{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *logs.SubscriptionFilter:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLogsSubscriptionFilterWithName retrieves all logs.SubscriptionFilter items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLogsSubscriptionFilterWithName(name string) (*logs.SubscriptionFilter, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *logs.SubscriptionFilter:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type logs.SubscriptionFilter not found", name)
+}
+
+// GetAllLookoutEquipmentInferenceSchedulerResources retrieves all lookoutequipment.InferenceScheduler items from an AWS CloudFormation template
+func (t *Template) GetAllLookoutEquipmentInferenceSchedulerResources() map[string]*lookoutequipment.InferenceScheduler {
+ results := map[string]*lookoutequipment.InferenceScheduler{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lookoutequipment.InferenceScheduler:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLookoutEquipmentInferenceSchedulerWithName retrieves all lookoutequipment.InferenceScheduler items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLookoutEquipmentInferenceSchedulerWithName(name string) (*lookoutequipment.InferenceScheduler, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lookoutequipment.InferenceScheduler:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lookoutequipment.InferenceScheduler not found", name)
+}
+
+// GetAllLookoutMetricsAlertResources retrieves all lookoutmetrics.Alert items from an AWS CloudFormation template
+func (t *Template) GetAllLookoutMetricsAlertResources() map[string]*lookoutmetrics.Alert {
+ results := map[string]*lookoutmetrics.Alert{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lookoutmetrics.Alert:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLookoutMetricsAlertWithName retrieves all lookoutmetrics.Alert items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLookoutMetricsAlertWithName(name string) (*lookoutmetrics.Alert, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lookoutmetrics.Alert:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lookoutmetrics.Alert not found", name)
+}
+
+// GetAllLookoutMetricsAnomalyDetectorResources retrieves all lookoutmetrics.AnomalyDetector items from an AWS CloudFormation template
+func (t *Template) GetAllLookoutMetricsAnomalyDetectorResources() map[string]*lookoutmetrics.AnomalyDetector {
+ results := map[string]*lookoutmetrics.AnomalyDetector{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lookoutmetrics.AnomalyDetector:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLookoutMetricsAnomalyDetectorWithName retrieves all lookoutmetrics.AnomalyDetector items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLookoutMetricsAnomalyDetectorWithName(name string) (*lookoutmetrics.AnomalyDetector, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lookoutmetrics.AnomalyDetector:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lookoutmetrics.AnomalyDetector not found", name)
+}
+
+// GetAllLookoutVisionProjectResources retrieves all lookoutvision.Project items from an AWS CloudFormation template
+func (t *Template) GetAllLookoutVisionProjectResources() map[string]*lookoutvision.Project {
+ results := map[string]*lookoutvision.Project{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *lookoutvision.Project:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetLookoutVisionProjectWithName retrieves all lookoutvision.Project items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetLookoutVisionProjectWithName(name string) (*lookoutvision.Project, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *lookoutvision.Project:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type lookoutvision.Project not found", name)
+}
+
+// GetAllMSKClusterResources retrieves all msk.Cluster items from an AWS CloudFormation template
+func (t *Template) GetAllMSKClusterResources() map[string]*msk.Cluster {
+ results := map[string]*msk.Cluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *msk.Cluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMSKClusterWithName retrieves all msk.Cluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMSKClusterWithName(name string) (*msk.Cluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *msk.Cluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type msk.Cluster not found", name)
+}
+
+// GetAllMWAAEnvironmentResources retrieves all mwaa.Environment items from an AWS CloudFormation template
+func (t *Template) GetAllMWAAEnvironmentResources() map[string]*mwaa.Environment {
+ results := map[string]*mwaa.Environment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mwaa.Environment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMWAAEnvironmentWithName retrieves all mwaa.Environment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMWAAEnvironmentWithName(name string) (*mwaa.Environment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mwaa.Environment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mwaa.Environment not found", name)
+}
+
+// GetAllMacieCustomDataIdentifierResources retrieves all macie.CustomDataIdentifier items from an AWS CloudFormation template
+func (t *Template) GetAllMacieCustomDataIdentifierResources() map[string]*macie.CustomDataIdentifier {
+ results := map[string]*macie.CustomDataIdentifier{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *macie.CustomDataIdentifier:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMacieCustomDataIdentifierWithName retrieves all macie.CustomDataIdentifier items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMacieCustomDataIdentifierWithName(name string) (*macie.CustomDataIdentifier, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *macie.CustomDataIdentifier:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type macie.CustomDataIdentifier not found", name)
+}
+
+// GetAllMacieFindingsFilterResources retrieves all macie.FindingsFilter items from an AWS CloudFormation template
+func (t *Template) GetAllMacieFindingsFilterResources() map[string]*macie.FindingsFilter {
+ results := map[string]*macie.FindingsFilter{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *macie.FindingsFilter:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMacieFindingsFilterWithName retrieves all macie.FindingsFilter items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMacieFindingsFilterWithName(name string) (*macie.FindingsFilter, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *macie.FindingsFilter:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type macie.FindingsFilter not found", name)
+}
+
+// GetAllMacieSessionResources retrieves all macie.Session items from an AWS CloudFormation template
+func (t *Template) GetAllMacieSessionResources() map[string]*macie.Session {
+ results := map[string]*macie.Session{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *macie.Session:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMacieSessionWithName retrieves all macie.Session items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMacieSessionWithName(name string) (*macie.Session, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *macie.Session:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type macie.Session not found", name)
+}
+
+// GetAllManagedBlockchainMemberResources retrieves all managedblockchain.Member items from an AWS CloudFormation template
+func (t *Template) GetAllManagedBlockchainMemberResources() map[string]*managedblockchain.Member {
+ results := map[string]*managedblockchain.Member{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *managedblockchain.Member:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetManagedBlockchainMemberWithName retrieves all managedblockchain.Member items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetManagedBlockchainMemberWithName(name string) (*managedblockchain.Member, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *managedblockchain.Member:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type managedblockchain.Member not found", name)
+}
+
+// GetAllManagedBlockchainNodeResources retrieves all managedblockchain.Node items from an AWS CloudFormation template
+func (t *Template) GetAllManagedBlockchainNodeResources() map[string]*managedblockchain.Node {
+ results := map[string]*managedblockchain.Node{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *managedblockchain.Node:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetManagedBlockchainNodeWithName retrieves all managedblockchain.Node items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetManagedBlockchainNodeWithName(name string) (*managedblockchain.Node, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *managedblockchain.Node:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type managedblockchain.Node not found", name)
+}
+
+// GetAllMediaConnectFlowResources retrieves all mediaconnect.Flow items from an AWS CloudFormation template
+func (t *Template) GetAllMediaConnectFlowResources() map[string]*mediaconnect.Flow {
+ results := map[string]*mediaconnect.Flow{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediaconnect.Flow:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaConnectFlowWithName retrieves all mediaconnect.Flow items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaConnectFlowWithName(name string) (*mediaconnect.Flow, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediaconnect.Flow:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediaconnect.Flow not found", name)
+}
+
+// GetAllMediaConnectFlowEntitlementResources retrieves all mediaconnect.FlowEntitlement items from an AWS CloudFormation template
+func (t *Template) GetAllMediaConnectFlowEntitlementResources() map[string]*mediaconnect.FlowEntitlement {
+ results := map[string]*mediaconnect.FlowEntitlement{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediaconnect.FlowEntitlement:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaConnectFlowEntitlementWithName retrieves all mediaconnect.FlowEntitlement items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaConnectFlowEntitlementWithName(name string) (*mediaconnect.FlowEntitlement, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediaconnect.FlowEntitlement:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediaconnect.FlowEntitlement not found", name)
+}
+
+// GetAllMediaConnectFlowOutputResources retrieves all mediaconnect.FlowOutput items from an AWS CloudFormation template
+func (t *Template) GetAllMediaConnectFlowOutputResources() map[string]*mediaconnect.FlowOutput {
+ results := map[string]*mediaconnect.FlowOutput{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediaconnect.FlowOutput:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaConnectFlowOutputWithName retrieves all mediaconnect.FlowOutput items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaConnectFlowOutputWithName(name string) (*mediaconnect.FlowOutput, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediaconnect.FlowOutput:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediaconnect.FlowOutput not found", name)
+}
+
+// GetAllMediaConnectFlowSourceResources retrieves all mediaconnect.FlowSource items from an AWS CloudFormation template
+func (t *Template) GetAllMediaConnectFlowSourceResources() map[string]*mediaconnect.FlowSource {
+ results := map[string]*mediaconnect.FlowSource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediaconnect.FlowSource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaConnectFlowSourceWithName retrieves all mediaconnect.FlowSource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaConnectFlowSourceWithName(name string) (*mediaconnect.FlowSource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediaconnect.FlowSource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediaconnect.FlowSource not found", name)
+}
+
+// GetAllMediaConnectFlowVpcInterfaceResources retrieves all mediaconnect.FlowVpcInterface items from an AWS CloudFormation template
+func (t *Template) GetAllMediaConnectFlowVpcInterfaceResources() map[string]*mediaconnect.FlowVpcInterface {
+ results := map[string]*mediaconnect.FlowVpcInterface{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediaconnect.FlowVpcInterface:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaConnectFlowVpcInterfaceWithName retrieves all mediaconnect.FlowVpcInterface items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaConnectFlowVpcInterfaceWithName(name string) (*mediaconnect.FlowVpcInterface, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediaconnect.FlowVpcInterface:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediaconnect.FlowVpcInterface not found", name)
+}
+
+// GetAllMediaConvertJobTemplateResources retrieves all mediaconvert.JobTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllMediaConvertJobTemplateResources() map[string]*mediaconvert.JobTemplate {
+ results := map[string]*mediaconvert.JobTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediaconvert.JobTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaConvertJobTemplateWithName retrieves all mediaconvert.JobTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaConvertJobTemplateWithName(name string) (*mediaconvert.JobTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediaconvert.JobTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediaconvert.JobTemplate not found", name)
+}
+
+// GetAllMediaConvertPresetResources retrieves all mediaconvert.Preset items from an AWS CloudFormation template
+func (t *Template) GetAllMediaConvertPresetResources() map[string]*mediaconvert.Preset {
+ results := map[string]*mediaconvert.Preset{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediaconvert.Preset:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaConvertPresetWithName retrieves all mediaconvert.Preset items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaConvertPresetWithName(name string) (*mediaconvert.Preset, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediaconvert.Preset:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediaconvert.Preset not found", name)
+}
+
+// GetAllMediaConvertQueueResources retrieves all mediaconvert.Queue items from an AWS CloudFormation template
+func (t *Template) GetAllMediaConvertQueueResources() map[string]*mediaconvert.Queue {
+ results := map[string]*mediaconvert.Queue{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediaconvert.Queue:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaConvertQueueWithName retrieves all mediaconvert.Queue items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaConvertQueueWithName(name string) (*mediaconvert.Queue, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediaconvert.Queue:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediaconvert.Queue not found", name)
+}
+
+// GetAllMediaLiveChannelResources retrieves all medialive.Channel items from an AWS CloudFormation template
+func (t *Template) GetAllMediaLiveChannelResources() map[string]*medialive.Channel {
+ results := map[string]*medialive.Channel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *medialive.Channel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaLiveChannelWithName retrieves all medialive.Channel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaLiveChannelWithName(name string) (*medialive.Channel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *medialive.Channel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type medialive.Channel not found", name)
+}
+
+// GetAllMediaLiveInputResources retrieves all medialive.Input items from an AWS CloudFormation template
+func (t *Template) GetAllMediaLiveInputResources() map[string]*medialive.Input {
+ results := map[string]*medialive.Input{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *medialive.Input:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaLiveInputWithName retrieves all medialive.Input items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaLiveInputWithName(name string) (*medialive.Input, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *medialive.Input:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type medialive.Input not found", name)
+}
+
+// GetAllMediaLiveInputSecurityGroupResources retrieves all medialive.InputSecurityGroup items from an AWS CloudFormation template
+func (t *Template) GetAllMediaLiveInputSecurityGroupResources() map[string]*medialive.InputSecurityGroup {
+ results := map[string]*medialive.InputSecurityGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *medialive.InputSecurityGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaLiveInputSecurityGroupWithName retrieves all medialive.InputSecurityGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaLiveInputSecurityGroupWithName(name string) (*medialive.InputSecurityGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *medialive.InputSecurityGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type medialive.InputSecurityGroup not found", name)
+}
+
+// GetAllMediaPackageAssetResources retrieves all mediapackage.Asset items from an AWS CloudFormation template
+func (t *Template) GetAllMediaPackageAssetResources() map[string]*mediapackage.Asset {
+ results := map[string]*mediapackage.Asset{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediapackage.Asset:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaPackageAssetWithName retrieves all mediapackage.Asset items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaPackageAssetWithName(name string) (*mediapackage.Asset, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediapackage.Asset:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediapackage.Asset not found", name)
+}
+
+// GetAllMediaPackageChannelResources retrieves all mediapackage.Channel items from an AWS CloudFormation template
+func (t *Template) GetAllMediaPackageChannelResources() map[string]*mediapackage.Channel {
+ results := map[string]*mediapackage.Channel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediapackage.Channel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaPackageChannelWithName retrieves all mediapackage.Channel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaPackageChannelWithName(name string) (*mediapackage.Channel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediapackage.Channel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediapackage.Channel not found", name)
+}
+
+// GetAllMediaPackageOriginEndpointResources retrieves all mediapackage.OriginEndpoint items from an AWS CloudFormation template
+func (t *Template) GetAllMediaPackageOriginEndpointResources() map[string]*mediapackage.OriginEndpoint {
+ results := map[string]*mediapackage.OriginEndpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediapackage.OriginEndpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaPackageOriginEndpointWithName retrieves all mediapackage.OriginEndpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaPackageOriginEndpointWithName(name string) (*mediapackage.OriginEndpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediapackage.OriginEndpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediapackage.OriginEndpoint not found", name)
+}
+
+// GetAllMediaPackagePackagingConfigurationResources retrieves all mediapackage.PackagingConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllMediaPackagePackagingConfigurationResources() map[string]*mediapackage.PackagingConfiguration {
+ results := map[string]*mediapackage.PackagingConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediapackage.PackagingConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaPackagePackagingConfigurationWithName retrieves all mediapackage.PackagingConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaPackagePackagingConfigurationWithName(name string) (*mediapackage.PackagingConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediapackage.PackagingConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediapackage.PackagingConfiguration not found", name)
+}
+
+// GetAllMediaPackagePackagingGroupResources retrieves all mediapackage.PackagingGroup items from an AWS CloudFormation template
+func (t *Template) GetAllMediaPackagePackagingGroupResources() map[string]*mediapackage.PackagingGroup {
+ results := map[string]*mediapackage.PackagingGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediapackage.PackagingGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaPackagePackagingGroupWithName retrieves all mediapackage.PackagingGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaPackagePackagingGroupWithName(name string) (*mediapackage.PackagingGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediapackage.PackagingGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediapackage.PackagingGroup not found", name)
+}
+
+// GetAllMediaStoreContainerResources retrieves all mediastore.Container items from an AWS CloudFormation template
+func (t *Template) GetAllMediaStoreContainerResources() map[string]*mediastore.Container {
+ results := map[string]*mediastore.Container{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *mediastore.Container:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMediaStoreContainerWithName retrieves all mediastore.Container items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMediaStoreContainerWithName(name string) (*mediastore.Container, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *mediastore.Container:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type mediastore.Container not found", name)
+}
+
+// GetAllMemoryDBACLResources retrieves all memorydb.ACL items from an AWS CloudFormation template
+func (t *Template) GetAllMemoryDBACLResources() map[string]*memorydb.ACL {
+ results := map[string]*memorydb.ACL{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *memorydb.ACL:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMemoryDBACLWithName retrieves all memorydb.ACL items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMemoryDBACLWithName(name string) (*memorydb.ACL, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *memorydb.ACL:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type memorydb.ACL not found", name)
+}
+
+// GetAllMemoryDBClusterResources retrieves all memorydb.Cluster items from an AWS CloudFormation template
+func (t *Template) GetAllMemoryDBClusterResources() map[string]*memorydb.Cluster {
+ results := map[string]*memorydb.Cluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *memorydb.Cluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMemoryDBClusterWithName retrieves all memorydb.Cluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMemoryDBClusterWithName(name string) (*memorydb.Cluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *memorydb.Cluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type memorydb.Cluster not found", name)
+}
+
+// GetAllMemoryDBParameterGroupResources retrieves all memorydb.ParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllMemoryDBParameterGroupResources() map[string]*memorydb.ParameterGroup {
+ results := map[string]*memorydb.ParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *memorydb.ParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMemoryDBParameterGroupWithName retrieves all memorydb.ParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMemoryDBParameterGroupWithName(name string) (*memorydb.ParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *memorydb.ParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type memorydb.ParameterGroup not found", name)
+}
+
+// GetAllMemoryDBSubnetGroupResources retrieves all memorydb.SubnetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllMemoryDBSubnetGroupResources() map[string]*memorydb.SubnetGroup {
+ results := map[string]*memorydb.SubnetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *memorydb.SubnetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMemoryDBSubnetGroupWithName retrieves all memorydb.SubnetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMemoryDBSubnetGroupWithName(name string) (*memorydb.SubnetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *memorydb.SubnetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type memorydb.SubnetGroup not found", name)
+}
+
+// GetAllMemoryDBUserResources retrieves all memorydb.User items from an AWS CloudFormation template
+func (t *Template) GetAllMemoryDBUserResources() map[string]*memorydb.User {
+ results := map[string]*memorydb.User{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *memorydb.User:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetMemoryDBUserWithName retrieves all memorydb.User items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetMemoryDBUserWithName(name string) (*memorydb.User, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *memorydb.User:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type memorydb.User not found", name)
+}
+
+// GetAllNeptuneDBClusterResources retrieves all neptune.DBCluster items from an AWS CloudFormation template
+func (t *Template) GetAllNeptuneDBClusterResources() map[string]*neptune.DBCluster {
+ results := map[string]*neptune.DBCluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *neptune.DBCluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNeptuneDBClusterWithName retrieves all neptune.DBCluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNeptuneDBClusterWithName(name string) (*neptune.DBCluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *neptune.DBCluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type neptune.DBCluster not found", name)
+}
+
+// GetAllNeptuneDBClusterParameterGroupResources retrieves all neptune.DBClusterParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllNeptuneDBClusterParameterGroupResources() map[string]*neptune.DBClusterParameterGroup {
+ results := map[string]*neptune.DBClusterParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *neptune.DBClusterParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNeptuneDBClusterParameterGroupWithName retrieves all neptune.DBClusterParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNeptuneDBClusterParameterGroupWithName(name string) (*neptune.DBClusterParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *neptune.DBClusterParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type neptune.DBClusterParameterGroup not found", name)
+}
+
+// GetAllNeptuneDBInstanceResources retrieves all neptune.DBInstance items from an AWS CloudFormation template
+func (t *Template) GetAllNeptuneDBInstanceResources() map[string]*neptune.DBInstance {
+ results := map[string]*neptune.DBInstance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *neptune.DBInstance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNeptuneDBInstanceWithName retrieves all neptune.DBInstance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNeptuneDBInstanceWithName(name string) (*neptune.DBInstance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *neptune.DBInstance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type neptune.DBInstance not found", name)
+}
+
+// GetAllNeptuneDBParameterGroupResources retrieves all neptune.DBParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllNeptuneDBParameterGroupResources() map[string]*neptune.DBParameterGroup {
+ results := map[string]*neptune.DBParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *neptune.DBParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNeptuneDBParameterGroupWithName retrieves all neptune.DBParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNeptuneDBParameterGroupWithName(name string) (*neptune.DBParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *neptune.DBParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type neptune.DBParameterGroup not found", name)
+}
+
+// GetAllNeptuneDBSubnetGroupResources retrieves all neptune.DBSubnetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllNeptuneDBSubnetGroupResources() map[string]*neptune.DBSubnetGroup {
+ results := map[string]*neptune.DBSubnetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *neptune.DBSubnetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNeptuneDBSubnetGroupWithName retrieves all neptune.DBSubnetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNeptuneDBSubnetGroupWithName(name string) (*neptune.DBSubnetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *neptune.DBSubnetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type neptune.DBSubnetGroup not found", name)
+}
+
+// GetAllNetworkFirewallFirewallResources retrieves all networkfirewall.Firewall items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkFirewallFirewallResources() map[string]*networkfirewall.Firewall {
+ results := map[string]*networkfirewall.Firewall{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkfirewall.Firewall:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkFirewallFirewallWithName retrieves all networkfirewall.Firewall items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkFirewallFirewallWithName(name string) (*networkfirewall.Firewall, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkfirewall.Firewall:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkfirewall.Firewall not found", name)
+}
+
+// GetAllNetworkFirewallFirewallPolicyResources retrieves all networkfirewall.FirewallPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkFirewallFirewallPolicyResources() map[string]*networkfirewall.FirewallPolicy {
+ results := map[string]*networkfirewall.FirewallPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkfirewall.FirewallPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkFirewallFirewallPolicyWithName retrieves all networkfirewall.FirewallPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkFirewallFirewallPolicyWithName(name string) (*networkfirewall.FirewallPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkfirewall.FirewallPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkfirewall.FirewallPolicy not found", name)
+}
+
+// GetAllNetworkFirewallLoggingConfigurationResources retrieves all networkfirewall.LoggingConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkFirewallLoggingConfigurationResources() map[string]*networkfirewall.LoggingConfiguration {
+ results := map[string]*networkfirewall.LoggingConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkfirewall.LoggingConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkFirewallLoggingConfigurationWithName retrieves all networkfirewall.LoggingConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkFirewallLoggingConfigurationWithName(name string) (*networkfirewall.LoggingConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkfirewall.LoggingConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkfirewall.LoggingConfiguration not found", name)
+}
+
+// GetAllNetworkFirewallRuleGroupResources retrieves all networkfirewall.RuleGroup items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkFirewallRuleGroupResources() map[string]*networkfirewall.RuleGroup {
+ results := map[string]*networkfirewall.RuleGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkfirewall.RuleGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkFirewallRuleGroupWithName retrieves all networkfirewall.RuleGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkFirewallRuleGroupWithName(name string) (*networkfirewall.RuleGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkfirewall.RuleGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkfirewall.RuleGroup not found", name)
+}
+
+// GetAllNetworkManagerCustomerGatewayAssociationResources retrieves all networkmanager.CustomerGatewayAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkManagerCustomerGatewayAssociationResources() map[string]*networkmanager.CustomerGatewayAssociation {
+ results := map[string]*networkmanager.CustomerGatewayAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkmanager.CustomerGatewayAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkManagerCustomerGatewayAssociationWithName retrieves all networkmanager.CustomerGatewayAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkManagerCustomerGatewayAssociationWithName(name string) (*networkmanager.CustomerGatewayAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkmanager.CustomerGatewayAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkmanager.CustomerGatewayAssociation not found", name)
+}
+
+// GetAllNetworkManagerDeviceResources retrieves all networkmanager.Device items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkManagerDeviceResources() map[string]*networkmanager.Device {
+ results := map[string]*networkmanager.Device{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkmanager.Device:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkManagerDeviceWithName retrieves all networkmanager.Device items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkManagerDeviceWithName(name string) (*networkmanager.Device, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkmanager.Device:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkmanager.Device not found", name)
+}
+
+// GetAllNetworkManagerGlobalNetworkResources retrieves all networkmanager.GlobalNetwork items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkManagerGlobalNetworkResources() map[string]*networkmanager.GlobalNetwork {
+ results := map[string]*networkmanager.GlobalNetwork{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkmanager.GlobalNetwork:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkManagerGlobalNetworkWithName retrieves all networkmanager.GlobalNetwork items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkManagerGlobalNetworkWithName(name string) (*networkmanager.GlobalNetwork, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkmanager.GlobalNetwork:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkmanager.GlobalNetwork not found", name)
+}
+
+// GetAllNetworkManagerLinkResources retrieves all networkmanager.Link items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkManagerLinkResources() map[string]*networkmanager.Link {
+ results := map[string]*networkmanager.Link{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkmanager.Link:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkManagerLinkWithName retrieves all networkmanager.Link items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkManagerLinkWithName(name string) (*networkmanager.Link, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkmanager.Link:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkmanager.Link not found", name)
+}
+
+// GetAllNetworkManagerLinkAssociationResources retrieves all networkmanager.LinkAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkManagerLinkAssociationResources() map[string]*networkmanager.LinkAssociation {
+ results := map[string]*networkmanager.LinkAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkmanager.LinkAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkManagerLinkAssociationWithName retrieves all networkmanager.LinkAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkManagerLinkAssociationWithName(name string) (*networkmanager.LinkAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkmanager.LinkAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkmanager.LinkAssociation not found", name)
+}
+
+// GetAllNetworkManagerSiteResources retrieves all networkmanager.Site items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkManagerSiteResources() map[string]*networkmanager.Site {
+ results := map[string]*networkmanager.Site{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkmanager.Site:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkManagerSiteWithName retrieves all networkmanager.Site items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkManagerSiteWithName(name string) (*networkmanager.Site, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkmanager.Site:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkmanager.Site not found", name)
+}
+
+// GetAllNetworkManagerTransitGatewayRegistrationResources retrieves all networkmanager.TransitGatewayRegistration items from an AWS CloudFormation template
+func (t *Template) GetAllNetworkManagerTransitGatewayRegistrationResources() map[string]*networkmanager.TransitGatewayRegistration {
+ results := map[string]*networkmanager.TransitGatewayRegistration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *networkmanager.TransitGatewayRegistration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNetworkManagerTransitGatewayRegistrationWithName retrieves all networkmanager.TransitGatewayRegistration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNetworkManagerTransitGatewayRegistrationWithName(name string) (*networkmanager.TransitGatewayRegistration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *networkmanager.TransitGatewayRegistration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type networkmanager.TransitGatewayRegistration not found", name)
+}
+
+// GetAllNimbleStudioLaunchProfileResources retrieves all nimblestudio.LaunchProfile items from an AWS CloudFormation template
+func (t *Template) GetAllNimbleStudioLaunchProfileResources() map[string]*nimblestudio.LaunchProfile {
+ results := map[string]*nimblestudio.LaunchProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *nimblestudio.LaunchProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNimbleStudioLaunchProfileWithName retrieves all nimblestudio.LaunchProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNimbleStudioLaunchProfileWithName(name string) (*nimblestudio.LaunchProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *nimblestudio.LaunchProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type nimblestudio.LaunchProfile not found", name)
+}
+
+// GetAllNimbleStudioStreamingImageResources retrieves all nimblestudio.StreamingImage items from an AWS CloudFormation template
+func (t *Template) GetAllNimbleStudioStreamingImageResources() map[string]*nimblestudio.StreamingImage {
+ results := map[string]*nimblestudio.StreamingImage{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *nimblestudio.StreamingImage:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNimbleStudioStreamingImageWithName retrieves all nimblestudio.StreamingImage items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNimbleStudioStreamingImageWithName(name string) (*nimblestudio.StreamingImage, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *nimblestudio.StreamingImage:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type nimblestudio.StreamingImage not found", name)
+}
+
+// GetAllNimbleStudioStudioResources retrieves all nimblestudio.Studio items from an AWS CloudFormation template
+func (t *Template) GetAllNimbleStudioStudioResources() map[string]*nimblestudio.Studio {
+ results := map[string]*nimblestudio.Studio{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *nimblestudio.Studio:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNimbleStudioStudioWithName retrieves all nimblestudio.Studio items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNimbleStudioStudioWithName(name string) (*nimblestudio.Studio, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *nimblestudio.Studio:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type nimblestudio.Studio not found", name)
+}
+
+// GetAllNimbleStudioStudioComponentResources retrieves all nimblestudio.StudioComponent items from an AWS CloudFormation template
+func (t *Template) GetAllNimbleStudioStudioComponentResources() map[string]*nimblestudio.StudioComponent {
+ results := map[string]*nimblestudio.StudioComponent{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *nimblestudio.StudioComponent:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetNimbleStudioStudioComponentWithName retrieves all nimblestudio.StudioComponent items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetNimbleStudioStudioComponentWithName(name string) (*nimblestudio.StudioComponent, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *nimblestudio.StudioComponent:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type nimblestudio.StudioComponent not found", name)
+}
+
+// GetAllOpenSearchServiceDomainResources retrieves all opensearchservice.Domain items from an AWS CloudFormation template
+func (t *Template) GetAllOpenSearchServiceDomainResources() map[string]*opensearchservice.Domain {
+ results := map[string]*opensearchservice.Domain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opensearchservice.Domain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpenSearchServiceDomainWithName retrieves all opensearchservice.Domain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpenSearchServiceDomainWithName(name string) (*opensearchservice.Domain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opensearchservice.Domain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opensearchservice.Domain not found", name)
+}
+
+// GetAllOpsWorksAppResources retrieves all opsworks.App items from an AWS CloudFormation template
+func (t *Template) GetAllOpsWorksAppResources() map[string]*opsworks.App {
+ results := map[string]*opsworks.App{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opsworks.App:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpsWorksAppWithName retrieves all opsworks.App items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpsWorksAppWithName(name string) (*opsworks.App, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opsworks.App:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opsworks.App not found", name)
+}
+
+// GetAllOpsWorksElasticLoadBalancerAttachmentResources retrieves all opsworks.ElasticLoadBalancerAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllOpsWorksElasticLoadBalancerAttachmentResources() map[string]*opsworks.ElasticLoadBalancerAttachment {
+ results := map[string]*opsworks.ElasticLoadBalancerAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opsworks.ElasticLoadBalancerAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpsWorksElasticLoadBalancerAttachmentWithName retrieves all opsworks.ElasticLoadBalancerAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpsWorksElasticLoadBalancerAttachmentWithName(name string) (*opsworks.ElasticLoadBalancerAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opsworks.ElasticLoadBalancerAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opsworks.ElasticLoadBalancerAttachment not found", name)
+}
+
+// GetAllOpsWorksInstanceResources retrieves all opsworks.Instance items from an AWS CloudFormation template
+func (t *Template) GetAllOpsWorksInstanceResources() map[string]*opsworks.Instance {
+ results := map[string]*opsworks.Instance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opsworks.Instance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpsWorksInstanceWithName retrieves all opsworks.Instance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpsWorksInstanceWithName(name string) (*opsworks.Instance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opsworks.Instance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opsworks.Instance not found", name)
+}
+
+// GetAllOpsWorksLayerResources retrieves all opsworks.Layer items from an AWS CloudFormation template
+func (t *Template) GetAllOpsWorksLayerResources() map[string]*opsworks.Layer {
+ results := map[string]*opsworks.Layer{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opsworks.Layer:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpsWorksLayerWithName retrieves all opsworks.Layer items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpsWorksLayerWithName(name string) (*opsworks.Layer, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opsworks.Layer:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opsworks.Layer not found", name)
+}
+
+// GetAllOpsWorksStackResources retrieves all opsworks.Stack items from an AWS CloudFormation template
+func (t *Template) GetAllOpsWorksStackResources() map[string]*opsworks.Stack {
+ results := map[string]*opsworks.Stack{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opsworks.Stack:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpsWorksStackWithName retrieves all opsworks.Stack items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpsWorksStackWithName(name string) (*opsworks.Stack, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opsworks.Stack:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opsworks.Stack not found", name)
+}
+
+// GetAllOpsWorksUserProfileResources retrieves all opsworks.UserProfile items from an AWS CloudFormation template
+func (t *Template) GetAllOpsWorksUserProfileResources() map[string]*opsworks.UserProfile {
+ results := map[string]*opsworks.UserProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opsworks.UserProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpsWorksUserProfileWithName retrieves all opsworks.UserProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpsWorksUserProfileWithName(name string) (*opsworks.UserProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opsworks.UserProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opsworks.UserProfile not found", name)
+}
+
+// GetAllOpsWorksVolumeResources retrieves all opsworks.Volume items from an AWS CloudFormation template
+func (t *Template) GetAllOpsWorksVolumeResources() map[string]*opsworks.Volume {
+ results := map[string]*opsworks.Volume{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opsworks.Volume:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpsWorksVolumeWithName retrieves all opsworks.Volume items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpsWorksVolumeWithName(name string) (*opsworks.Volume, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opsworks.Volume:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opsworks.Volume not found", name)
+}
+
+// GetAllOpsWorksCMServerResources retrieves all opsworkscm.Server items from an AWS CloudFormation template
+func (t *Template) GetAllOpsWorksCMServerResources() map[string]*opsworkscm.Server {
+ results := map[string]*opsworkscm.Server{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *opsworkscm.Server:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetOpsWorksCMServerWithName retrieves all opsworkscm.Server items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetOpsWorksCMServerWithName(name string) (*opsworkscm.Server, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *opsworkscm.Server:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type opsworkscm.Server not found", name)
+}
+
+// GetAllPanoramaApplicationInstanceResources retrieves all panorama.ApplicationInstance items from an AWS CloudFormation template
+func (t *Template) GetAllPanoramaApplicationInstanceResources() map[string]*panorama.ApplicationInstance {
+ results := map[string]*panorama.ApplicationInstance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *panorama.ApplicationInstance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPanoramaApplicationInstanceWithName retrieves all panorama.ApplicationInstance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPanoramaApplicationInstanceWithName(name string) (*panorama.ApplicationInstance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *panorama.ApplicationInstance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type panorama.ApplicationInstance not found", name)
+}
+
+// GetAllPanoramaPackageResources retrieves all panorama.Package items from an AWS CloudFormation template
+func (t *Template) GetAllPanoramaPackageResources() map[string]*panorama.Package {
+ results := map[string]*panorama.Package{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *panorama.Package:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPanoramaPackageWithName retrieves all panorama.Package items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPanoramaPackageWithName(name string) (*panorama.Package, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *panorama.Package:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type panorama.Package not found", name)
+}
+
+// GetAllPanoramaPackageVersionResources retrieves all panorama.PackageVersion items from an AWS CloudFormation template
+func (t *Template) GetAllPanoramaPackageVersionResources() map[string]*panorama.PackageVersion {
+ results := map[string]*panorama.PackageVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *panorama.PackageVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPanoramaPackageVersionWithName retrieves all panorama.PackageVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPanoramaPackageVersionWithName(name string) (*panorama.PackageVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *panorama.PackageVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type panorama.PackageVersion not found", name)
+}
+
+// GetAllPinpointADMChannelResources retrieves all pinpoint.ADMChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointADMChannelResources() map[string]*pinpoint.ADMChannel {
+ results := map[string]*pinpoint.ADMChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.ADMChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointADMChannelWithName retrieves all pinpoint.ADMChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointADMChannelWithName(name string) (*pinpoint.ADMChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.ADMChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.ADMChannel not found", name)
+}
+
+// GetAllPinpointAPNSChannelResources retrieves all pinpoint.APNSChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointAPNSChannelResources() map[string]*pinpoint.APNSChannel {
+ results := map[string]*pinpoint.APNSChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.APNSChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointAPNSChannelWithName retrieves all pinpoint.APNSChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointAPNSChannelWithName(name string) (*pinpoint.APNSChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.APNSChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.APNSChannel not found", name)
+}
+
+// GetAllPinpointAPNSSandboxChannelResources retrieves all pinpoint.APNSSandboxChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointAPNSSandboxChannelResources() map[string]*pinpoint.APNSSandboxChannel {
+ results := map[string]*pinpoint.APNSSandboxChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.APNSSandboxChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointAPNSSandboxChannelWithName retrieves all pinpoint.APNSSandboxChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointAPNSSandboxChannelWithName(name string) (*pinpoint.APNSSandboxChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.APNSSandboxChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.APNSSandboxChannel not found", name)
+}
+
+// GetAllPinpointAPNSVoipChannelResources retrieves all pinpoint.APNSVoipChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointAPNSVoipChannelResources() map[string]*pinpoint.APNSVoipChannel {
+ results := map[string]*pinpoint.APNSVoipChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.APNSVoipChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointAPNSVoipChannelWithName retrieves all pinpoint.APNSVoipChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointAPNSVoipChannelWithName(name string) (*pinpoint.APNSVoipChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.APNSVoipChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.APNSVoipChannel not found", name)
+}
+
+// GetAllPinpointAPNSVoipSandboxChannelResources retrieves all pinpoint.APNSVoipSandboxChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointAPNSVoipSandboxChannelResources() map[string]*pinpoint.APNSVoipSandboxChannel {
+ results := map[string]*pinpoint.APNSVoipSandboxChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.APNSVoipSandboxChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointAPNSVoipSandboxChannelWithName retrieves all pinpoint.APNSVoipSandboxChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointAPNSVoipSandboxChannelWithName(name string) (*pinpoint.APNSVoipSandboxChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.APNSVoipSandboxChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.APNSVoipSandboxChannel not found", name)
+}
+
+// GetAllPinpointAppResources retrieves all pinpoint.App items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointAppResources() map[string]*pinpoint.App {
+ results := map[string]*pinpoint.App{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.App:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointAppWithName retrieves all pinpoint.App items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointAppWithName(name string) (*pinpoint.App, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.App:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.App not found", name)
+}
+
+// GetAllPinpointApplicationSettingsResources retrieves all pinpoint.ApplicationSettings items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointApplicationSettingsResources() map[string]*pinpoint.ApplicationSettings {
+ results := map[string]*pinpoint.ApplicationSettings{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.ApplicationSettings:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointApplicationSettingsWithName retrieves all pinpoint.ApplicationSettings items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointApplicationSettingsWithName(name string) (*pinpoint.ApplicationSettings, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.ApplicationSettings:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.ApplicationSettings not found", name)
+}
+
+// GetAllPinpointBaiduChannelResources retrieves all pinpoint.BaiduChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointBaiduChannelResources() map[string]*pinpoint.BaiduChannel {
+ results := map[string]*pinpoint.BaiduChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.BaiduChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointBaiduChannelWithName retrieves all pinpoint.BaiduChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointBaiduChannelWithName(name string) (*pinpoint.BaiduChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.BaiduChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.BaiduChannel not found", name)
+}
+
+// GetAllPinpointCampaignResources retrieves all pinpoint.Campaign items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointCampaignResources() map[string]*pinpoint.Campaign {
+ results := map[string]*pinpoint.Campaign{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.Campaign:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointCampaignWithName retrieves all pinpoint.Campaign items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointCampaignWithName(name string) (*pinpoint.Campaign, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.Campaign:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.Campaign not found", name)
+}
+
+// GetAllPinpointEmailChannelResources retrieves all pinpoint.EmailChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointEmailChannelResources() map[string]*pinpoint.EmailChannel {
+ results := map[string]*pinpoint.EmailChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.EmailChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointEmailChannelWithName retrieves all pinpoint.EmailChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointEmailChannelWithName(name string) (*pinpoint.EmailChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.EmailChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.EmailChannel not found", name)
+}
+
+// GetAllPinpointEmailTemplateResources retrieves all pinpoint.EmailTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointEmailTemplateResources() map[string]*pinpoint.EmailTemplate {
+ results := map[string]*pinpoint.EmailTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.EmailTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointEmailTemplateWithName retrieves all pinpoint.EmailTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointEmailTemplateWithName(name string) (*pinpoint.EmailTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.EmailTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.EmailTemplate not found", name)
+}
+
+// GetAllPinpointEventStreamResources retrieves all pinpoint.EventStream items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointEventStreamResources() map[string]*pinpoint.EventStream {
+ results := map[string]*pinpoint.EventStream{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.EventStream:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointEventStreamWithName retrieves all pinpoint.EventStream items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointEventStreamWithName(name string) (*pinpoint.EventStream, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.EventStream:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.EventStream not found", name)
+}
+
+// GetAllPinpointGCMChannelResources retrieves all pinpoint.GCMChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointGCMChannelResources() map[string]*pinpoint.GCMChannel {
+ results := map[string]*pinpoint.GCMChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.GCMChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointGCMChannelWithName retrieves all pinpoint.GCMChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointGCMChannelWithName(name string) (*pinpoint.GCMChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.GCMChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.GCMChannel not found", name)
+}
+
+// GetAllPinpointInAppTemplateResources retrieves all pinpoint.InAppTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointInAppTemplateResources() map[string]*pinpoint.InAppTemplate {
+ results := map[string]*pinpoint.InAppTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.InAppTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointInAppTemplateWithName retrieves all pinpoint.InAppTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointInAppTemplateWithName(name string) (*pinpoint.InAppTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.InAppTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.InAppTemplate not found", name)
+}
+
+// GetAllPinpointPushTemplateResources retrieves all pinpoint.PushTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointPushTemplateResources() map[string]*pinpoint.PushTemplate {
+ results := map[string]*pinpoint.PushTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.PushTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointPushTemplateWithName retrieves all pinpoint.PushTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointPushTemplateWithName(name string) (*pinpoint.PushTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.PushTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.PushTemplate not found", name)
+}
+
+// GetAllPinpointSMSChannelResources retrieves all pinpoint.SMSChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointSMSChannelResources() map[string]*pinpoint.SMSChannel {
+ results := map[string]*pinpoint.SMSChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.SMSChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointSMSChannelWithName retrieves all pinpoint.SMSChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointSMSChannelWithName(name string) (*pinpoint.SMSChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.SMSChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.SMSChannel not found", name)
+}
+
+// GetAllPinpointSegmentResources retrieves all pinpoint.Segment items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointSegmentResources() map[string]*pinpoint.Segment {
+ results := map[string]*pinpoint.Segment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.Segment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointSegmentWithName retrieves all pinpoint.Segment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointSegmentWithName(name string) (*pinpoint.Segment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.Segment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.Segment not found", name)
+}
+
+// GetAllPinpointSmsTemplateResources retrieves all pinpoint.SmsTemplate items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointSmsTemplateResources() map[string]*pinpoint.SmsTemplate {
+ results := map[string]*pinpoint.SmsTemplate{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.SmsTemplate:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointSmsTemplateWithName retrieves all pinpoint.SmsTemplate items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointSmsTemplateWithName(name string) (*pinpoint.SmsTemplate, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.SmsTemplate:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.SmsTemplate not found", name)
+}
+
+// GetAllPinpointVoiceChannelResources retrieves all pinpoint.VoiceChannel items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointVoiceChannelResources() map[string]*pinpoint.VoiceChannel {
+ results := map[string]*pinpoint.VoiceChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpoint.VoiceChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointVoiceChannelWithName retrieves all pinpoint.VoiceChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointVoiceChannelWithName(name string) (*pinpoint.VoiceChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpoint.VoiceChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpoint.VoiceChannel not found", name)
+}
+
+// GetAllPinpointEmailConfigurationSetResources retrieves all pinpointemail.ConfigurationSet items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointEmailConfigurationSetResources() map[string]*pinpointemail.ConfigurationSet {
+ results := map[string]*pinpointemail.ConfigurationSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpointemail.ConfigurationSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointEmailConfigurationSetWithName retrieves all pinpointemail.ConfigurationSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointEmailConfigurationSetWithName(name string) (*pinpointemail.ConfigurationSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpointemail.ConfigurationSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpointemail.ConfigurationSet not found", name)
+}
+
+// GetAllPinpointEmailConfigurationSetEventDestinationResources retrieves all pinpointemail.ConfigurationSetEventDestination items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointEmailConfigurationSetEventDestinationResources() map[string]*pinpointemail.ConfigurationSetEventDestination {
+ results := map[string]*pinpointemail.ConfigurationSetEventDestination{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpointemail.ConfigurationSetEventDestination:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointEmailConfigurationSetEventDestinationWithName retrieves all pinpointemail.ConfigurationSetEventDestination items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointEmailConfigurationSetEventDestinationWithName(name string) (*pinpointemail.ConfigurationSetEventDestination, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpointemail.ConfigurationSetEventDestination:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpointemail.ConfigurationSetEventDestination not found", name)
+}
+
+// GetAllPinpointEmailDedicatedIpPoolResources retrieves all pinpointemail.DedicatedIpPool items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointEmailDedicatedIpPoolResources() map[string]*pinpointemail.DedicatedIpPool {
+ results := map[string]*pinpointemail.DedicatedIpPool{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpointemail.DedicatedIpPool:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointEmailDedicatedIpPoolWithName retrieves all pinpointemail.DedicatedIpPool items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointEmailDedicatedIpPoolWithName(name string) (*pinpointemail.DedicatedIpPool, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpointemail.DedicatedIpPool:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpointemail.DedicatedIpPool not found", name)
+}
+
+// GetAllPinpointEmailIdentityResources retrieves all pinpointemail.Identity items from an AWS CloudFormation template
+func (t *Template) GetAllPinpointEmailIdentityResources() map[string]*pinpointemail.Identity {
+ results := map[string]*pinpointemail.Identity{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *pinpointemail.Identity:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetPinpointEmailIdentityWithName retrieves all pinpointemail.Identity items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetPinpointEmailIdentityWithName(name string) (*pinpointemail.Identity, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *pinpointemail.Identity:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type pinpointemail.Identity not found", name)
+}
+
+// GetAllQLDBLedgerResources retrieves all qldb.Ledger items from an AWS CloudFormation template
+func (t *Template) GetAllQLDBLedgerResources() map[string]*qldb.Ledger {
+ results := map[string]*qldb.Ledger{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *qldb.Ledger:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetQLDBLedgerWithName retrieves all qldb.Ledger items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetQLDBLedgerWithName(name string) (*qldb.Ledger, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *qldb.Ledger:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type qldb.Ledger not found", name)
+}
+
+// GetAllQLDBStreamResources retrieves all qldb.Stream items from an AWS CloudFormation template
+func (t *Template) GetAllQLDBStreamResources() map[string]*qldb.Stream {
+ results := map[string]*qldb.Stream{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *qldb.Stream:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetQLDBStreamWithName retrieves all qldb.Stream items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetQLDBStreamWithName(name string) (*qldb.Stream, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *qldb.Stream:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type qldb.Stream not found", name)
+}
+
+// GetAllQuickSightAnalysisResources retrieves all quicksight.Analysis items from an AWS CloudFormation template
+func (t *Template) GetAllQuickSightAnalysisResources() map[string]*quicksight.Analysis {
+ results := map[string]*quicksight.Analysis{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *quicksight.Analysis:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetQuickSightAnalysisWithName retrieves all quicksight.Analysis items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetQuickSightAnalysisWithName(name string) (*quicksight.Analysis, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *quicksight.Analysis:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type quicksight.Analysis not found", name)
+}
+
+// GetAllQuickSightDashboardResources retrieves all quicksight.Dashboard items from an AWS CloudFormation template
+func (t *Template) GetAllQuickSightDashboardResources() map[string]*quicksight.Dashboard {
+ results := map[string]*quicksight.Dashboard{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *quicksight.Dashboard:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetQuickSightDashboardWithName retrieves all quicksight.Dashboard items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetQuickSightDashboardWithName(name string) (*quicksight.Dashboard, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *quicksight.Dashboard:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type quicksight.Dashboard not found", name)
+}
+
+// GetAllQuickSightDataSetResources retrieves all quicksight.DataSet items from an AWS CloudFormation template
+func (t *Template) GetAllQuickSightDataSetResources() map[string]*quicksight.DataSet {
+ results := map[string]*quicksight.DataSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *quicksight.DataSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetQuickSightDataSetWithName retrieves all quicksight.DataSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetQuickSightDataSetWithName(name string) (*quicksight.DataSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *quicksight.DataSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type quicksight.DataSet not found", name)
+}
+
+// GetAllQuickSightDataSourceResources retrieves all quicksight.DataSource items from an AWS CloudFormation template
+func (t *Template) GetAllQuickSightDataSourceResources() map[string]*quicksight.DataSource {
+ results := map[string]*quicksight.DataSource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *quicksight.DataSource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetQuickSightDataSourceWithName retrieves all quicksight.DataSource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetQuickSightDataSourceWithName(name string) (*quicksight.DataSource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *quicksight.DataSource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type quicksight.DataSource not found", name)
+}
+
+// GetAllQuickSightTemplateResources retrieves all quicksight.Template items from an AWS CloudFormation template
+func (t *Template) GetAllQuickSightTemplateResources() map[string]*quicksight.Template {
+ results := map[string]*quicksight.Template{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *quicksight.Template:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetQuickSightTemplateWithName retrieves all quicksight.Template items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetQuickSightTemplateWithName(name string) (*quicksight.Template, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *quicksight.Template:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type quicksight.Template not found", name)
+}
+
+// GetAllQuickSightThemeResources retrieves all quicksight.Theme items from an AWS CloudFormation template
+func (t *Template) GetAllQuickSightThemeResources() map[string]*quicksight.Theme {
+ results := map[string]*quicksight.Theme{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *quicksight.Theme:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetQuickSightThemeWithName retrieves all quicksight.Theme items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetQuickSightThemeWithName(name string) (*quicksight.Theme, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *quicksight.Theme:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type quicksight.Theme not found", name)
+}
+
+// GetAllRAMResourceShareResources retrieves all ram.ResourceShare items from an AWS CloudFormation template
+func (t *Template) GetAllRAMResourceShareResources() map[string]*ram.ResourceShare {
+ results := map[string]*ram.ResourceShare{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ram.ResourceShare:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRAMResourceShareWithName retrieves all ram.ResourceShare items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRAMResourceShareWithName(name string) (*ram.ResourceShare, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ram.ResourceShare:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ram.ResourceShare not found", name)
+}
+
+// GetAllRDSDBClusterResources retrieves all rds.DBCluster items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBClusterResources() map[string]*rds.DBCluster {
+ results := map[string]*rds.DBCluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBCluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBClusterWithName retrieves all rds.DBCluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBClusterWithName(name string) (*rds.DBCluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBCluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBCluster not found", name)
+}
+
+// GetAllRDSDBClusterParameterGroupResources retrieves all rds.DBClusterParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBClusterParameterGroupResources() map[string]*rds.DBClusterParameterGroup {
+ results := map[string]*rds.DBClusterParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBClusterParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBClusterParameterGroupWithName retrieves all rds.DBClusterParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBClusterParameterGroupWithName(name string) (*rds.DBClusterParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBClusterParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBClusterParameterGroup not found", name)
+}
+
+// GetAllRDSDBInstanceResources retrieves all rds.DBInstance items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBInstanceResources() map[string]*rds.DBInstance {
+ results := map[string]*rds.DBInstance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBInstance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBInstanceWithName retrieves all rds.DBInstance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBInstanceWithName(name string) (*rds.DBInstance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBInstance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBInstance not found", name)
+}
+
+// GetAllRDSDBParameterGroupResources retrieves all rds.DBParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBParameterGroupResources() map[string]*rds.DBParameterGroup {
+ results := map[string]*rds.DBParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBParameterGroupWithName retrieves all rds.DBParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBParameterGroupWithName(name string) (*rds.DBParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBParameterGroup not found", name)
+}
+
+// GetAllRDSDBProxyResources retrieves all rds.DBProxy items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBProxyResources() map[string]*rds.DBProxy {
+ results := map[string]*rds.DBProxy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBProxy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBProxyWithName retrieves all rds.DBProxy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBProxyWithName(name string) (*rds.DBProxy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBProxy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBProxy not found", name)
+}
+
+// GetAllRDSDBProxyEndpointResources retrieves all rds.DBProxyEndpoint items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBProxyEndpointResources() map[string]*rds.DBProxyEndpoint {
+ results := map[string]*rds.DBProxyEndpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBProxyEndpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBProxyEndpointWithName retrieves all rds.DBProxyEndpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBProxyEndpointWithName(name string) (*rds.DBProxyEndpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBProxyEndpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBProxyEndpoint not found", name)
+}
+
+// GetAllRDSDBProxyTargetGroupResources retrieves all rds.DBProxyTargetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBProxyTargetGroupResources() map[string]*rds.DBProxyTargetGroup {
+ results := map[string]*rds.DBProxyTargetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBProxyTargetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBProxyTargetGroupWithName retrieves all rds.DBProxyTargetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBProxyTargetGroupWithName(name string) (*rds.DBProxyTargetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBProxyTargetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBProxyTargetGroup not found", name)
+}
+
+// GetAllRDSDBSecurityGroupResources retrieves all rds.DBSecurityGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBSecurityGroupResources() map[string]*rds.DBSecurityGroup {
+ results := map[string]*rds.DBSecurityGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBSecurityGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBSecurityGroupWithName retrieves all rds.DBSecurityGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBSecurityGroupWithName(name string) (*rds.DBSecurityGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBSecurityGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBSecurityGroup not found", name)
+}
+
+// GetAllRDSDBSecurityGroupIngressResources retrieves all rds.DBSecurityGroupIngress items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBSecurityGroupIngressResources() map[string]*rds.DBSecurityGroupIngress {
+ results := map[string]*rds.DBSecurityGroupIngress{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBSecurityGroupIngress:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBSecurityGroupIngressWithName retrieves all rds.DBSecurityGroupIngress items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBSecurityGroupIngressWithName(name string) (*rds.DBSecurityGroupIngress, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBSecurityGroupIngress:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBSecurityGroupIngress not found", name)
+}
+
+// GetAllRDSDBSubnetGroupResources retrieves all rds.DBSubnetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRDSDBSubnetGroupResources() map[string]*rds.DBSubnetGroup {
+ results := map[string]*rds.DBSubnetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.DBSubnetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSDBSubnetGroupWithName retrieves all rds.DBSubnetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSDBSubnetGroupWithName(name string) (*rds.DBSubnetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.DBSubnetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.DBSubnetGroup not found", name)
+}
+
+// GetAllRDSEventSubscriptionResources retrieves all rds.EventSubscription items from an AWS CloudFormation template
+func (t *Template) GetAllRDSEventSubscriptionResources() map[string]*rds.EventSubscription {
+ results := map[string]*rds.EventSubscription{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.EventSubscription:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSEventSubscriptionWithName retrieves all rds.EventSubscription items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSEventSubscriptionWithName(name string) (*rds.EventSubscription, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.EventSubscription:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.EventSubscription not found", name)
+}
+
+// GetAllRDSGlobalClusterResources retrieves all rds.GlobalCluster items from an AWS CloudFormation template
+func (t *Template) GetAllRDSGlobalClusterResources() map[string]*rds.GlobalCluster {
+ results := map[string]*rds.GlobalCluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.GlobalCluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSGlobalClusterWithName retrieves all rds.GlobalCluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSGlobalClusterWithName(name string) (*rds.GlobalCluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.GlobalCluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.GlobalCluster not found", name)
+}
+
+// GetAllRDSOptionGroupResources retrieves all rds.OptionGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRDSOptionGroupResources() map[string]*rds.OptionGroup {
+ results := map[string]*rds.OptionGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rds.OptionGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRDSOptionGroupWithName retrieves all rds.OptionGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRDSOptionGroupWithName(name string) (*rds.OptionGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rds.OptionGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rds.OptionGroup not found", name)
+}
+
+// GetAllRUMAppMonitorResources retrieves all rum.AppMonitor items from an AWS CloudFormation template
+func (t *Template) GetAllRUMAppMonitorResources() map[string]*rum.AppMonitor {
+ results := map[string]*rum.AppMonitor{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rum.AppMonitor:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRUMAppMonitorWithName retrieves all rum.AppMonitor items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRUMAppMonitorWithName(name string) (*rum.AppMonitor, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rum.AppMonitor:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rum.AppMonitor not found", name)
+}
+
+// GetAllRedshiftClusterResources retrieves all redshift.Cluster items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftClusterResources() map[string]*redshift.Cluster {
+ results := map[string]*redshift.Cluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.Cluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftClusterWithName retrieves all redshift.Cluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftClusterWithName(name string) (*redshift.Cluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.Cluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.Cluster not found", name)
+}
+
+// GetAllRedshiftClusterParameterGroupResources retrieves all redshift.ClusterParameterGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftClusterParameterGroupResources() map[string]*redshift.ClusterParameterGroup {
+ results := map[string]*redshift.ClusterParameterGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.ClusterParameterGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftClusterParameterGroupWithName retrieves all redshift.ClusterParameterGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftClusterParameterGroupWithName(name string) (*redshift.ClusterParameterGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.ClusterParameterGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.ClusterParameterGroup not found", name)
+}
+
+// GetAllRedshiftClusterSecurityGroupResources retrieves all redshift.ClusterSecurityGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftClusterSecurityGroupResources() map[string]*redshift.ClusterSecurityGroup {
+ results := map[string]*redshift.ClusterSecurityGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.ClusterSecurityGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftClusterSecurityGroupWithName retrieves all redshift.ClusterSecurityGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftClusterSecurityGroupWithName(name string) (*redshift.ClusterSecurityGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.ClusterSecurityGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.ClusterSecurityGroup not found", name)
+}
+
+// GetAllRedshiftClusterSecurityGroupIngressResources retrieves all redshift.ClusterSecurityGroupIngress items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftClusterSecurityGroupIngressResources() map[string]*redshift.ClusterSecurityGroupIngress {
+ results := map[string]*redshift.ClusterSecurityGroupIngress{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.ClusterSecurityGroupIngress:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftClusterSecurityGroupIngressWithName retrieves all redshift.ClusterSecurityGroupIngress items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftClusterSecurityGroupIngressWithName(name string) (*redshift.ClusterSecurityGroupIngress, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.ClusterSecurityGroupIngress:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.ClusterSecurityGroupIngress not found", name)
+}
+
+// GetAllRedshiftClusterSubnetGroupResources retrieves all redshift.ClusterSubnetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftClusterSubnetGroupResources() map[string]*redshift.ClusterSubnetGroup {
+ results := map[string]*redshift.ClusterSubnetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.ClusterSubnetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftClusterSubnetGroupWithName retrieves all redshift.ClusterSubnetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftClusterSubnetGroupWithName(name string) (*redshift.ClusterSubnetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.ClusterSubnetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.ClusterSubnetGroup not found", name)
+}
+
+// GetAllRedshiftEndpointAccessResources retrieves all redshift.EndpointAccess items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftEndpointAccessResources() map[string]*redshift.EndpointAccess {
+ results := map[string]*redshift.EndpointAccess{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.EndpointAccess:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftEndpointAccessWithName retrieves all redshift.EndpointAccess items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftEndpointAccessWithName(name string) (*redshift.EndpointAccess, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.EndpointAccess:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.EndpointAccess not found", name)
+}
+
+// GetAllRedshiftEndpointAuthorizationResources retrieves all redshift.EndpointAuthorization items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftEndpointAuthorizationResources() map[string]*redshift.EndpointAuthorization {
+ results := map[string]*redshift.EndpointAuthorization{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.EndpointAuthorization:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftEndpointAuthorizationWithName retrieves all redshift.EndpointAuthorization items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftEndpointAuthorizationWithName(name string) (*redshift.EndpointAuthorization, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.EndpointAuthorization:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.EndpointAuthorization not found", name)
+}
+
+// GetAllRedshiftEventSubscriptionResources retrieves all redshift.EventSubscription items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftEventSubscriptionResources() map[string]*redshift.EventSubscription {
+ results := map[string]*redshift.EventSubscription{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.EventSubscription:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftEventSubscriptionWithName retrieves all redshift.EventSubscription items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftEventSubscriptionWithName(name string) (*redshift.EventSubscription, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.EventSubscription:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.EventSubscription not found", name)
+}
+
+// GetAllRedshiftScheduledActionResources retrieves all redshift.ScheduledAction items from an AWS CloudFormation template
+func (t *Template) GetAllRedshiftScheduledActionResources() map[string]*redshift.ScheduledAction {
+ results := map[string]*redshift.ScheduledAction{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *redshift.ScheduledAction:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRedshiftScheduledActionWithName retrieves all redshift.ScheduledAction items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRedshiftScheduledActionWithName(name string) (*redshift.ScheduledAction, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *redshift.ScheduledAction:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type redshift.ScheduledAction not found", name)
+}
+
+// GetAllRefactorSpacesApplicationResources retrieves all refactorspaces.Application items from an AWS CloudFormation template
+func (t *Template) GetAllRefactorSpacesApplicationResources() map[string]*refactorspaces.Application {
+ results := map[string]*refactorspaces.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *refactorspaces.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRefactorSpacesApplicationWithName retrieves all refactorspaces.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRefactorSpacesApplicationWithName(name string) (*refactorspaces.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *refactorspaces.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type refactorspaces.Application not found", name)
+}
+
+// GetAllRefactorSpacesEnvironmentResources retrieves all refactorspaces.Environment items from an AWS CloudFormation template
+func (t *Template) GetAllRefactorSpacesEnvironmentResources() map[string]*refactorspaces.Environment {
+ results := map[string]*refactorspaces.Environment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *refactorspaces.Environment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRefactorSpacesEnvironmentWithName retrieves all refactorspaces.Environment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRefactorSpacesEnvironmentWithName(name string) (*refactorspaces.Environment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *refactorspaces.Environment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type refactorspaces.Environment not found", name)
+}
+
+// GetAllRefactorSpacesRouteResources retrieves all refactorspaces.Route items from an AWS CloudFormation template
+func (t *Template) GetAllRefactorSpacesRouteResources() map[string]*refactorspaces.Route {
+ results := map[string]*refactorspaces.Route{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *refactorspaces.Route:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRefactorSpacesRouteWithName retrieves all refactorspaces.Route items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRefactorSpacesRouteWithName(name string) (*refactorspaces.Route, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *refactorspaces.Route:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type refactorspaces.Route not found", name)
+}
+
+// GetAllRefactorSpacesServiceResources retrieves all refactorspaces.Service items from an AWS CloudFormation template
+func (t *Template) GetAllRefactorSpacesServiceResources() map[string]*refactorspaces.Service {
+ results := map[string]*refactorspaces.Service{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *refactorspaces.Service:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRefactorSpacesServiceWithName retrieves all refactorspaces.Service items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRefactorSpacesServiceWithName(name string) (*refactorspaces.Service, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *refactorspaces.Service:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type refactorspaces.Service not found", name)
+}
+
+// GetAllRekognitionProjectResources retrieves all rekognition.Project items from an AWS CloudFormation template
+func (t *Template) GetAllRekognitionProjectResources() map[string]*rekognition.Project {
+ results := map[string]*rekognition.Project{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *rekognition.Project:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRekognitionProjectWithName retrieves all rekognition.Project items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRekognitionProjectWithName(name string) (*rekognition.Project, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *rekognition.Project:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type rekognition.Project not found", name)
+}
+
+// GetAllResilienceHubAppResources retrieves all resiliencehub.App items from an AWS CloudFormation template
+func (t *Template) GetAllResilienceHubAppResources() map[string]*resiliencehub.App {
+ results := map[string]*resiliencehub.App{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *resiliencehub.App:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetResilienceHubAppWithName retrieves all resiliencehub.App items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetResilienceHubAppWithName(name string) (*resiliencehub.App, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *resiliencehub.App:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type resiliencehub.App not found", name)
+}
+
+// GetAllResilienceHubResiliencyPolicyResources retrieves all resiliencehub.ResiliencyPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllResilienceHubResiliencyPolicyResources() map[string]*resiliencehub.ResiliencyPolicy {
+ results := map[string]*resiliencehub.ResiliencyPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *resiliencehub.ResiliencyPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetResilienceHubResiliencyPolicyWithName retrieves all resiliencehub.ResiliencyPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetResilienceHubResiliencyPolicyWithName(name string) (*resiliencehub.ResiliencyPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *resiliencehub.ResiliencyPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type resiliencehub.ResiliencyPolicy not found", name)
+}
+
+// GetAllResourceGroupsGroupResources retrieves all resourcegroups.Group items from an AWS CloudFormation template
+func (t *Template) GetAllResourceGroupsGroupResources() map[string]*resourcegroups.Group {
+ results := map[string]*resourcegroups.Group{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *resourcegroups.Group:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetResourceGroupsGroupWithName retrieves all resourcegroups.Group items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetResourceGroupsGroupWithName(name string) (*resourcegroups.Group, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *resourcegroups.Group:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type resourcegroups.Group not found", name)
+}
+
+// GetAllRoboMakerFleetResources retrieves all robomaker.Fleet items from an AWS CloudFormation template
+func (t *Template) GetAllRoboMakerFleetResources() map[string]*robomaker.Fleet {
+ results := map[string]*robomaker.Fleet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *robomaker.Fleet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoboMakerFleetWithName retrieves all robomaker.Fleet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoboMakerFleetWithName(name string) (*robomaker.Fleet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *robomaker.Fleet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type robomaker.Fleet not found", name)
+}
+
+// GetAllRoboMakerRobotResources retrieves all robomaker.Robot items from an AWS CloudFormation template
+func (t *Template) GetAllRoboMakerRobotResources() map[string]*robomaker.Robot {
+ results := map[string]*robomaker.Robot{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *robomaker.Robot:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoboMakerRobotWithName retrieves all robomaker.Robot items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoboMakerRobotWithName(name string) (*robomaker.Robot, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *robomaker.Robot:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type robomaker.Robot not found", name)
+}
+
+// GetAllRoboMakerRobotApplicationResources retrieves all robomaker.RobotApplication items from an AWS CloudFormation template
+func (t *Template) GetAllRoboMakerRobotApplicationResources() map[string]*robomaker.RobotApplication {
+ results := map[string]*robomaker.RobotApplication{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *robomaker.RobotApplication:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoboMakerRobotApplicationWithName retrieves all robomaker.RobotApplication items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoboMakerRobotApplicationWithName(name string) (*robomaker.RobotApplication, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *robomaker.RobotApplication:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type robomaker.RobotApplication not found", name)
+}
+
+// GetAllRoboMakerRobotApplicationVersionResources retrieves all robomaker.RobotApplicationVersion items from an AWS CloudFormation template
+func (t *Template) GetAllRoboMakerRobotApplicationVersionResources() map[string]*robomaker.RobotApplicationVersion {
+ results := map[string]*robomaker.RobotApplicationVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *robomaker.RobotApplicationVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoboMakerRobotApplicationVersionWithName retrieves all robomaker.RobotApplicationVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoboMakerRobotApplicationVersionWithName(name string) (*robomaker.RobotApplicationVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *robomaker.RobotApplicationVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type robomaker.RobotApplicationVersion not found", name)
+}
+
+// GetAllRoboMakerSimulationApplicationResources retrieves all robomaker.SimulationApplication items from an AWS CloudFormation template
+func (t *Template) GetAllRoboMakerSimulationApplicationResources() map[string]*robomaker.SimulationApplication {
+ results := map[string]*robomaker.SimulationApplication{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *robomaker.SimulationApplication:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoboMakerSimulationApplicationWithName retrieves all robomaker.SimulationApplication items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoboMakerSimulationApplicationWithName(name string) (*robomaker.SimulationApplication, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *robomaker.SimulationApplication:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type robomaker.SimulationApplication not found", name)
+}
+
+// GetAllRoboMakerSimulationApplicationVersionResources retrieves all robomaker.SimulationApplicationVersion items from an AWS CloudFormation template
+func (t *Template) GetAllRoboMakerSimulationApplicationVersionResources() map[string]*robomaker.SimulationApplicationVersion {
+ results := map[string]*robomaker.SimulationApplicationVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *robomaker.SimulationApplicationVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoboMakerSimulationApplicationVersionWithName retrieves all robomaker.SimulationApplicationVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoboMakerSimulationApplicationVersionWithName(name string) (*robomaker.SimulationApplicationVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *robomaker.SimulationApplicationVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type robomaker.SimulationApplicationVersion not found", name)
+}
+
+// GetAllRoute53DNSSECResources retrieves all route53.DNSSEC items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53DNSSECResources() map[string]*route53.DNSSEC {
+ results := map[string]*route53.DNSSEC{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53.DNSSEC:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53DNSSECWithName retrieves all route53.DNSSEC items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53DNSSECWithName(name string) (*route53.DNSSEC, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53.DNSSEC:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53.DNSSEC not found", name)
+}
+
+// GetAllRoute53HealthCheckResources retrieves all route53.HealthCheck items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53HealthCheckResources() map[string]*route53.HealthCheck {
+ results := map[string]*route53.HealthCheck{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53.HealthCheck:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53HealthCheckWithName retrieves all route53.HealthCheck items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53HealthCheckWithName(name string) (*route53.HealthCheck, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53.HealthCheck:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53.HealthCheck not found", name)
+}
+
+// GetAllRoute53HostedZoneResources retrieves all route53.HostedZone items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53HostedZoneResources() map[string]*route53.HostedZone {
+ results := map[string]*route53.HostedZone{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53.HostedZone:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53HostedZoneWithName retrieves all route53.HostedZone items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53HostedZoneWithName(name string) (*route53.HostedZone, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53.HostedZone:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53.HostedZone not found", name)
+}
+
+// GetAllRoute53KeySigningKeyResources retrieves all route53.KeySigningKey items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53KeySigningKeyResources() map[string]*route53.KeySigningKey {
+ results := map[string]*route53.KeySigningKey{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53.KeySigningKey:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53KeySigningKeyWithName retrieves all route53.KeySigningKey items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53KeySigningKeyWithName(name string) (*route53.KeySigningKey, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53.KeySigningKey:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53.KeySigningKey not found", name)
+}
+
+// GetAllRoute53RecordSetResources retrieves all route53.RecordSet items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecordSetResources() map[string]*route53.RecordSet {
+ results := map[string]*route53.RecordSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53.RecordSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecordSetWithName retrieves all route53.RecordSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecordSetWithName(name string) (*route53.RecordSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53.RecordSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53.RecordSet not found", name)
+}
+
+// GetAllRoute53RecordSetGroupResources retrieves all route53.RecordSetGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecordSetGroupResources() map[string]*route53.RecordSetGroup {
+ results := map[string]*route53.RecordSetGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53.RecordSetGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecordSetGroupWithName retrieves all route53.RecordSetGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecordSetGroupWithName(name string) (*route53.RecordSetGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53.RecordSetGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53.RecordSetGroup not found", name)
+}
+
+// GetAllRoute53RecoveryControlClusterResources retrieves all route53recoverycontrol.Cluster items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecoveryControlClusterResources() map[string]*route53recoverycontrol.Cluster {
+ results := map[string]*route53recoverycontrol.Cluster{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53recoverycontrol.Cluster:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecoveryControlClusterWithName retrieves all route53recoverycontrol.Cluster items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecoveryControlClusterWithName(name string) (*route53recoverycontrol.Cluster, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53recoverycontrol.Cluster:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53recoverycontrol.Cluster not found", name)
+}
+
+// GetAllRoute53RecoveryControlControlPanelResources retrieves all route53recoverycontrol.ControlPanel items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecoveryControlControlPanelResources() map[string]*route53recoverycontrol.ControlPanel {
+ results := map[string]*route53recoverycontrol.ControlPanel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53recoverycontrol.ControlPanel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecoveryControlControlPanelWithName retrieves all route53recoverycontrol.ControlPanel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecoveryControlControlPanelWithName(name string) (*route53recoverycontrol.ControlPanel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53recoverycontrol.ControlPanel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53recoverycontrol.ControlPanel not found", name)
+}
+
+// GetAllRoute53RecoveryControlRoutingControlResources retrieves all route53recoverycontrol.RoutingControl items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecoveryControlRoutingControlResources() map[string]*route53recoverycontrol.RoutingControl {
+ results := map[string]*route53recoverycontrol.RoutingControl{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53recoverycontrol.RoutingControl:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecoveryControlRoutingControlWithName retrieves all route53recoverycontrol.RoutingControl items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecoveryControlRoutingControlWithName(name string) (*route53recoverycontrol.RoutingControl, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53recoverycontrol.RoutingControl:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53recoverycontrol.RoutingControl not found", name)
+}
+
+// GetAllRoute53RecoveryControlSafetyRuleResources retrieves all route53recoverycontrol.SafetyRule items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecoveryControlSafetyRuleResources() map[string]*route53recoverycontrol.SafetyRule {
+ results := map[string]*route53recoverycontrol.SafetyRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53recoverycontrol.SafetyRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecoveryControlSafetyRuleWithName retrieves all route53recoverycontrol.SafetyRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecoveryControlSafetyRuleWithName(name string) (*route53recoverycontrol.SafetyRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53recoverycontrol.SafetyRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53recoverycontrol.SafetyRule not found", name)
+}
+
+// GetAllRoute53RecoveryReadinessCellResources retrieves all route53recoveryreadiness.Cell items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecoveryReadinessCellResources() map[string]*route53recoveryreadiness.Cell {
+ results := map[string]*route53recoveryreadiness.Cell{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53recoveryreadiness.Cell:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecoveryReadinessCellWithName retrieves all route53recoveryreadiness.Cell items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecoveryReadinessCellWithName(name string) (*route53recoveryreadiness.Cell, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53recoveryreadiness.Cell:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53recoveryreadiness.Cell not found", name)
+}
+
+// GetAllRoute53RecoveryReadinessReadinessCheckResources retrieves all route53recoveryreadiness.ReadinessCheck items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecoveryReadinessReadinessCheckResources() map[string]*route53recoveryreadiness.ReadinessCheck {
+ results := map[string]*route53recoveryreadiness.ReadinessCheck{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53recoveryreadiness.ReadinessCheck:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecoveryReadinessReadinessCheckWithName retrieves all route53recoveryreadiness.ReadinessCheck items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecoveryReadinessReadinessCheckWithName(name string) (*route53recoveryreadiness.ReadinessCheck, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53recoveryreadiness.ReadinessCheck:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53recoveryreadiness.ReadinessCheck not found", name)
+}
+
+// GetAllRoute53RecoveryReadinessRecoveryGroupResources retrieves all route53recoveryreadiness.RecoveryGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecoveryReadinessRecoveryGroupResources() map[string]*route53recoveryreadiness.RecoveryGroup {
+ results := map[string]*route53recoveryreadiness.RecoveryGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53recoveryreadiness.RecoveryGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecoveryReadinessRecoveryGroupWithName retrieves all route53recoveryreadiness.RecoveryGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecoveryReadinessRecoveryGroupWithName(name string) (*route53recoveryreadiness.RecoveryGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53recoveryreadiness.RecoveryGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53recoveryreadiness.RecoveryGroup not found", name)
+}
+
+// GetAllRoute53RecoveryReadinessResourceSetResources retrieves all route53recoveryreadiness.ResourceSet items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53RecoveryReadinessResourceSetResources() map[string]*route53recoveryreadiness.ResourceSet {
+ results := map[string]*route53recoveryreadiness.ResourceSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53recoveryreadiness.ResourceSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53RecoveryReadinessResourceSetWithName retrieves all route53recoveryreadiness.ResourceSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53RecoveryReadinessResourceSetWithName(name string) (*route53recoveryreadiness.ResourceSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53recoveryreadiness.ResourceSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53recoveryreadiness.ResourceSet not found", name)
+}
+
+// GetAllRoute53ResolverFirewallDomainListResources retrieves all route53resolver.FirewallDomainList items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverFirewallDomainListResources() map[string]*route53resolver.FirewallDomainList {
+ results := map[string]*route53resolver.FirewallDomainList{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.FirewallDomainList:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverFirewallDomainListWithName retrieves all route53resolver.FirewallDomainList items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverFirewallDomainListWithName(name string) (*route53resolver.FirewallDomainList, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.FirewallDomainList:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.FirewallDomainList not found", name)
+}
+
+// GetAllRoute53ResolverFirewallRuleGroupResources retrieves all route53resolver.FirewallRuleGroup items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverFirewallRuleGroupResources() map[string]*route53resolver.FirewallRuleGroup {
+ results := map[string]*route53resolver.FirewallRuleGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.FirewallRuleGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverFirewallRuleGroupWithName retrieves all route53resolver.FirewallRuleGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverFirewallRuleGroupWithName(name string) (*route53resolver.FirewallRuleGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.FirewallRuleGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.FirewallRuleGroup not found", name)
+}
+
+// GetAllRoute53ResolverFirewallRuleGroupAssociationResources retrieves all route53resolver.FirewallRuleGroupAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverFirewallRuleGroupAssociationResources() map[string]*route53resolver.FirewallRuleGroupAssociation {
+ results := map[string]*route53resolver.FirewallRuleGroupAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.FirewallRuleGroupAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverFirewallRuleGroupAssociationWithName retrieves all route53resolver.FirewallRuleGroupAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverFirewallRuleGroupAssociationWithName(name string) (*route53resolver.FirewallRuleGroupAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.FirewallRuleGroupAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.FirewallRuleGroupAssociation not found", name)
+}
+
+// GetAllRoute53ResolverResolverConfigResources retrieves all route53resolver.ResolverConfig items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverResolverConfigResources() map[string]*route53resolver.ResolverConfig {
+ results := map[string]*route53resolver.ResolverConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverResolverConfigWithName retrieves all route53resolver.ResolverConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverResolverConfigWithName(name string) (*route53resolver.ResolverConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.ResolverConfig not found", name)
+}
+
+// GetAllRoute53ResolverResolverDNSSECConfigResources retrieves all route53resolver.ResolverDNSSECConfig items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverResolverDNSSECConfigResources() map[string]*route53resolver.ResolverDNSSECConfig {
+ results := map[string]*route53resolver.ResolverDNSSECConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverDNSSECConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverResolverDNSSECConfigWithName retrieves all route53resolver.ResolverDNSSECConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverResolverDNSSECConfigWithName(name string) (*route53resolver.ResolverDNSSECConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverDNSSECConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.ResolverDNSSECConfig not found", name)
+}
+
+// GetAllRoute53ResolverResolverEndpointResources retrieves all route53resolver.ResolverEndpoint items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverResolverEndpointResources() map[string]*route53resolver.ResolverEndpoint {
+ results := map[string]*route53resolver.ResolverEndpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverEndpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverResolverEndpointWithName retrieves all route53resolver.ResolverEndpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverResolverEndpointWithName(name string) (*route53resolver.ResolverEndpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverEndpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.ResolverEndpoint not found", name)
+}
+
+// GetAllRoute53ResolverResolverQueryLoggingConfigResources retrieves all route53resolver.ResolverQueryLoggingConfig items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverResolverQueryLoggingConfigResources() map[string]*route53resolver.ResolverQueryLoggingConfig {
+ results := map[string]*route53resolver.ResolverQueryLoggingConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverQueryLoggingConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverResolverQueryLoggingConfigWithName retrieves all route53resolver.ResolverQueryLoggingConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverResolverQueryLoggingConfigWithName(name string) (*route53resolver.ResolverQueryLoggingConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverQueryLoggingConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.ResolverQueryLoggingConfig not found", name)
+}
+
+// GetAllRoute53ResolverResolverQueryLoggingConfigAssociationResources retrieves all route53resolver.ResolverQueryLoggingConfigAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverResolverQueryLoggingConfigAssociationResources() map[string]*route53resolver.ResolverQueryLoggingConfigAssociation {
+ results := map[string]*route53resolver.ResolverQueryLoggingConfigAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverQueryLoggingConfigAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverResolverQueryLoggingConfigAssociationWithName retrieves all route53resolver.ResolverQueryLoggingConfigAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverResolverQueryLoggingConfigAssociationWithName(name string) (*route53resolver.ResolverQueryLoggingConfigAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverQueryLoggingConfigAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.ResolverQueryLoggingConfigAssociation not found", name)
+}
+
+// GetAllRoute53ResolverResolverRuleResources retrieves all route53resolver.ResolverRule items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverResolverRuleResources() map[string]*route53resolver.ResolverRule {
+ results := map[string]*route53resolver.ResolverRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverResolverRuleWithName retrieves all route53resolver.ResolverRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverResolverRuleWithName(name string) (*route53resolver.ResolverRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.ResolverRule not found", name)
+}
+
+// GetAllRoute53ResolverResolverRuleAssociationResources retrieves all route53resolver.ResolverRuleAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllRoute53ResolverResolverRuleAssociationResources() map[string]*route53resolver.ResolverRuleAssociation {
+ results := map[string]*route53resolver.ResolverRuleAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverRuleAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetRoute53ResolverResolverRuleAssociationWithName retrieves all route53resolver.ResolverRuleAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetRoute53ResolverResolverRuleAssociationWithName(name string) (*route53resolver.ResolverRuleAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *route53resolver.ResolverRuleAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type route53resolver.ResolverRuleAssociation not found", name)
+}
+
+// GetAllS3AccessPointResources retrieves all s3.AccessPoint items from an AWS CloudFormation template
+func (t *Template) GetAllS3AccessPointResources() map[string]*s3.AccessPoint {
+ results := map[string]*s3.AccessPoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3.AccessPoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3AccessPointWithName retrieves all s3.AccessPoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3AccessPointWithName(name string) (*s3.AccessPoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3.AccessPoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3.AccessPoint not found", name)
+}
+
+// GetAllS3BucketResources retrieves all s3.Bucket items from an AWS CloudFormation template
+func (t *Template) GetAllS3BucketResources() map[string]*s3.Bucket {
+ results := map[string]*s3.Bucket{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3.Bucket:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3BucketWithName retrieves all s3.Bucket items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3BucketWithName(name string) (*s3.Bucket, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3.Bucket:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3.Bucket not found", name)
+}
+
+// GetAllS3BucketPolicyResources retrieves all s3.BucketPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllS3BucketPolicyResources() map[string]*s3.BucketPolicy {
+ results := map[string]*s3.BucketPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3.BucketPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3BucketPolicyWithName retrieves all s3.BucketPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3BucketPolicyWithName(name string) (*s3.BucketPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3.BucketPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3.BucketPolicy not found", name)
+}
+
+// GetAllS3MultiRegionAccessPointResources retrieves all s3.MultiRegionAccessPoint items from an AWS CloudFormation template
+func (t *Template) GetAllS3MultiRegionAccessPointResources() map[string]*s3.MultiRegionAccessPoint {
+ results := map[string]*s3.MultiRegionAccessPoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3.MultiRegionAccessPoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3MultiRegionAccessPointWithName retrieves all s3.MultiRegionAccessPoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3MultiRegionAccessPointWithName(name string) (*s3.MultiRegionAccessPoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3.MultiRegionAccessPoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3.MultiRegionAccessPoint not found", name)
+}
+
+// GetAllS3MultiRegionAccessPointPolicyResources retrieves all s3.MultiRegionAccessPointPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllS3MultiRegionAccessPointPolicyResources() map[string]*s3.MultiRegionAccessPointPolicy {
+ results := map[string]*s3.MultiRegionAccessPointPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3.MultiRegionAccessPointPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3MultiRegionAccessPointPolicyWithName retrieves all s3.MultiRegionAccessPointPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3MultiRegionAccessPointPolicyWithName(name string) (*s3.MultiRegionAccessPointPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3.MultiRegionAccessPointPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3.MultiRegionAccessPointPolicy not found", name)
+}
+
+// GetAllS3StorageLensResources retrieves all s3.StorageLens items from an AWS CloudFormation template
+func (t *Template) GetAllS3StorageLensResources() map[string]*s3.StorageLens {
+ results := map[string]*s3.StorageLens{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3.StorageLens:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3StorageLensWithName retrieves all s3.StorageLens items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3StorageLensWithName(name string) (*s3.StorageLens, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3.StorageLens:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3.StorageLens not found", name)
+}
+
+// GetAllS3ObjectLambdaAccessPointResources retrieves all s3objectlambda.AccessPoint items from an AWS CloudFormation template
+func (t *Template) GetAllS3ObjectLambdaAccessPointResources() map[string]*s3objectlambda.AccessPoint {
+ results := map[string]*s3objectlambda.AccessPoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3objectlambda.AccessPoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3ObjectLambdaAccessPointWithName retrieves all s3objectlambda.AccessPoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3ObjectLambdaAccessPointWithName(name string) (*s3objectlambda.AccessPoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3objectlambda.AccessPoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3objectlambda.AccessPoint not found", name)
+}
+
+// GetAllS3ObjectLambdaAccessPointPolicyResources retrieves all s3objectlambda.AccessPointPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllS3ObjectLambdaAccessPointPolicyResources() map[string]*s3objectlambda.AccessPointPolicy {
+ results := map[string]*s3objectlambda.AccessPointPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3objectlambda.AccessPointPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3ObjectLambdaAccessPointPolicyWithName retrieves all s3objectlambda.AccessPointPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3ObjectLambdaAccessPointPolicyWithName(name string) (*s3objectlambda.AccessPointPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3objectlambda.AccessPointPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3objectlambda.AccessPointPolicy not found", name)
+}
+
+// GetAllS3OutpostsAccessPointResources retrieves all s3outposts.AccessPoint items from an AWS CloudFormation template
+func (t *Template) GetAllS3OutpostsAccessPointResources() map[string]*s3outposts.AccessPoint {
+ results := map[string]*s3outposts.AccessPoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3outposts.AccessPoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3OutpostsAccessPointWithName retrieves all s3outposts.AccessPoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3OutpostsAccessPointWithName(name string) (*s3outposts.AccessPoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3outposts.AccessPoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3outposts.AccessPoint not found", name)
+}
+
+// GetAllS3OutpostsBucketResources retrieves all s3outposts.Bucket items from an AWS CloudFormation template
+func (t *Template) GetAllS3OutpostsBucketResources() map[string]*s3outposts.Bucket {
+ results := map[string]*s3outposts.Bucket{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3outposts.Bucket:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3OutpostsBucketWithName retrieves all s3outposts.Bucket items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3OutpostsBucketWithName(name string) (*s3outposts.Bucket, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3outposts.Bucket:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3outposts.Bucket not found", name)
+}
+
+// GetAllS3OutpostsBucketPolicyResources retrieves all s3outposts.BucketPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllS3OutpostsBucketPolicyResources() map[string]*s3outposts.BucketPolicy {
+ results := map[string]*s3outposts.BucketPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3outposts.BucketPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3OutpostsBucketPolicyWithName retrieves all s3outposts.BucketPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3OutpostsBucketPolicyWithName(name string) (*s3outposts.BucketPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3outposts.BucketPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3outposts.BucketPolicy not found", name)
+}
+
+// GetAllS3OutpostsEndpointResources retrieves all s3outposts.Endpoint items from an AWS CloudFormation template
+func (t *Template) GetAllS3OutpostsEndpointResources() map[string]*s3outposts.Endpoint {
+ results := map[string]*s3outposts.Endpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *s3outposts.Endpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetS3OutpostsEndpointWithName retrieves all s3outposts.Endpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetS3OutpostsEndpointWithName(name string) (*s3outposts.Endpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *s3outposts.Endpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type s3outposts.Endpoint not found", name)
+}
+
+// GetAllSDBDomainResources retrieves all sdb.Domain items from an AWS CloudFormation template
+func (t *Template) GetAllSDBDomainResources() map[string]*sdb.Domain {
+ results := map[string]*sdb.Domain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sdb.Domain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSDBDomainWithName retrieves all sdb.Domain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSDBDomainWithName(name string) (*sdb.Domain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sdb.Domain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sdb.Domain not found", name)
+}
+
+// GetAllSESConfigurationSetResources retrieves all ses.ConfigurationSet items from an AWS CloudFormation template
+func (t *Template) GetAllSESConfigurationSetResources() map[string]*ses.ConfigurationSet {
+ results := map[string]*ses.ConfigurationSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ses.ConfigurationSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSESConfigurationSetWithName retrieves all ses.ConfigurationSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSESConfigurationSetWithName(name string) (*ses.ConfigurationSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ses.ConfigurationSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ses.ConfigurationSet not found", name)
+}
+
+// GetAllSESConfigurationSetEventDestinationResources retrieves all ses.ConfigurationSetEventDestination items from an AWS CloudFormation template
+func (t *Template) GetAllSESConfigurationSetEventDestinationResources() map[string]*ses.ConfigurationSetEventDestination {
+ results := map[string]*ses.ConfigurationSetEventDestination{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ses.ConfigurationSetEventDestination:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSESConfigurationSetEventDestinationWithName retrieves all ses.ConfigurationSetEventDestination items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSESConfigurationSetEventDestinationWithName(name string) (*ses.ConfigurationSetEventDestination, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ses.ConfigurationSetEventDestination:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ses.ConfigurationSetEventDestination not found", name)
+}
+
+// GetAllSESContactListResources retrieves all ses.ContactList items from an AWS CloudFormation template
+func (t *Template) GetAllSESContactListResources() map[string]*ses.ContactList {
+ results := map[string]*ses.ContactList{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ses.ContactList:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSESContactListWithName retrieves all ses.ContactList items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSESContactListWithName(name string) (*ses.ContactList, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ses.ContactList:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ses.ContactList not found", name)
+}
+
+// GetAllSESReceiptFilterResources retrieves all ses.ReceiptFilter items from an AWS CloudFormation template
+func (t *Template) GetAllSESReceiptFilterResources() map[string]*ses.ReceiptFilter {
+ results := map[string]*ses.ReceiptFilter{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ses.ReceiptFilter:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSESReceiptFilterWithName retrieves all ses.ReceiptFilter items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSESReceiptFilterWithName(name string) (*ses.ReceiptFilter, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ses.ReceiptFilter:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ses.ReceiptFilter not found", name)
+}
+
+// GetAllSESReceiptRuleResources retrieves all ses.ReceiptRule items from an AWS CloudFormation template
+func (t *Template) GetAllSESReceiptRuleResources() map[string]*ses.ReceiptRule {
+ results := map[string]*ses.ReceiptRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ses.ReceiptRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSESReceiptRuleWithName retrieves all ses.ReceiptRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSESReceiptRuleWithName(name string) (*ses.ReceiptRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ses.ReceiptRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ses.ReceiptRule not found", name)
+}
+
+// GetAllSESReceiptRuleSetResources retrieves all ses.ReceiptRuleSet items from an AWS CloudFormation template
+func (t *Template) GetAllSESReceiptRuleSetResources() map[string]*ses.ReceiptRuleSet {
+ results := map[string]*ses.ReceiptRuleSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ses.ReceiptRuleSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSESReceiptRuleSetWithName retrieves all ses.ReceiptRuleSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSESReceiptRuleSetWithName(name string) (*ses.ReceiptRuleSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ses.ReceiptRuleSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ses.ReceiptRuleSet not found", name)
+}
+
+// GetAllSESTemplateResources retrieves all ses.Template items from an AWS CloudFormation template
+func (t *Template) GetAllSESTemplateResources() map[string]*ses.Template {
+ results := map[string]*ses.Template{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ses.Template:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSESTemplateWithName retrieves all ses.Template items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSESTemplateWithName(name string) (*ses.Template, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ses.Template:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ses.Template not found", name)
+}
+
+// GetAllSNSSubscriptionResources retrieves all sns.Subscription items from an AWS CloudFormation template
+func (t *Template) GetAllSNSSubscriptionResources() map[string]*sns.Subscription {
+ results := map[string]*sns.Subscription{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sns.Subscription:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSNSSubscriptionWithName retrieves all sns.Subscription items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSNSSubscriptionWithName(name string) (*sns.Subscription, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sns.Subscription:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sns.Subscription not found", name)
+}
+
+// GetAllSNSTopicResources retrieves all sns.Topic items from an AWS CloudFormation template
+func (t *Template) GetAllSNSTopicResources() map[string]*sns.Topic {
+ results := map[string]*sns.Topic{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sns.Topic:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSNSTopicWithName retrieves all sns.Topic items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSNSTopicWithName(name string) (*sns.Topic, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sns.Topic:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sns.Topic not found", name)
+}
+
+// GetAllSNSTopicPolicyResources retrieves all sns.TopicPolicy items from an AWS CloudFormation template
+func (t *Template) GetAllSNSTopicPolicyResources() map[string]*sns.TopicPolicy {
+ results := map[string]*sns.TopicPolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sns.TopicPolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSNSTopicPolicyWithName retrieves all sns.TopicPolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSNSTopicPolicyWithName(name string) (*sns.TopicPolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sns.TopicPolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sns.TopicPolicy not found", name)
+}
+
+// GetAllSQSQueueResources retrieves all sqs.Queue items from an AWS CloudFormation template
+func (t *Template) GetAllSQSQueueResources() map[string]*sqs.Queue {
+ results := map[string]*sqs.Queue{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sqs.Queue:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSQSQueueWithName retrieves all sqs.Queue items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSQSQueueWithName(name string) (*sqs.Queue, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sqs.Queue:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sqs.Queue not found", name)
+}
+
+// GetAllSQSQueuePolicyResources retrieves all sqs.QueuePolicy items from an AWS CloudFormation template
+func (t *Template) GetAllSQSQueuePolicyResources() map[string]*sqs.QueuePolicy {
+ results := map[string]*sqs.QueuePolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sqs.QueuePolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSQSQueuePolicyWithName retrieves all sqs.QueuePolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSQSQueuePolicyWithName(name string) (*sqs.QueuePolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sqs.QueuePolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sqs.QueuePolicy not found", name)
+}
+
+// GetAllSSMAssociationResources retrieves all ssm.Association items from an AWS CloudFormation template
+func (t *Template) GetAllSSMAssociationResources() map[string]*ssm.Association {
+ results := map[string]*ssm.Association{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssm.Association:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMAssociationWithName retrieves all ssm.Association items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMAssociationWithName(name string) (*ssm.Association, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssm.Association:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssm.Association not found", name)
+}
+
+// GetAllSSMDocumentResources retrieves all ssm.Document items from an AWS CloudFormation template
+func (t *Template) GetAllSSMDocumentResources() map[string]*ssm.Document {
+ results := map[string]*ssm.Document{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssm.Document:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMDocumentWithName retrieves all ssm.Document items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMDocumentWithName(name string) (*ssm.Document, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssm.Document:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssm.Document not found", name)
+}
+
+// GetAllSSMMaintenanceWindowResources retrieves all ssm.MaintenanceWindow items from an AWS CloudFormation template
+func (t *Template) GetAllSSMMaintenanceWindowResources() map[string]*ssm.MaintenanceWindow {
+ results := map[string]*ssm.MaintenanceWindow{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssm.MaintenanceWindow:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMMaintenanceWindowWithName retrieves all ssm.MaintenanceWindow items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMMaintenanceWindowWithName(name string) (*ssm.MaintenanceWindow, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssm.MaintenanceWindow:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssm.MaintenanceWindow not found", name)
+}
+
+// GetAllSSMMaintenanceWindowTargetResources retrieves all ssm.MaintenanceWindowTarget items from an AWS CloudFormation template
+func (t *Template) GetAllSSMMaintenanceWindowTargetResources() map[string]*ssm.MaintenanceWindowTarget {
+ results := map[string]*ssm.MaintenanceWindowTarget{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssm.MaintenanceWindowTarget:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMMaintenanceWindowTargetWithName retrieves all ssm.MaintenanceWindowTarget items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMMaintenanceWindowTargetWithName(name string) (*ssm.MaintenanceWindowTarget, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssm.MaintenanceWindowTarget:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssm.MaintenanceWindowTarget not found", name)
+}
+
+// GetAllSSMMaintenanceWindowTaskResources retrieves all ssm.MaintenanceWindowTask items from an AWS CloudFormation template
+func (t *Template) GetAllSSMMaintenanceWindowTaskResources() map[string]*ssm.MaintenanceWindowTask {
+ results := map[string]*ssm.MaintenanceWindowTask{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssm.MaintenanceWindowTask:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMMaintenanceWindowTaskWithName retrieves all ssm.MaintenanceWindowTask items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMMaintenanceWindowTaskWithName(name string) (*ssm.MaintenanceWindowTask, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssm.MaintenanceWindowTask:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssm.MaintenanceWindowTask not found", name)
+}
+
+// GetAllSSMParameterResources retrieves all ssm.Parameter items from an AWS CloudFormation template
+func (t *Template) GetAllSSMParameterResources() map[string]*ssm.Parameter {
+ results := map[string]*ssm.Parameter{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssm.Parameter:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMParameterWithName retrieves all ssm.Parameter items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMParameterWithName(name string) (*ssm.Parameter, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssm.Parameter:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssm.Parameter not found", name)
+}
+
+// GetAllSSMPatchBaselineResources retrieves all ssm.PatchBaseline items from an AWS CloudFormation template
+func (t *Template) GetAllSSMPatchBaselineResources() map[string]*ssm.PatchBaseline {
+ results := map[string]*ssm.PatchBaseline{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssm.PatchBaseline:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMPatchBaselineWithName retrieves all ssm.PatchBaseline items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMPatchBaselineWithName(name string) (*ssm.PatchBaseline, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssm.PatchBaseline:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssm.PatchBaseline not found", name)
+}
+
+// GetAllSSMResourceDataSyncResources retrieves all ssm.ResourceDataSync items from an AWS CloudFormation template
+func (t *Template) GetAllSSMResourceDataSyncResources() map[string]*ssm.ResourceDataSync {
+ results := map[string]*ssm.ResourceDataSync{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssm.ResourceDataSync:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMResourceDataSyncWithName retrieves all ssm.ResourceDataSync items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMResourceDataSyncWithName(name string) (*ssm.ResourceDataSync, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssm.ResourceDataSync:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssm.ResourceDataSync not found", name)
+}
+
+// GetAllSSMContactsContactResources retrieves all ssmcontacts.Contact items from an AWS CloudFormation template
+func (t *Template) GetAllSSMContactsContactResources() map[string]*ssmcontacts.Contact {
+ results := map[string]*ssmcontacts.Contact{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssmcontacts.Contact:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMContactsContactWithName retrieves all ssmcontacts.Contact items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMContactsContactWithName(name string) (*ssmcontacts.Contact, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssmcontacts.Contact:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssmcontacts.Contact not found", name)
+}
+
+// GetAllSSMContactsContactChannelResources retrieves all ssmcontacts.ContactChannel items from an AWS CloudFormation template
+func (t *Template) GetAllSSMContactsContactChannelResources() map[string]*ssmcontacts.ContactChannel {
+ results := map[string]*ssmcontacts.ContactChannel{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssmcontacts.ContactChannel:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMContactsContactChannelWithName retrieves all ssmcontacts.ContactChannel items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMContactsContactChannelWithName(name string) (*ssmcontacts.ContactChannel, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssmcontacts.ContactChannel:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssmcontacts.ContactChannel not found", name)
+}
+
+// GetAllSSMIncidentsReplicationSetResources retrieves all ssmincidents.ReplicationSet items from an AWS CloudFormation template
+func (t *Template) GetAllSSMIncidentsReplicationSetResources() map[string]*ssmincidents.ReplicationSet {
+ results := map[string]*ssmincidents.ReplicationSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssmincidents.ReplicationSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMIncidentsReplicationSetWithName retrieves all ssmincidents.ReplicationSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMIncidentsReplicationSetWithName(name string) (*ssmincidents.ReplicationSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssmincidents.ReplicationSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssmincidents.ReplicationSet not found", name)
+}
+
+// GetAllSSMIncidentsResponsePlanResources retrieves all ssmincidents.ResponsePlan items from an AWS CloudFormation template
+func (t *Template) GetAllSSMIncidentsResponsePlanResources() map[string]*ssmincidents.ResponsePlan {
+ results := map[string]*ssmincidents.ResponsePlan{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ssmincidents.ResponsePlan:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSMIncidentsResponsePlanWithName retrieves all ssmincidents.ResponsePlan items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSMIncidentsResponsePlanWithName(name string) (*ssmincidents.ResponsePlan, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ssmincidents.ResponsePlan:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ssmincidents.ResponsePlan not found", name)
+}
+
+// GetAllSSOAssignmentResources retrieves all sso.Assignment items from an AWS CloudFormation template
+func (t *Template) GetAllSSOAssignmentResources() map[string]*sso.Assignment {
+ results := map[string]*sso.Assignment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sso.Assignment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSOAssignmentWithName retrieves all sso.Assignment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSOAssignmentWithName(name string) (*sso.Assignment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sso.Assignment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sso.Assignment not found", name)
+}
+
+// GetAllSSOInstanceAccessControlAttributeConfigurationResources retrieves all sso.InstanceAccessControlAttributeConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllSSOInstanceAccessControlAttributeConfigurationResources() map[string]*sso.InstanceAccessControlAttributeConfiguration {
+ results := map[string]*sso.InstanceAccessControlAttributeConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sso.InstanceAccessControlAttributeConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSOInstanceAccessControlAttributeConfigurationWithName retrieves all sso.InstanceAccessControlAttributeConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSOInstanceAccessControlAttributeConfigurationWithName(name string) (*sso.InstanceAccessControlAttributeConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sso.InstanceAccessControlAttributeConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sso.InstanceAccessControlAttributeConfiguration not found", name)
+}
+
+// GetAllSSOPermissionSetResources retrieves all sso.PermissionSet items from an AWS CloudFormation template
+func (t *Template) GetAllSSOPermissionSetResources() map[string]*sso.PermissionSet {
+ results := map[string]*sso.PermissionSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sso.PermissionSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSSOPermissionSetWithName retrieves all sso.PermissionSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSSOPermissionSetWithName(name string) (*sso.PermissionSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sso.PermissionSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sso.PermissionSet not found", name)
+}
+
+// GetAllSageMakerAppResources retrieves all sagemaker.App items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerAppResources() map[string]*sagemaker.App {
+ results := map[string]*sagemaker.App{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.App:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerAppWithName retrieves all sagemaker.App items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerAppWithName(name string) (*sagemaker.App, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.App:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.App not found", name)
+}
+
+// GetAllSageMakerAppImageConfigResources retrieves all sagemaker.AppImageConfig items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerAppImageConfigResources() map[string]*sagemaker.AppImageConfig {
+ results := map[string]*sagemaker.AppImageConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.AppImageConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerAppImageConfigWithName retrieves all sagemaker.AppImageConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerAppImageConfigWithName(name string) (*sagemaker.AppImageConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.AppImageConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.AppImageConfig not found", name)
+}
+
+// GetAllSageMakerCodeRepositoryResources retrieves all sagemaker.CodeRepository items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerCodeRepositoryResources() map[string]*sagemaker.CodeRepository {
+ results := map[string]*sagemaker.CodeRepository{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.CodeRepository:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerCodeRepositoryWithName retrieves all sagemaker.CodeRepository items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerCodeRepositoryWithName(name string) (*sagemaker.CodeRepository, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.CodeRepository:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.CodeRepository not found", name)
+}
+
+// GetAllSageMakerDataQualityJobDefinitionResources retrieves all sagemaker.DataQualityJobDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerDataQualityJobDefinitionResources() map[string]*sagemaker.DataQualityJobDefinition {
+ results := map[string]*sagemaker.DataQualityJobDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.DataQualityJobDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerDataQualityJobDefinitionWithName retrieves all sagemaker.DataQualityJobDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerDataQualityJobDefinitionWithName(name string) (*sagemaker.DataQualityJobDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.DataQualityJobDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.DataQualityJobDefinition not found", name)
+}
+
+// GetAllSageMakerDeviceResources retrieves all sagemaker.Device items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerDeviceResources() map[string]*sagemaker.Device {
+ results := map[string]*sagemaker.Device{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.Device:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerDeviceWithName retrieves all sagemaker.Device items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerDeviceWithName(name string) (*sagemaker.Device, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.Device:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.Device not found", name)
+}
+
+// GetAllSageMakerDeviceFleetResources retrieves all sagemaker.DeviceFleet items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerDeviceFleetResources() map[string]*sagemaker.DeviceFleet {
+ results := map[string]*sagemaker.DeviceFleet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.DeviceFleet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerDeviceFleetWithName retrieves all sagemaker.DeviceFleet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerDeviceFleetWithName(name string) (*sagemaker.DeviceFleet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.DeviceFleet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.DeviceFleet not found", name)
+}
+
+// GetAllSageMakerDomainResources retrieves all sagemaker.Domain items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerDomainResources() map[string]*sagemaker.Domain {
+ results := map[string]*sagemaker.Domain{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.Domain:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerDomainWithName retrieves all sagemaker.Domain items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerDomainWithName(name string) (*sagemaker.Domain, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.Domain:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.Domain not found", name)
+}
+
+// GetAllSageMakerEndpointResources retrieves all sagemaker.Endpoint items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerEndpointResources() map[string]*sagemaker.Endpoint {
+ results := map[string]*sagemaker.Endpoint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.Endpoint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerEndpointWithName retrieves all sagemaker.Endpoint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerEndpointWithName(name string) (*sagemaker.Endpoint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.Endpoint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.Endpoint not found", name)
+}
+
+// GetAllSageMakerEndpointConfigResources retrieves all sagemaker.EndpointConfig items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerEndpointConfigResources() map[string]*sagemaker.EndpointConfig {
+ results := map[string]*sagemaker.EndpointConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.EndpointConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerEndpointConfigWithName retrieves all sagemaker.EndpointConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerEndpointConfigWithName(name string) (*sagemaker.EndpointConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.EndpointConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.EndpointConfig not found", name)
+}
+
+// GetAllSageMakerFeatureGroupResources retrieves all sagemaker.FeatureGroup items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerFeatureGroupResources() map[string]*sagemaker.FeatureGroup {
+ results := map[string]*sagemaker.FeatureGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.FeatureGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerFeatureGroupWithName retrieves all sagemaker.FeatureGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerFeatureGroupWithName(name string) (*sagemaker.FeatureGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.FeatureGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.FeatureGroup not found", name)
+}
+
+// GetAllSageMakerImageResources retrieves all sagemaker.Image items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerImageResources() map[string]*sagemaker.Image {
+ results := map[string]*sagemaker.Image{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.Image:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerImageWithName retrieves all sagemaker.Image items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerImageWithName(name string) (*sagemaker.Image, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.Image:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.Image not found", name)
+}
+
+// GetAllSageMakerImageVersionResources retrieves all sagemaker.ImageVersion items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerImageVersionResources() map[string]*sagemaker.ImageVersion {
+ results := map[string]*sagemaker.ImageVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.ImageVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerImageVersionWithName retrieves all sagemaker.ImageVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerImageVersionWithName(name string) (*sagemaker.ImageVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.ImageVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.ImageVersion not found", name)
+}
+
+// GetAllSageMakerModelResources retrieves all sagemaker.Model items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerModelResources() map[string]*sagemaker.Model {
+ results := map[string]*sagemaker.Model{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.Model:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerModelWithName retrieves all sagemaker.Model items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerModelWithName(name string) (*sagemaker.Model, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.Model:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.Model not found", name)
+}
+
+// GetAllSageMakerModelBiasJobDefinitionResources retrieves all sagemaker.ModelBiasJobDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerModelBiasJobDefinitionResources() map[string]*sagemaker.ModelBiasJobDefinition {
+ results := map[string]*sagemaker.ModelBiasJobDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.ModelBiasJobDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerModelBiasJobDefinitionWithName retrieves all sagemaker.ModelBiasJobDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerModelBiasJobDefinitionWithName(name string) (*sagemaker.ModelBiasJobDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.ModelBiasJobDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.ModelBiasJobDefinition not found", name)
+}
+
+// GetAllSageMakerModelExplainabilityJobDefinitionResources retrieves all sagemaker.ModelExplainabilityJobDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerModelExplainabilityJobDefinitionResources() map[string]*sagemaker.ModelExplainabilityJobDefinition {
+ results := map[string]*sagemaker.ModelExplainabilityJobDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.ModelExplainabilityJobDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerModelExplainabilityJobDefinitionWithName retrieves all sagemaker.ModelExplainabilityJobDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerModelExplainabilityJobDefinitionWithName(name string) (*sagemaker.ModelExplainabilityJobDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.ModelExplainabilityJobDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.ModelExplainabilityJobDefinition not found", name)
+}
+
+// GetAllSageMakerModelPackageGroupResources retrieves all sagemaker.ModelPackageGroup items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerModelPackageGroupResources() map[string]*sagemaker.ModelPackageGroup {
+ results := map[string]*sagemaker.ModelPackageGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.ModelPackageGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerModelPackageGroupWithName retrieves all sagemaker.ModelPackageGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerModelPackageGroupWithName(name string) (*sagemaker.ModelPackageGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.ModelPackageGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.ModelPackageGroup not found", name)
+}
+
+// GetAllSageMakerModelQualityJobDefinitionResources retrieves all sagemaker.ModelQualityJobDefinition items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerModelQualityJobDefinitionResources() map[string]*sagemaker.ModelQualityJobDefinition {
+ results := map[string]*sagemaker.ModelQualityJobDefinition{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.ModelQualityJobDefinition:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerModelQualityJobDefinitionWithName retrieves all sagemaker.ModelQualityJobDefinition items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerModelQualityJobDefinitionWithName(name string) (*sagemaker.ModelQualityJobDefinition, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.ModelQualityJobDefinition:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.ModelQualityJobDefinition not found", name)
+}
+
+// GetAllSageMakerMonitoringScheduleResources retrieves all sagemaker.MonitoringSchedule items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerMonitoringScheduleResources() map[string]*sagemaker.MonitoringSchedule {
+ results := map[string]*sagemaker.MonitoringSchedule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.MonitoringSchedule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerMonitoringScheduleWithName retrieves all sagemaker.MonitoringSchedule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerMonitoringScheduleWithName(name string) (*sagemaker.MonitoringSchedule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.MonitoringSchedule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.MonitoringSchedule not found", name)
+}
+
+// GetAllSageMakerNotebookInstanceResources retrieves all sagemaker.NotebookInstance items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerNotebookInstanceResources() map[string]*sagemaker.NotebookInstance {
+ results := map[string]*sagemaker.NotebookInstance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.NotebookInstance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerNotebookInstanceWithName retrieves all sagemaker.NotebookInstance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerNotebookInstanceWithName(name string) (*sagemaker.NotebookInstance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.NotebookInstance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.NotebookInstance not found", name)
+}
+
+// GetAllSageMakerNotebookInstanceLifecycleConfigResources retrieves all sagemaker.NotebookInstanceLifecycleConfig items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerNotebookInstanceLifecycleConfigResources() map[string]*sagemaker.NotebookInstanceLifecycleConfig {
+ results := map[string]*sagemaker.NotebookInstanceLifecycleConfig{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.NotebookInstanceLifecycleConfig:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerNotebookInstanceLifecycleConfigWithName retrieves all sagemaker.NotebookInstanceLifecycleConfig items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerNotebookInstanceLifecycleConfigWithName(name string) (*sagemaker.NotebookInstanceLifecycleConfig, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.NotebookInstanceLifecycleConfig:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.NotebookInstanceLifecycleConfig not found", name)
+}
+
+// GetAllSageMakerPipelineResources retrieves all sagemaker.Pipeline items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerPipelineResources() map[string]*sagemaker.Pipeline {
+ results := map[string]*sagemaker.Pipeline{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.Pipeline:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerPipelineWithName retrieves all sagemaker.Pipeline items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerPipelineWithName(name string) (*sagemaker.Pipeline, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.Pipeline:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.Pipeline not found", name)
+}
+
+// GetAllSageMakerProjectResources retrieves all sagemaker.Project items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerProjectResources() map[string]*sagemaker.Project {
+ results := map[string]*sagemaker.Project{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.Project:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerProjectWithName retrieves all sagemaker.Project items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerProjectWithName(name string) (*sagemaker.Project, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.Project:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.Project not found", name)
+}
+
+// GetAllSageMakerUserProfileResources retrieves all sagemaker.UserProfile items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerUserProfileResources() map[string]*sagemaker.UserProfile {
+ results := map[string]*sagemaker.UserProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.UserProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerUserProfileWithName retrieves all sagemaker.UserProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerUserProfileWithName(name string) (*sagemaker.UserProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.UserProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.UserProfile not found", name)
+}
+
+// GetAllSageMakerWorkteamResources retrieves all sagemaker.Workteam items from an AWS CloudFormation template
+func (t *Template) GetAllSageMakerWorkteamResources() map[string]*sagemaker.Workteam {
+ results := map[string]*sagemaker.Workteam{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *sagemaker.Workteam:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSageMakerWorkteamWithName retrieves all sagemaker.Workteam items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSageMakerWorkteamWithName(name string) (*sagemaker.Workteam, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *sagemaker.Workteam:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type sagemaker.Workteam not found", name)
+}
+
+// GetAllSecretsManagerResourcePolicyResources retrieves all secretsmanager.ResourcePolicy items from an AWS CloudFormation template
+func (t *Template) GetAllSecretsManagerResourcePolicyResources() map[string]*secretsmanager.ResourcePolicy {
+ results := map[string]*secretsmanager.ResourcePolicy{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *secretsmanager.ResourcePolicy:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSecretsManagerResourcePolicyWithName retrieves all secretsmanager.ResourcePolicy items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSecretsManagerResourcePolicyWithName(name string) (*secretsmanager.ResourcePolicy, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *secretsmanager.ResourcePolicy:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type secretsmanager.ResourcePolicy not found", name)
+}
+
+// GetAllSecretsManagerRotationScheduleResources retrieves all secretsmanager.RotationSchedule items from an AWS CloudFormation template
+func (t *Template) GetAllSecretsManagerRotationScheduleResources() map[string]*secretsmanager.RotationSchedule {
+ results := map[string]*secretsmanager.RotationSchedule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *secretsmanager.RotationSchedule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSecretsManagerRotationScheduleWithName retrieves all secretsmanager.RotationSchedule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSecretsManagerRotationScheduleWithName(name string) (*secretsmanager.RotationSchedule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *secretsmanager.RotationSchedule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type secretsmanager.RotationSchedule not found", name)
+}
+
+// GetAllSecretsManagerSecretResources retrieves all secretsmanager.Secret items from an AWS CloudFormation template
+func (t *Template) GetAllSecretsManagerSecretResources() map[string]*secretsmanager.Secret {
+ results := map[string]*secretsmanager.Secret{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *secretsmanager.Secret:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSecretsManagerSecretWithName retrieves all secretsmanager.Secret items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSecretsManagerSecretWithName(name string) (*secretsmanager.Secret, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *secretsmanager.Secret:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type secretsmanager.Secret not found", name)
+}
+
+// GetAllSecretsManagerSecretTargetAttachmentResources retrieves all secretsmanager.SecretTargetAttachment items from an AWS CloudFormation template
+func (t *Template) GetAllSecretsManagerSecretTargetAttachmentResources() map[string]*secretsmanager.SecretTargetAttachment {
+ results := map[string]*secretsmanager.SecretTargetAttachment{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *secretsmanager.SecretTargetAttachment:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSecretsManagerSecretTargetAttachmentWithName retrieves all secretsmanager.SecretTargetAttachment items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSecretsManagerSecretTargetAttachmentWithName(name string) (*secretsmanager.SecretTargetAttachment, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *secretsmanager.SecretTargetAttachment:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type secretsmanager.SecretTargetAttachment not found", name)
+}
+
+// GetAllSecurityHubHubResources retrieves all securityhub.Hub items from an AWS CloudFormation template
+func (t *Template) GetAllSecurityHubHubResources() map[string]*securityhub.Hub {
+ results := map[string]*securityhub.Hub{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *securityhub.Hub:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSecurityHubHubWithName retrieves all securityhub.Hub items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSecurityHubHubWithName(name string) (*securityhub.Hub, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *securityhub.Hub:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type securityhub.Hub not found", name)
+}
+
+// GetAllServerlessApiResources retrieves all serverless.Api items from an AWS CloudFormation template
+func (t *Template) GetAllServerlessApiResources() map[string]*serverless.Api {
+ results := map[string]*serverless.Api{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *serverless.Api:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServerlessApiWithName retrieves all serverless.Api items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServerlessApiWithName(name string) (*serverless.Api, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *serverless.Api:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type serverless.Api not found", name)
+}
+
+// GetAllServerlessApplicationResources retrieves all serverless.Application items from an AWS CloudFormation template
+func (t *Template) GetAllServerlessApplicationResources() map[string]*serverless.Application {
+ results := map[string]*serverless.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *serverless.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServerlessApplicationWithName retrieves all serverless.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServerlessApplicationWithName(name string) (*serverless.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *serverless.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type serverless.Application not found", name)
+}
+
+// GetAllServerlessFunctionResources retrieves all serverless.Function items from an AWS CloudFormation template
+func (t *Template) GetAllServerlessFunctionResources() map[string]*serverless.Function {
+ results := map[string]*serverless.Function{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *serverless.Function:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServerlessFunctionWithName retrieves all serverless.Function items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServerlessFunctionWithName(name string) (*serverless.Function, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *serverless.Function:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type serverless.Function not found", name)
+}
+
+// GetAllServerlessLayerVersionResources retrieves all serverless.LayerVersion items from an AWS CloudFormation template
+func (t *Template) GetAllServerlessLayerVersionResources() map[string]*serverless.LayerVersion {
+ results := map[string]*serverless.LayerVersion{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *serverless.LayerVersion:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServerlessLayerVersionWithName retrieves all serverless.LayerVersion items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServerlessLayerVersionWithName(name string) (*serverless.LayerVersion, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *serverless.LayerVersion:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type serverless.LayerVersion not found", name)
+}
+
+// GetAllServerlessSimpleTableResources retrieves all serverless.SimpleTable items from an AWS CloudFormation template
+func (t *Template) GetAllServerlessSimpleTableResources() map[string]*serverless.SimpleTable {
+ results := map[string]*serverless.SimpleTable{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *serverless.SimpleTable:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServerlessSimpleTableWithName retrieves all serverless.SimpleTable items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServerlessSimpleTableWithName(name string) (*serverless.SimpleTable, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *serverless.SimpleTable:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type serverless.SimpleTable not found", name)
+}
+
+// GetAllServerlessStateMachineResources retrieves all serverless.StateMachine items from an AWS CloudFormation template
+func (t *Template) GetAllServerlessStateMachineResources() map[string]*serverless.StateMachine {
+ results := map[string]*serverless.StateMachine{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *serverless.StateMachine:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServerlessStateMachineWithName retrieves all serverless.StateMachine items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServerlessStateMachineWithName(name string) (*serverless.StateMachine, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *serverless.StateMachine:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type serverless.StateMachine not found", name)
+}
+
+// GetAllServiceCatalogAcceptedPortfolioShareResources retrieves all servicecatalog.AcceptedPortfolioShare items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogAcceptedPortfolioShareResources() map[string]*servicecatalog.AcceptedPortfolioShare {
+ results := map[string]*servicecatalog.AcceptedPortfolioShare{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.AcceptedPortfolioShare:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogAcceptedPortfolioShareWithName retrieves all servicecatalog.AcceptedPortfolioShare items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogAcceptedPortfolioShareWithName(name string) (*servicecatalog.AcceptedPortfolioShare, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.AcceptedPortfolioShare:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.AcceptedPortfolioShare not found", name)
+}
+
+// GetAllServiceCatalogCloudFormationProductResources retrieves all servicecatalog.CloudFormationProduct items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogCloudFormationProductResources() map[string]*servicecatalog.CloudFormationProduct {
+ results := map[string]*servicecatalog.CloudFormationProduct{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.CloudFormationProduct:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogCloudFormationProductWithName retrieves all servicecatalog.CloudFormationProduct items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogCloudFormationProductWithName(name string) (*servicecatalog.CloudFormationProduct, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.CloudFormationProduct:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.CloudFormationProduct not found", name)
+}
+
+// GetAllServiceCatalogCloudFormationProvisionedProductResources retrieves all servicecatalog.CloudFormationProvisionedProduct items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogCloudFormationProvisionedProductResources() map[string]*servicecatalog.CloudFormationProvisionedProduct {
+ results := map[string]*servicecatalog.CloudFormationProvisionedProduct{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.CloudFormationProvisionedProduct:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogCloudFormationProvisionedProductWithName retrieves all servicecatalog.CloudFormationProvisionedProduct items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogCloudFormationProvisionedProductWithName(name string) (*servicecatalog.CloudFormationProvisionedProduct, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.CloudFormationProvisionedProduct:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.CloudFormationProvisionedProduct not found", name)
+}
+
+// GetAllServiceCatalogLaunchNotificationConstraintResources retrieves all servicecatalog.LaunchNotificationConstraint items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogLaunchNotificationConstraintResources() map[string]*servicecatalog.LaunchNotificationConstraint {
+ results := map[string]*servicecatalog.LaunchNotificationConstraint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.LaunchNotificationConstraint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogLaunchNotificationConstraintWithName retrieves all servicecatalog.LaunchNotificationConstraint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogLaunchNotificationConstraintWithName(name string) (*servicecatalog.LaunchNotificationConstraint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.LaunchNotificationConstraint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.LaunchNotificationConstraint not found", name)
+}
+
+// GetAllServiceCatalogLaunchRoleConstraintResources retrieves all servicecatalog.LaunchRoleConstraint items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogLaunchRoleConstraintResources() map[string]*servicecatalog.LaunchRoleConstraint {
+ results := map[string]*servicecatalog.LaunchRoleConstraint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.LaunchRoleConstraint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogLaunchRoleConstraintWithName retrieves all servicecatalog.LaunchRoleConstraint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogLaunchRoleConstraintWithName(name string) (*servicecatalog.LaunchRoleConstraint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.LaunchRoleConstraint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.LaunchRoleConstraint not found", name)
+}
+
+// GetAllServiceCatalogLaunchTemplateConstraintResources retrieves all servicecatalog.LaunchTemplateConstraint items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogLaunchTemplateConstraintResources() map[string]*servicecatalog.LaunchTemplateConstraint {
+ results := map[string]*servicecatalog.LaunchTemplateConstraint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.LaunchTemplateConstraint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogLaunchTemplateConstraintWithName retrieves all servicecatalog.LaunchTemplateConstraint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogLaunchTemplateConstraintWithName(name string) (*servicecatalog.LaunchTemplateConstraint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.LaunchTemplateConstraint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.LaunchTemplateConstraint not found", name)
+}
+
+// GetAllServiceCatalogPortfolioResources retrieves all servicecatalog.Portfolio items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogPortfolioResources() map[string]*servicecatalog.Portfolio {
+ results := map[string]*servicecatalog.Portfolio{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.Portfolio:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogPortfolioWithName retrieves all servicecatalog.Portfolio items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogPortfolioWithName(name string) (*servicecatalog.Portfolio, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.Portfolio:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.Portfolio not found", name)
+}
+
+// GetAllServiceCatalogPortfolioPrincipalAssociationResources retrieves all servicecatalog.PortfolioPrincipalAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogPortfolioPrincipalAssociationResources() map[string]*servicecatalog.PortfolioPrincipalAssociation {
+ results := map[string]*servicecatalog.PortfolioPrincipalAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.PortfolioPrincipalAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogPortfolioPrincipalAssociationWithName retrieves all servicecatalog.PortfolioPrincipalAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogPortfolioPrincipalAssociationWithName(name string) (*servicecatalog.PortfolioPrincipalAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.PortfolioPrincipalAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.PortfolioPrincipalAssociation not found", name)
+}
+
+// GetAllServiceCatalogPortfolioProductAssociationResources retrieves all servicecatalog.PortfolioProductAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogPortfolioProductAssociationResources() map[string]*servicecatalog.PortfolioProductAssociation {
+ results := map[string]*servicecatalog.PortfolioProductAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.PortfolioProductAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogPortfolioProductAssociationWithName retrieves all servicecatalog.PortfolioProductAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogPortfolioProductAssociationWithName(name string) (*servicecatalog.PortfolioProductAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.PortfolioProductAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.PortfolioProductAssociation not found", name)
+}
+
+// GetAllServiceCatalogPortfolioShareResources retrieves all servicecatalog.PortfolioShare items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogPortfolioShareResources() map[string]*servicecatalog.PortfolioShare {
+ results := map[string]*servicecatalog.PortfolioShare{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.PortfolioShare:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogPortfolioShareWithName retrieves all servicecatalog.PortfolioShare items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogPortfolioShareWithName(name string) (*servicecatalog.PortfolioShare, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.PortfolioShare:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.PortfolioShare not found", name)
+}
+
+// GetAllServiceCatalogResourceUpdateConstraintResources retrieves all servicecatalog.ResourceUpdateConstraint items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogResourceUpdateConstraintResources() map[string]*servicecatalog.ResourceUpdateConstraint {
+ results := map[string]*servicecatalog.ResourceUpdateConstraint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.ResourceUpdateConstraint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogResourceUpdateConstraintWithName retrieves all servicecatalog.ResourceUpdateConstraint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogResourceUpdateConstraintWithName(name string) (*servicecatalog.ResourceUpdateConstraint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.ResourceUpdateConstraint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.ResourceUpdateConstraint not found", name)
+}
+
+// GetAllServiceCatalogServiceActionResources retrieves all servicecatalog.ServiceAction items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogServiceActionResources() map[string]*servicecatalog.ServiceAction {
+ results := map[string]*servicecatalog.ServiceAction{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.ServiceAction:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogServiceActionWithName retrieves all servicecatalog.ServiceAction items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogServiceActionWithName(name string) (*servicecatalog.ServiceAction, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.ServiceAction:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.ServiceAction not found", name)
+}
+
+// GetAllServiceCatalogServiceActionAssociationResources retrieves all servicecatalog.ServiceActionAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogServiceActionAssociationResources() map[string]*servicecatalog.ServiceActionAssociation {
+ results := map[string]*servicecatalog.ServiceActionAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.ServiceActionAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogServiceActionAssociationWithName retrieves all servicecatalog.ServiceActionAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogServiceActionAssociationWithName(name string) (*servicecatalog.ServiceActionAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.ServiceActionAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.ServiceActionAssociation not found", name)
+}
+
+// GetAllServiceCatalogStackSetConstraintResources retrieves all servicecatalog.StackSetConstraint items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogStackSetConstraintResources() map[string]*servicecatalog.StackSetConstraint {
+ results := map[string]*servicecatalog.StackSetConstraint{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.StackSetConstraint:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogStackSetConstraintWithName retrieves all servicecatalog.StackSetConstraint items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogStackSetConstraintWithName(name string) (*servicecatalog.StackSetConstraint, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.StackSetConstraint:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.StackSetConstraint not found", name)
+}
+
+// GetAllServiceCatalogTagOptionResources retrieves all servicecatalog.TagOption items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogTagOptionResources() map[string]*servicecatalog.TagOption {
+ results := map[string]*servicecatalog.TagOption{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.TagOption:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogTagOptionWithName retrieves all servicecatalog.TagOption items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogTagOptionWithName(name string) (*servicecatalog.TagOption, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.TagOption:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.TagOption not found", name)
+}
+
+// GetAllServiceCatalogTagOptionAssociationResources retrieves all servicecatalog.TagOptionAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogTagOptionAssociationResources() map[string]*servicecatalog.TagOptionAssociation {
+ results := map[string]*servicecatalog.TagOptionAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalog.TagOptionAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogTagOptionAssociationWithName retrieves all servicecatalog.TagOptionAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogTagOptionAssociationWithName(name string) (*servicecatalog.TagOptionAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalog.TagOptionAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalog.TagOptionAssociation not found", name)
+}
+
+// GetAllServiceCatalogAppRegistryApplicationResources retrieves all servicecatalogappregistry.Application items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogAppRegistryApplicationResources() map[string]*servicecatalogappregistry.Application {
+ results := map[string]*servicecatalogappregistry.Application{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalogappregistry.Application:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogAppRegistryApplicationWithName retrieves all servicecatalogappregistry.Application items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogAppRegistryApplicationWithName(name string) (*servicecatalogappregistry.Application, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalogappregistry.Application:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalogappregistry.Application not found", name)
+}
+
+// GetAllServiceCatalogAppRegistryAttributeGroupResources retrieves all servicecatalogappregistry.AttributeGroup items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogAppRegistryAttributeGroupResources() map[string]*servicecatalogappregistry.AttributeGroup {
+ results := map[string]*servicecatalogappregistry.AttributeGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalogappregistry.AttributeGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogAppRegistryAttributeGroupWithName retrieves all servicecatalogappregistry.AttributeGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogAppRegistryAttributeGroupWithName(name string) (*servicecatalogappregistry.AttributeGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalogappregistry.AttributeGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalogappregistry.AttributeGroup not found", name)
+}
+
+// GetAllServiceCatalogAppRegistryAttributeGroupAssociationResources retrieves all servicecatalogappregistry.AttributeGroupAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogAppRegistryAttributeGroupAssociationResources() map[string]*servicecatalogappregistry.AttributeGroupAssociation {
+ results := map[string]*servicecatalogappregistry.AttributeGroupAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalogappregistry.AttributeGroupAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogAppRegistryAttributeGroupAssociationWithName retrieves all servicecatalogappregistry.AttributeGroupAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogAppRegistryAttributeGroupAssociationWithName(name string) (*servicecatalogappregistry.AttributeGroupAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalogappregistry.AttributeGroupAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalogappregistry.AttributeGroupAssociation not found", name)
+}
+
+// GetAllServiceCatalogAppRegistryResourceAssociationResources retrieves all servicecatalogappregistry.ResourceAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllServiceCatalogAppRegistryResourceAssociationResources() map[string]*servicecatalogappregistry.ResourceAssociation {
+ results := map[string]*servicecatalogappregistry.ResourceAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicecatalogappregistry.ResourceAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceCatalogAppRegistryResourceAssociationWithName retrieves all servicecatalogappregistry.ResourceAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceCatalogAppRegistryResourceAssociationWithName(name string) (*servicecatalogappregistry.ResourceAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicecatalogappregistry.ResourceAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicecatalogappregistry.ResourceAssociation not found", name)
+}
+
+// GetAllServiceDiscoveryHttpNamespaceResources retrieves all servicediscovery.HttpNamespace items from an AWS CloudFormation template
+func (t *Template) GetAllServiceDiscoveryHttpNamespaceResources() map[string]*servicediscovery.HttpNamespace {
+ results := map[string]*servicediscovery.HttpNamespace{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicediscovery.HttpNamespace:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceDiscoveryHttpNamespaceWithName retrieves all servicediscovery.HttpNamespace items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceDiscoveryHttpNamespaceWithName(name string) (*servicediscovery.HttpNamespace, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicediscovery.HttpNamespace:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicediscovery.HttpNamespace not found", name)
+}
+
+// GetAllServiceDiscoveryInstanceResources retrieves all servicediscovery.Instance items from an AWS CloudFormation template
+func (t *Template) GetAllServiceDiscoveryInstanceResources() map[string]*servicediscovery.Instance {
+ results := map[string]*servicediscovery.Instance{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicediscovery.Instance:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceDiscoveryInstanceWithName retrieves all servicediscovery.Instance items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceDiscoveryInstanceWithName(name string) (*servicediscovery.Instance, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicediscovery.Instance:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicediscovery.Instance not found", name)
+}
+
+// GetAllServiceDiscoveryPrivateDnsNamespaceResources retrieves all servicediscovery.PrivateDnsNamespace items from an AWS CloudFormation template
+func (t *Template) GetAllServiceDiscoveryPrivateDnsNamespaceResources() map[string]*servicediscovery.PrivateDnsNamespace {
+ results := map[string]*servicediscovery.PrivateDnsNamespace{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicediscovery.PrivateDnsNamespace:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceDiscoveryPrivateDnsNamespaceWithName retrieves all servicediscovery.PrivateDnsNamespace items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceDiscoveryPrivateDnsNamespaceWithName(name string) (*servicediscovery.PrivateDnsNamespace, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicediscovery.PrivateDnsNamespace:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicediscovery.PrivateDnsNamespace not found", name)
+}
+
+// GetAllServiceDiscoveryPublicDnsNamespaceResources retrieves all servicediscovery.PublicDnsNamespace items from an AWS CloudFormation template
+func (t *Template) GetAllServiceDiscoveryPublicDnsNamespaceResources() map[string]*servicediscovery.PublicDnsNamespace {
+ results := map[string]*servicediscovery.PublicDnsNamespace{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicediscovery.PublicDnsNamespace:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceDiscoveryPublicDnsNamespaceWithName retrieves all servicediscovery.PublicDnsNamespace items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceDiscoveryPublicDnsNamespaceWithName(name string) (*servicediscovery.PublicDnsNamespace, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicediscovery.PublicDnsNamespace:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicediscovery.PublicDnsNamespace not found", name)
+}
+
+// GetAllServiceDiscoveryServiceResources retrieves all servicediscovery.Service items from an AWS CloudFormation template
+func (t *Template) GetAllServiceDiscoveryServiceResources() map[string]*servicediscovery.Service {
+ results := map[string]*servicediscovery.Service{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *servicediscovery.Service:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetServiceDiscoveryServiceWithName retrieves all servicediscovery.Service items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetServiceDiscoveryServiceWithName(name string) (*servicediscovery.Service, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *servicediscovery.Service:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type servicediscovery.Service not found", name)
+}
+
+// GetAllSignerProfilePermissionResources retrieves all signer.ProfilePermission items from an AWS CloudFormation template
+func (t *Template) GetAllSignerProfilePermissionResources() map[string]*signer.ProfilePermission {
+ results := map[string]*signer.ProfilePermission{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *signer.ProfilePermission:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSignerProfilePermissionWithName retrieves all signer.ProfilePermission items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSignerProfilePermissionWithName(name string) (*signer.ProfilePermission, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *signer.ProfilePermission:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type signer.ProfilePermission not found", name)
+}
+
+// GetAllSignerSigningProfileResources retrieves all signer.SigningProfile items from an AWS CloudFormation template
+func (t *Template) GetAllSignerSigningProfileResources() map[string]*signer.SigningProfile {
+ results := map[string]*signer.SigningProfile{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *signer.SigningProfile:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSignerSigningProfileWithName retrieves all signer.SigningProfile items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSignerSigningProfileWithName(name string) (*signer.SigningProfile, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *signer.SigningProfile:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type signer.SigningProfile not found", name)
+}
+
+// GetAllStepFunctionsActivityResources retrieves all stepfunctions.Activity items from an AWS CloudFormation template
+func (t *Template) GetAllStepFunctionsActivityResources() map[string]*stepfunctions.Activity {
+ results := map[string]*stepfunctions.Activity{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *stepfunctions.Activity:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetStepFunctionsActivityWithName retrieves all stepfunctions.Activity items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetStepFunctionsActivityWithName(name string) (*stepfunctions.Activity, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *stepfunctions.Activity:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type stepfunctions.Activity not found", name)
+}
+
+// GetAllStepFunctionsStateMachineResources retrieves all stepfunctions.StateMachine items from an AWS CloudFormation template
+func (t *Template) GetAllStepFunctionsStateMachineResources() map[string]*stepfunctions.StateMachine {
+ results := map[string]*stepfunctions.StateMachine{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *stepfunctions.StateMachine:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetStepFunctionsStateMachineWithName retrieves all stepfunctions.StateMachine items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetStepFunctionsStateMachineWithName(name string) (*stepfunctions.StateMachine, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *stepfunctions.StateMachine:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type stepfunctions.StateMachine not found", name)
+}
+
+// GetAllSyntheticsCanaryResources retrieves all synthetics.Canary items from an AWS CloudFormation template
+func (t *Template) GetAllSyntheticsCanaryResources() map[string]*synthetics.Canary {
+ results := map[string]*synthetics.Canary{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *synthetics.Canary:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetSyntheticsCanaryWithName retrieves all synthetics.Canary items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetSyntheticsCanaryWithName(name string) (*synthetics.Canary, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *synthetics.Canary:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type synthetics.Canary not found", name)
+}
+
+// GetAllTimestreamDatabaseResources retrieves all timestream.Database items from an AWS CloudFormation template
+func (t *Template) GetAllTimestreamDatabaseResources() map[string]*timestream.Database {
+ results := map[string]*timestream.Database{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *timestream.Database:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetTimestreamDatabaseWithName retrieves all timestream.Database items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetTimestreamDatabaseWithName(name string) (*timestream.Database, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *timestream.Database:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type timestream.Database not found", name)
+}
+
+// GetAllTimestreamScheduledQueryResources retrieves all timestream.ScheduledQuery items from an AWS CloudFormation template
+func (t *Template) GetAllTimestreamScheduledQueryResources() map[string]*timestream.ScheduledQuery {
+ results := map[string]*timestream.ScheduledQuery{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *timestream.ScheduledQuery:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetTimestreamScheduledQueryWithName retrieves all timestream.ScheduledQuery items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetTimestreamScheduledQueryWithName(name string) (*timestream.ScheduledQuery, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *timestream.ScheduledQuery:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type timestream.ScheduledQuery not found", name)
+}
+
+// GetAllTimestreamTableResources retrieves all timestream.Table items from an AWS CloudFormation template
+func (t *Template) GetAllTimestreamTableResources() map[string]*timestream.Table {
+ results := map[string]*timestream.Table{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *timestream.Table:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetTimestreamTableWithName retrieves all timestream.Table items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetTimestreamTableWithName(name string) (*timestream.Table, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *timestream.Table:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type timestream.Table not found", name)
+}
+
+// GetAllTransferServerResources retrieves all transfer.Server items from an AWS CloudFormation template
+func (t *Template) GetAllTransferServerResources() map[string]*transfer.Server {
+ results := map[string]*transfer.Server{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *transfer.Server:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetTransferServerWithName retrieves all transfer.Server items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetTransferServerWithName(name string) (*transfer.Server, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *transfer.Server:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type transfer.Server not found", name)
+}
+
+// GetAllTransferUserResources retrieves all transfer.User items from an AWS CloudFormation template
+func (t *Template) GetAllTransferUserResources() map[string]*transfer.User {
+ results := map[string]*transfer.User{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *transfer.User:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetTransferUserWithName retrieves all transfer.User items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetTransferUserWithName(name string) (*transfer.User, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *transfer.User:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type transfer.User not found", name)
+}
+
+// GetAllTransferWorkflowResources retrieves all transfer.Workflow items from an AWS CloudFormation template
+func (t *Template) GetAllTransferWorkflowResources() map[string]*transfer.Workflow {
+ results := map[string]*transfer.Workflow{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *transfer.Workflow:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetTransferWorkflowWithName retrieves all transfer.Workflow items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetTransferWorkflowWithName(name string) (*transfer.Workflow, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *transfer.Workflow:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type transfer.Workflow not found", name)
+}
+
+// GetAllWAFByteMatchSetResources retrieves all waf.ByteMatchSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFByteMatchSetResources() map[string]*waf.ByteMatchSet {
+ results := map[string]*waf.ByteMatchSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *waf.ByteMatchSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFByteMatchSetWithName retrieves all waf.ByteMatchSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFByteMatchSetWithName(name string) (*waf.ByteMatchSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *waf.ByteMatchSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type waf.ByteMatchSet not found", name)
+}
+
+// GetAllWAFIPSetResources retrieves all waf.IPSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFIPSetResources() map[string]*waf.IPSet {
+ results := map[string]*waf.IPSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *waf.IPSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFIPSetWithName retrieves all waf.IPSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFIPSetWithName(name string) (*waf.IPSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *waf.IPSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type waf.IPSet not found", name)
+}
+
+// GetAllWAFRuleResources retrieves all waf.Rule items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRuleResources() map[string]*waf.Rule {
+ results := map[string]*waf.Rule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *waf.Rule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRuleWithName retrieves all waf.Rule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRuleWithName(name string) (*waf.Rule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *waf.Rule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type waf.Rule not found", name)
+}
+
+// GetAllWAFSizeConstraintSetResources retrieves all waf.SizeConstraintSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFSizeConstraintSetResources() map[string]*waf.SizeConstraintSet {
+ results := map[string]*waf.SizeConstraintSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *waf.SizeConstraintSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFSizeConstraintSetWithName retrieves all waf.SizeConstraintSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFSizeConstraintSetWithName(name string) (*waf.SizeConstraintSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *waf.SizeConstraintSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type waf.SizeConstraintSet not found", name)
+}
+
+// GetAllWAFSqlInjectionMatchSetResources retrieves all waf.SqlInjectionMatchSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFSqlInjectionMatchSetResources() map[string]*waf.SqlInjectionMatchSet {
+ results := map[string]*waf.SqlInjectionMatchSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *waf.SqlInjectionMatchSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFSqlInjectionMatchSetWithName retrieves all waf.SqlInjectionMatchSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFSqlInjectionMatchSetWithName(name string) (*waf.SqlInjectionMatchSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *waf.SqlInjectionMatchSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type waf.SqlInjectionMatchSet not found", name)
+}
+
+// GetAllWAFWebACLResources retrieves all waf.WebACL items from an AWS CloudFormation template
+func (t *Template) GetAllWAFWebACLResources() map[string]*waf.WebACL {
+ results := map[string]*waf.WebACL{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *waf.WebACL:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFWebACLWithName retrieves all waf.WebACL items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFWebACLWithName(name string) (*waf.WebACL, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *waf.WebACL:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type waf.WebACL not found", name)
+}
+
+// GetAllWAFXssMatchSetResources retrieves all waf.XssMatchSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFXssMatchSetResources() map[string]*waf.XssMatchSet {
+ results := map[string]*waf.XssMatchSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *waf.XssMatchSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFXssMatchSetWithName retrieves all waf.XssMatchSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFXssMatchSetWithName(name string) (*waf.XssMatchSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *waf.XssMatchSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type waf.XssMatchSet not found", name)
+}
+
+// GetAllWAFRegionalByteMatchSetResources retrieves all wafregional.ByteMatchSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalByteMatchSetResources() map[string]*wafregional.ByteMatchSet {
+ results := map[string]*wafregional.ByteMatchSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.ByteMatchSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalByteMatchSetWithName retrieves all wafregional.ByteMatchSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalByteMatchSetWithName(name string) (*wafregional.ByteMatchSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.ByteMatchSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.ByteMatchSet not found", name)
+}
+
+// GetAllWAFRegionalGeoMatchSetResources retrieves all wafregional.GeoMatchSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalGeoMatchSetResources() map[string]*wafregional.GeoMatchSet {
+ results := map[string]*wafregional.GeoMatchSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.GeoMatchSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalGeoMatchSetWithName retrieves all wafregional.GeoMatchSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalGeoMatchSetWithName(name string) (*wafregional.GeoMatchSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.GeoMatchSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.GeoMatchSet not found", name)
+}
+
+// GetAllWAFRegionalIPSetResources retrieves all wafregional.IPSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalIPSetResources() map[string]*wafregional.IPSet {
+ results := map[string]*wafregional.IPSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.IPSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalIPSetWithName retrieves all wafregional.IPSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalIPSetWithName(name string) (*wafregional.IPSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.IPSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.IPSet not found", name)
+}
+
+// GetAllWAFRegionalRateBasedRuleResources retrieves all wafregional.RateBasedRule items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalRateBasedRuleResources() map[string]*wafregional.RateBasedRule {
+ results := map[string]*wafregional.RateBasedRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.RateBasedRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalRateBasedRuleWithName retrieves all wafregional.RateBasedRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalRateBasedRuleWithName(name string) (*wafregional.RateBasedRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.RateBasedRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.RateBasedRule not found", name)
+}
+
+// GetAllWAFRegionalRegexPatternSetResources retrieves all wafregional.RegexPatternSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalRegexPatternSetResources() map[string]*wafregional.RegexPatternSet {
+ results := map[string]*wafregional.RegexPatternSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.RegexPatternSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalRegexPatternSetWithName retrieves all wafregional.RegexPatternSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalRegexPatternSetWithName(name string) (*wafregional.RegexPatternSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.RegexPatternSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.RegexPatternSet not found", name)
+}
+
+// GetAllWAFRegionalRuleResources retrieves all wafregional.Rule items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalRuleResources() map[string]*wafregional.Rule {
+ results := map[string]*wafregional.Rule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.Rule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalRuleWithName retrieves all wafregional.Rule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalRuleWithName(name string) (*wafregional.Rule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.Rule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.Rule not found", name)
+}
+
+// GetAllWAFRegionalSizeConstraintSetResources retrieves all wafregional.SizeConstraintSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalSizeConstraintSetResources() map[string]*wafregional.SizeConstraintSet {
+ results := map[string]*wafregional.SizeConstraintSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.SizeConstraintSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalSizeConstraintSetWithName retrieves all wafregional.SizeConstraintSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalSizeConstraintSetWithName(name string) (*wafregional.SizeConstraintSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.SizeConstraintSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.SizeConstraintSet not found", name)
+}
+
+// GetAllWAFRegionalSqlInjectionMatchSetResources retrieves all wafregional.SqlInjectionMatchSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalSqlInjectionMatchSetResources() map[string]*wafregional.SqlInjectionMatchSet {
+ results := map[string]*wafregional.SqlInjectionMatchSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.SqlInjectionMatchSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalSqlInjectionMatchSetWithName retrieves all wafregional.SqlInjectionMatchSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalSqlInjectionMatchSetWithName(name string) (*wafregional.SqlInjectionMatchSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.SqlInjectionMatchSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.SqlInjectionMatchSet not found", name)
+}
+
+// GetAllWAFRegionalWebACLResources retrieves all wafregional.WebACL items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalWebACLResources() map[string]*wafregional.WebACL {
+ results := map[string]*wafregional.WebACL{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.WebACL:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalWebACLWithName retrieves all wafregional.WebACL items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalWebACLWithName(name string) (*wafregional.WebACL, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.WebACL:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.WebACL not found", name)
+}
+
+// GetAllWAFRegionalWebACLAssociationResources retrieves all wafregional.WebACLAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalWebACLAssociationResources() map[string]*wafregional.WebACLAssociation {
+ results := map[string]*wafregional.WebACLAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.WebACLAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalWebACLAssociationWithName retrieves all wafregional.WebACLAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalWebACLAssociationWithName(name string) (*wafregional.WebACLAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.WebACLAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.WebACLAssociation not found", name)
+}
+
+// GetAllWAFRegionalXssMatchSetResources retrieves all wafregional.XssMatchSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFRegionalXssMatchSetResources() map[string]*wafregional.XssMatchSet {
+ results := map[string]*wafregional.XssMatchSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafregional.XssMatchSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFRegionalXssMatchSetWithName retrieves all wafregional.XssMatchSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFRegionalXssMatchSetWithName(name string) (*wafregional.XssMatchSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafregional.XssMatchSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafregional.XssMatchSet not found", name)
+}
+
+// GetAllWAFv2IPSetResources retrieves all wafv2.IPSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFv2IPSetResources() map[string]*wafv2.IPSet {
+ results := map[string]*wafv2.IPSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafv2.IPSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFv2IPSetWithName retrieves all wafv2.IPSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFv2IPSetWithName(name string) (*wafv2.IPSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafv2.IPSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafv2.IPSet not found", name)
+}
+
+// GetAllWAFv2LoggingConfigurationResources retrieves all wafv2.LoggingConfiguration items from an AWS CloudFormation template
+func (t *Template) GetAllWAFv2LoggingConfigurationResources() map[string]*wafv2.LoggingConfiguration {
+ results := map[string]*wafv2.LoggingConfiguration{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafv2.LoggingConfiguration:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFv2LoggingConfigurationWithName retrieves all wafv2.LoggingConfiguration items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFv2LoggingConfigurationWithName(name string) (*wafv2.LoggingConfiguration, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafv2.LoggingConfiguration:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafv2.LoggingConfiguration not found", name)
+}
+
+// GetAllWAFv2RegexPatternSetResources retrieves all wafv2.RegexPatternSet items from an AWS CloudFormation template
+func (t *Template) GetAllWAFv2RegexPatternSetResources() map[string]*wafv2.RegexPatternSet {
+ results := map[string]*wafv2.RegexPatternSet{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafv2.RegexPatternSet:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFv2RegexPatternSetWithName retrieves all wafv2.RegexPatternSet items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFv2RegexPatternSetWithName(name string) (*wafv2.RegexPatternSet, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafv2.RegexPatternSet:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafv2.RegexPatternSet not found", name)
+}
+
+// GetAllWAFv2RuleGroupResources retrieves all wafv2.RuleGroup items from an AWS CloudFormation template
+func (t *Template) GetAllWAFv2RuleGroupResources() map[string]*wafv2.RuleGroup {
+ results := map[string]*wafv2.RuleGroup{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafv2.RuleGroup:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFv2RuleGroupWithName retrieves all wafv2.RuleGroup items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFv2RuleGroupWithName(name string) (*wafv2.RuleGroup, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafv2.RuleGroup:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafv2.RuleGroup not found", name)
+}
+
+// GetAllWAFv2WebACLResources retrieves all wafv2.WebACL items from an AWS CloudFormation template
+func (t *Template) GetAllWAFv2WebACLResources() map[string]*wafv2.WebACL {
+ results := map[string]*wafv2.WebACL{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafv2.WebACL:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFv2WebACLWithName retrieves all wafv2.WebACL items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFv2WebACLWithName(name string) (*wafv2.WebACL, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafv2.WebACL:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafv2.WebACL not found", name)
+}
+
+// GetAllWAFv2WebACLAssociationResources retrieves all wafv2.WebACLAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllWAFv2WebACLAssociationResources() map[string]*wafv2.WebACLAssociation {
+ results := map[string]*wafv2.WebACLAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wafv2.WebACLAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWAFv2WebACLAssociationWithName retrieves all wafv2.WebACLAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWAFv2WebACLAssociationWithName(name string) (*wafv2.WebACLAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wafv2.WebACLAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wafv2.WebACLAssociation not found", name)
+}
+
+// GetAllWisdomAssistantResources retrieves all wisdom.Assistant items from an AWS CloudFormation template
+func (t *Template) GetAllWisdomAssistantResources() map[string]*wisdom.Assistant {
+ results := map[string]*wisdom.Assistant{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wisdom.Assistant:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWisdomAssistantWithName retrieves all wisdom.Assistant items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWisdomAssistantWithName(name string) (*wisdom.Assistant, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wisdom.Assistant:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wisdom.Assistant not found", name)
+}
+
+// GetAllWisdomAssistantAssociationResources retrieves all wisdom.AssistantAssociation items from an AWS CloudFormation template
+func (t *Template) GetAllWisdomAssistantAssociationResources() map[string]*wisdom.AssistantAssociation {
+ results := map[string]*wisdom.AssistantAssociation{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wisdom.AssistantAssociation:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWisdomAssistantAssociationWithName retrieves all wisdom.AssistantAssociation items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWisdomAssistantAssociationWithName(name string) (*wisdom.AssistantAssociation, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wisdom.AssistantAssociation:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wisdom.AssistantAssociation not found", name)
+}
+
+// GetAllWisdomKnowledgeBaseResources retrieves all wisdom.KnowledgeBase items from an AWS CloudFormation template
+func (t *Template) GetAllWisdomKnowledgeBaseResources() map[string]*wisdom.KnowledgeBase {
+ results := map[string]*wisdom.KnowledgeBase{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *wisdom.KnowledgeBase:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWisdomKnowledgeBaseWithName retrieves all wisdom.KnowledgeBase items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWisdomKnowledgeBaseWithName(name string) (*wisdom.KnowledgeBase, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *wisdom.KnowledgeBase:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type wisdom.KnowledgeBase not found", name)
+}
+
+// GetAllWorkSpacesConnectionAliasResources retrieves all workspaces.ConnectionAlias items from an AWS CloudFormation template
+func (t *Template) GetAllWorkSpacesConnectionAliasResources() map[string]*workspaces.ConnectionAlias {
+ results := map[string]*workspaces.ConnectionAlias{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *workspaces.ConnectionAlias:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWorkSpacesConnectionAliasWithName retrieves all workspaces.ConnectionAlias items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWorkSpacesConnectionAliasWithName(name string) (*workspaces.ConnectionAlias, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *workspaces.ConnectionAlias:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type workspaces.ConnectionAlias not found", name)
+}
+
+// GetAllWorkSpacesWorkspaceResources retrieves all workspaces.Workspace items from an AWS CloudFormation template
+func (t *Template) GetAllWorkSpacesWorkspaceResources() map[string]*workspaces.Workspace {
+ results := map[string]*workspaces.Workspace{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *workspaces.Workspace:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetWorkSpacesWorkspaceWithName retrieves all workspaces.Workspace items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetWorkSpacesWorkspaceWithName(name string) (*workspaces.Workspace, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *workspaces.Workspace:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type workspaces.Workspace not found", name)
+}
+
+// GetAllXRayGroupResources retrieves all xray.Group items from an AWS CloudFormation template
+func (t *Template) GetAllXRayGroupResources() map[string]*xray.Group {
+ results := map[string]*xray.Group{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *xray.Group:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetXRayGroupWithName retrieves all xray.Group items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetXRayGroupWithName(name string) (*xray.Group, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *xray.Group:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type xray.Group not found", name)
+}
+
+// GetAllXRaySamplingRuleResources retrieves all xray.SamplingRule items from an AWS CloudFormation template
+func (t *Template) GetAllXRaySamplingRuleResources() map[string]*xray.SamplingRule {
+ results := map[string]*xray.SamplingRule{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *xray.SamplingRule:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetXRaySamplingRuleWithName retrieves all xray.SamplingRule items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetXRaySamplingRuleWithName(name string) (*xray.SamplingRule, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *xray.SamplingRule:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type xray.SamplingRule not found", name)
+}
+
+// GetAllASKSkillResources retrieves all ask.Skill items from an AWS CloudFormation template
+func (t *Template) GetAllASKSkillResources() map[string]*ask.Skill {
+ results := map[string]*ask.Skill{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *ask.Skill:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetASKSkillWithName retrieves all ask.Skill items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetASKSkillWithName(name string) (*ask.Skill, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *ask.Skill:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type ask.Skill not found", name)
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-broker.go b/goformation/cloudformation/amazonmq/aws-amazonmq-broker.go
new file mode 100644
index 0000000000..a21337b707
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-broker.go
@@ -0,0 +1,193 @@
+package amazonmq
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Broker AWS CloudFormation Resource (AWS::AmazonMQ::Broker)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html
+type Broker struct {
+
+ // AuthenticationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-authenticationstrategy
+ AuthenticationStrategy *types.Value `json:"AuthenticationStrategy,omitempty"`
+
+ // AutoMinorVersionUpgrade AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-autominorversionupgrade
+ AutoMinorVersionUpgrade *types.Value `json:"AutoMinorVersionUpgrade"`
+
+ // BrokerName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-brokername
+ BrokerName *types.Value `json:"BrokerName,omitempty"`
+
+ // Configuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-configuration
+ Configuration *Broker_ConfigurationId `json:"Configuration,omitempty"`
+
+ // DeploymentMode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-deploymentmode
+ DeploymentMode *types.Value `json:"DeploymentMode,omitempty"`
+
+ // EncryptionOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-encryptionoptions
+ EncryptionOptions *Broker_EncryptionOptions `json:"EncryptionOptions,omitempty"`
+
+ // EngineType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-enginetype
+ EngineType *types.Value `json:"EngineType,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-engineversion
+ EngineVersion *types.Value `json:"EngineVersion,omitempty"`
+
+ // HostInstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-hostinstancetype
+ HostInstanceType *types.Value `json:"HostInstanceType,omitempty"`
+
+ // LdapServerMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-ldapservermetadata
+ LdapServerMetadata *Broker_LdapServerMetadata `json:"LdapServerMetadata,omitempty"`
+
+ // Logs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-logs
+ Logs *Broker_LogList `json:"Logs,omitempty"`
+
+ // MaintenanceWindowStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-maintenancewindowstarttime
+ MaintenanceWindowStartTime *Broker_MaintenanceWindow `json:"MaintenanceWindowStartTime,omitempty"`
+
+ // PubliclyAccessible AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-publiclyaccessible
+ PubliclyAccessible *types.Value `json:"PubliclyAccessible"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // StorageType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-storagetype
+ StorageType *types.Value `json:"StorageType,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-tags
+ Tags []Broker_TagsEntry `json:"Tags,omitempty"`
+
+ // Users AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html#cfn-amazonmq-broker-users
+ Users []Broker_User `json:"Users,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Broker) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Broker"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Broker) MarshalJSON() ([]byte, error) {
+ type Properties Broker
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Broker) UnmarshalJSON(b []byte) error {
+ type Properties Broker
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Broker(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-broker_configurationid.go b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_configurationid.go
new file mode 100644
index 0000000000..40127b1cd9
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_configurationid.go
@@ -0,0 +1,42 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Broker_ConfigurationId AWS CloudFormation Resource (AWS::AmazonMQ::Broker.ConfigurationId)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-configurationid.html
+type Broker_ConfigurationId struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-configurationid.html#cfn-amazonmq-broker-configurationid-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Revision AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-configurationid.html#cfn-amazonmq-broker-configurationid-revision
+ Revision *types.Value `json:"Revision"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Broker_ConfigurationId) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Broker.ConfigurationId"
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-broker_encryptionoptions.go b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_encryptionoptions.go
new file mode 100644
index 0000000000..e519f5ee0d
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_encryptionoptions.go
@@ -0,0 +1,42 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Broker_EncryptionOptions AWS CloudFormation Resource (AWS::AmazonMQ::Broker.EncryptionOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-encryptionoptions.html
+type Broker_EncryptionOptions struct {
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-encryptionoptions.html#cfn-amazonmq-broker-encryptionoptions-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // UseAwsOwnedKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-encryptionoptions.html#cfn-amazonmq-broker-encryptionoptions-useawsownedkey
+ UseAwsOwnedKey *types.Value `json:"UseAwsOwnedKey"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Broker_EncryptionOptions) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Broker.EncryptionOptions"
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-broker_ldapservermetadata.go b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_ldapservermetadata.go
new file mode 100644
index 0000000000..14aa7a01ad
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_ldapservermetadata.go
@@ -0,0 +1,87 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Broker_LdapServerMetadata AWS CloudFormation Resource (AWS::AmazonMQ::Broker.LdapServerMetadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html
+type Broker_LdapServerMetadata struct {
+
+ // Hosts AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-hosts
+ Hosts *types.Value `json:"Hosts,omitempty"`
+
+ // RoleBase AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-rolebase
+ RoleBase *types.Value `json:"RoleBase,omitempty"`
+
+ // RoleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-rolename
+ RoleName *types.Value `json:"RoleName,omitempty"`
+
+ // RoleSearchMatching AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-rolesearchmatching
+ RoleSearchMatching *types.Value `json:"RoleSearchMatching,omitempty"`
+
+ // RoleSearchSubtree AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-rolesearchsubtree
+ RoleSearchSubtree *types.Value `json:"RoleSearchSubtree,omitempty"`
+
+ // ServiceAccountPassword AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-serviceaccountpassword
+ ServiceAccountPassword *types.Value `json:"ServiceAccountPassword,omitempty"`
+
+ // ServiceAccountUsername AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-serviceaccountusername
+ ServiceAccountUsername *types.Value `json:"ServiceAccountUsername,omitempty"`
+
+ // UserBase AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-userbase
+ UserBase *types.Value `json:"UserBase,omitempty"`
+
+ // UserRoleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-userrolename
+ UserRoleName *types.Value `json:"UserRoleName,omitempty"`
+
+ // UserSearchMatching AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-usersearchmatching
+ UserSearchMatching *types.Value `json:"UserSearchMatching,omitempty"`
+
+ // UserSearchSubtree AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html#cfn-amazonmq-broker-ldapservermetadata-usersearchsubtree
+ UserSearchSubtree *types.Value `json:"UserSearchSubtree,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Broker_LdapServerMetadata) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Broker.LdapServerMetadata"
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-broker_loglist.go b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_loglist.go
new file mode 100644
index 0000000000..4ee46ba8fe
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_loglist.go
@@ -0,0 +1,42 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Broker_LogList AWS CloudFormation Resource (AWS::AmazonMQ::Broker.LogList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-loglist.html
+type Broker_LogList struct {
+
+ // Audit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-loglist.html#cfn-amazonmq-broker-loglist-audit
+ Audit *types.Value `json:"Audit,omitempty"`
+
+ // General AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-loglist.html#cfn-amazonmq-broker-loglist-general
+ General *types.Value `json:"General,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Broker_LogList) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Broker.LogList"
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-broker_maintenancewindow.go b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_maintenancewindow.go
new file mode 100644
index 0000000000..cd23644817
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_maintenancewindow.go
@@ -0,0 +1,47 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Broker_MaintenanceWindow AWS CloudFormation Resource (AWS::AmazonMQ::Broker.MaintenanceWindow)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html
+type Broker_MaintenanceWindow struct {
+
+ // DayOfWeek AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html#cfn-amazonmq-broker-maintenancewindow-dayofweek
+ DayOfWeek *types.Value `json:"DayOfWeek,omitempty"`
+
+ // TimeOfDay AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html#cfn-amazonmq-broker-maintenancewindow-timeofday
+ TimeOfDay *types.Value `json:"TimeOfDay,omitempty"`
+
+ // TimeZone AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html#cfn-amazonmq-broker-maintenancewindow-timezone
+ TimeZone *types.Value `json:"TimeZone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Broker_MaintenanceWindow) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Broker.MaintenanceWindow"
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-broker_tagsentry.go b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_tagsentry.go
new file mode 100644
index 0000000000..2e3030e4a3
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_tagsentry.go
@@ -0,0 +1,42 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Broker_TagsEntry AWS CloudFormation Resource (AWS::AmazonMQ::Broker.TagsEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html
+type Broker_TagsEntry struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html#cfn-amazonmq-broker-tagsentry-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html#cfn-amazonmq-broker-tagsentry-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Broker_TagsEntry) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Broker.TagsEntry"
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-broker_user.go b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_user.go
new file mode 100644
index 0000000000..9298e8a5ff
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-broker_user.go
@@ -0,0 +1,52 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Broker_User AWS CloudFormation Resource (AWS::AmazonMQ::Broker.User)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html
+type Broker_User struct {
+
+ // ConsoleAccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html#cfn-amazonmq-broker-user-consoleaccess
+ ConsoleAccess *types.Value `json:"ConsoleAccess,omitempty"`
+
+ // Groups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html#cfn-amazonmq-broker-user-groups
+ Groups *types.Value `json:"Groups,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html#cfn-amazonmq-broker-user-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html#cfn-amazonmq-broker-user-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Broker_User) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Broker.User"
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-configuration.go b/goformation/cloudformation/amazonmq/aws-amazonmq-configuration.go
new file mode 100644
index 0000000000..08b922bf03
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-configuration.go
@@ -0,0 +1,138 @@
+package amazonmq
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Configuration AWS CloudFormation Resource (AWS::AmazonMQ::Configuration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html
+type Configuration struct {
+
+ // AuthenticationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-authenticationstrategy
+ AuthenticationStrategy *types.Value `json:"AuthenticationStrategy,omitempty"`
+
+ // Data AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-data
+ Data *types.Value `json:"Data,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EngineType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-enginetype
+ EngineType *types.Value `json:"EngineType,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-engineversion
+ EngineVersion *types.Value `json:"EngineVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html#cfn-amazonmq-configuration-tags
+ Tags []Configuration_TagsEntry `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Configuration) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Configuration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Configuration) MarshalJSON() ([]byte, error) {
+ type Properties Configuration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Configuration) UnmarshalJSON(b []byte) error {
+ type Properties Configuration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Configuration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-configuration_tagsentry.go b/goformation/cloudformation/amazonmq/aws-amazonmq-configuration_tagsentry.go
new file mode 100644
index 0000000000..cdf1c7fa72
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-configuration_tagsentry.go
@@ -0,0 +1,42 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Configuration_TagsEntry AWS CloudFormation Resource (AWS::AmazonMQ::Configuration.TagsEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html
+type Configuration_TagsEntry struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html#cfn-amazonmq-configuration-tagsentry-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html#cfn-amazonmq-configuration-tagsentry-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Configuration_TagsEntry) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::Configuration.TagsEntry"
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-configurationassociation.go b/goformation/cloudformation/amazonmq/aws-amazonmq-configurationassociation.go
new file mode 100644
index 0000000000..ec1bf95786
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-configurationassociation.go
@@ -0,0 +1,113 @@
+package amazonmq
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationAssociation AWS CloudFormation Resource (AWS::AmazonMQ::ConfigurationAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html
+type ConfigurationAssociation struct {
+
+ // Broker AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html#cfn-amazonmq-configurationassociation-broker
+ Broker *types.Value `json:"Broker,omitempty"`
+
+ // Configuration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html#cfn-amazonmq-configurationassociation-configuration
+ Configuration *ConfigurationAssociation_ConfigurationId `json:"Configuration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationAssociation) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::ConfigurationAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConfigurationAssociation) MarshalJSON() ([]byte, error) {
+ type Properties ConfigurationAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConfigurationAssociation) UnmarshalJSON(b []byte) error {
+ type Properties ConfigurationAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConfigurationAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/amazonmq/aws-amazonmq-configurationassociation_configurationid.go b/goformation/cloudformation/amazonmq/aws-amazonmq-configurationassociation_configurationid.go
new file mode 100644
index 0000000000..f18ad5cc68
--- /dev/null
+++ b/goformation/cloudformation/amazonmq/aws-amazonmq-configurationassociation_configurationid.go
@@ -0,0 +1,42 @@
+package amazonmq
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationAssociation_ConfigurationId AWS CloudFormation Resource (AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html
+type ConfigurationAssociation_ConfigurationId struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html#cfn-amazonmq-configurationassociation-configurationid-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Revision AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html#cfn-amazonmq-configurationassociation-configurationid-revision
+ Revision *types.Value `json:"Revision"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationAssociation_ConfigurationId) AWSCloudFormationType() string {
+ return "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId"
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-app.go b/goformation/cloudformation/amplify/aws-amplify-app.go
new file mode 100644
index 0000000000..93995b149c
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-app.go
@@ -0,0 +1,174 @@
+package amplify
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// App AWS CloudFormation Resource (AWS::Amplify::App)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html
+type App struct {
+
+ // AccessToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-accesstoken
+ AccessToken *types.Value `json:"AccessToken,omitempty"`
+
+ // AutoBranchCreationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-autobranchcreationconfig
+ AutoBranchCreationConfig *App_AutoBranchCreationConfig `json:"AutoBranchCreationConfig,omitempty"`
+
+ // BasicAuthConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-basicauthconfig
+ BasicAuthConfig *App_BasicAuthConfig `json:"BasicAuthConfig,omitempty"`
+
+ // BuildSpec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-buildspec
+ BuildSpec *types.Value `json:"BuildSpec,omitempty"`
+
+ // CustomHeaders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-customheaders
+ CustomHeaders *types.Value `json:"CustomHeaders,omitempty"`
+
+ // CustomRules AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-customrules
+ CustomRules []App_CustomRule `json:"CustomRules,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EnableBranchAutoDeletion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-enablebranchautodeletion
+ EnableBranchAutoDeletion *types.Value `json:"EnableBranchAutoDeletion,omitempty"`
+
+ // EnvironmentVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-environmentvariables
+ EnvironmentVariables []App_EnvironmentVariable `json:"EnvironmentVariables,omitempty"`
+
+ // IAMServiceRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-iamservicerole
+ IAMServiceRole *types.Value `json:"IAMServiceRole,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OauthToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-oauthtoken
+ OauthToken *types.Value `json:"OauthToken,omitempty"`
+
+ // Repository AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-repository
+ Repository *types.Value `json:"Repository,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html#cfn-amplify-app-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *App) AWSCloudFormationType() string {
+ return "AWS::Amplify::App"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r App) MarshalJSON() ([]byte, error) {
+ type Properties App
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *App) UnmarshalJSON(b []byte) error {
+ type Properties App
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = App(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-app_autobranchcreationconfig.go b/goformation/cloudformation/amplify/aws-amplify-app_autobranchcreationconfig.go
new file mode 100644
index 0000000000..92703e3838
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-app_autobranchcreationconfig.go
@@ -0,0 +1,82 @@
+package amplify
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// App_AutoBranchCreationConfig AWS CloudFormation Resource (AWS::Amplify::App.AutoBranchCreationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html
+type App_AutoBranchCreationConfig struct {
+
+ // AutoBranchCreationPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-autobranchcreationpatterns
+ AutoBranchCreationPatterns *types.Value `json:"AutoBranchCreationPatterns,omitempty"`
+
+ // BasicAuthConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-basicauthconfig
+ BasicAuthConfig *App_BasicAuthConfig `json:"BasicAuthConfig,omitempty"`
+
+ // BuildSpec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-buildspec
+ BuildSpec *types.Value `json:"BuildSpec,omitempty"`
+
+ // EnableAutoBranchCreation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-enableautobranchcreation
+ EnableAutoBranchCreation *types.Value `json:"EnableAutoBranchCreation,omitempty"`
+
+ // EnableAutoBuild AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-enableautobuild
+ EnableAutoBuild *types.Value `json:"EnableAutoBuild,omitempty"`
+
+ // EnablePerformanceMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-enableperformancemode
+ EnablePerformanceMode *types.Value `json:"EnablePerformanceMode,omitempty"`
+
+ // EnablePullRequestPreview AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-enablepullrequestpreview
+ EnablePullRequestPreview *types.Value `json:"EnablePullRequestPreview,omitempty"`
+
+ // EnvironmentVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-environmentvariables
+ EnvironmentVariables []App_EnvironmentVariable `json:"EnvironmentVariables,omitempty"`
+
+ // PullRequestEnvironmentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-pullrequestenvironmentname
+ PullRequestEnvironmentName *types.Value `json:"PullRequestEnvironmentName,omitempty"`
+
+ // Stage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html#cfn-amplify-app-autobranchcreationconfig-stage
+ Stage *types.Value `json:"Stage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *App_AutoBranchCreationConfig) AWSCloudFormationType() string {
+ return "AWS::Amplify::App.AutoBranchCreationConfig"
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-app_basicauthconfig.go b/goformation/cloudformation/amplify/aws-amplify-app_basicauthconfig.go
new file mode 100644
index 0000000000..086108015a
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-app_basicauthconfig.go
@@ -0,0 +1,47 @@
+package amplify
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// App_BasicAuthConfig AWS CloudFormation Resource (AWS::Amplify::App.BasicAuthConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html
+type App_BasicAuthConfig struct {
+
+ // EnableBasicAuth AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html#cfn-amplify-app-basicauthconfig-enablebasicauth
+ EnableBasicAuth *types.Value `json:"EnableBasicAuth,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html#cfn-amplify-app-basicauthconfig-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html#cfn-amplify-app-basicauthconfig-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *App_BasicAuthConfig) AWSCloudFormationType() string {
+ return "AWS::Amplify::App.BasicAuthConfig"
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-app_customrule.go b/goformation/cloudformation/amplify/aws-amplify-app_customrule.go
new file mode 100644
index 0000000000..7fdd36a684
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-app_customrule.go
@@ -0,0 +1,52 @@
+package amplify
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// App_CustomRule AWS CloudFormation Resource (AWS::Amplify::App.CustomRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html
+type App_CustomRule struct {
+
+ // Condition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html#cfn-amplify-app-customrule-condition
+ Condition *types.Value `json:"Condition,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html#cfn-amplify-app-customrule-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html#cfn-amplify-app-customrule-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html#cfn-amplify-app-customrule-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *App_CustomRule) AWSCloudFormationType() string {
+ return "AWS::Amplify::App.CustomRule"
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-app_environmentvariable.go b/goformation/cloudformation/amplify/aws-amplify-app_environmentvariable.go
new file mode 100644
index 0000000000..792c6aabc1
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-app_environmentvariable.go
@@ -0,0 +1,42 @@
+package amplify
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// App_EnvironmentVariable AWS CloudFormation Resource (AWS::Amplify::App.EnvironmentVariable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html
+type App_EnvironmentVariable struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html#cfn-amplify-app-environmentvariable-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html#cfn-amplify-app-environmentvariable-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *App_EnvironmentVariable) AWSCloudFormationType() string {
+ return "AWS::Amplify::App.EnvironmentVariable"
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-branch.go b/goformation/cloudformation/amplify/aws-amplify-branch.go
new file mode 100644
index 0000000000..0800fac93c
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-branch.go
@@ -0,0 +1,164 @@
+package amplify
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Branch AWS CloudFormation Resource (AWS::Amplify::Branch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html
+type Branch struct {
+
+ // AppId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-appid
+ AppId *types.Value `json:"AppId,omitempty"`
+
+ // BasicAuthConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-basicauthconfig
+ BasicAuthConfig *Branch_BasicAuthConfig `json:"BasicAuthConfig,omitempty"`
+
+ // BranchName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-branchname
+ BranchName *types.Value `json:"BranchName,omitempty"`
+
+ // BuildSpec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-buildspec
+ BuildSpec *types.Value `json:"BuildSpec,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EnableAutoBuild AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-enableautobuild
+ EnableAutoBuild *types.Value `json:"EnableAutoBuild,omitempty"`
+
+ // EnablePerformanceMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-enableperformancemode
+ EnablePerformanceMode *types.Value `json:"EnablePerformanceMode,omitempty"`
+
+ // EnablePullRequestPreview AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-enablepullrequestpreview
+ EnablePullRequestPreview *types.Value `json:"EnablePullRequestPreview,omitempty"`
+
+ // EnvironmentVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-environmentvariables
+ EnvironmentVariables []Branch_EnvironmentVariable `json:"EnvironmentVariables,omitempty"`
+
+ // PullRequestEnvironmentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-pullrequestenvironmentname
+ PullRequestEnvironmentName *types.Value `json:"PullRequestEnvironmentName,omitempty"`
+
+ // Stage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-stage
+ Stage *types.Value `json:"Stage,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html#cfn-amplify-branch-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Branch) AWSCloudFormationType() string {
+ return "AWS::Amplify::Branch"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Branch) MarshalJSON() ([]byte, error) {
+ type Properties Branch
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Branch) UnmarshalJSON(b []byte) error {
+ type Properties Branch
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Branch(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-branch_basicauthconfig.go b/goformation/cloudformation/amplify/aws-amplify-branch_basicauthconfig.go
new file mode 100644
index 0000000000..0040e24c54
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-branch_basicauthconfig.go
@@ -0,0 +1,47 @@
+package amplify
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Branch_BasicAuthConfig AWS CloudFormation Resource (AWS::Amplify::Branch.BasicAuthConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-basicauthconfig.html
+type Branch_BasicAuthConfig struct {
+
+ // EnableBasicAuth AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-basicauthconfig.html#cfn-amplify-branch-basicauthconfig-enablebasicauth
+ EnableBasicAuth *types.Value `json:"EnableBasicAuth,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-basicauthconfig.html#cfn-amplify-branch-basicauthconfig-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-basicauthconfig.html#cfn-amplify-branch-basicauthconfig-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Branch_BasicAuthConfig) AWSCloudFormationType() string {
+ return "AWS::Amplify::Branch.BasicAuthConfig"
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-branch_environmentvariable.go b/goformation/cloudformation/amplify/aws-amplify-branch_environmentvariable.go
new file mode 100644
index 0000000000..d4ce20c8b6
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-branch_environmentvariable.go
@@ -0,0 +1,42 @@
+package amplify
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Branch_EnvironmentVariable AWS CloudFormation Resource (AWS::Amplify::Branch.EnvironmentVariable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-environmentvariable.html
+type Branch_EnvironmentVariable struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-environmentvariable.html#cfn-amplify-branch-environmentvariable-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-environmentvariable.html#cfn-amplify-branch-environmentvariable-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Branch_EnvironmentVariable) AWSCloudFormationType() string {
+ return "AWS::Amplify::Branch.EnvironmentVariable"
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-domain.go b/goformation/cloudformation/amplify/aws-amplify-domain.go
new file mode 100644
index 0000000000..53623e74a0
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-domain.go
@@ -0,0 +1,133 @@
+package amplify
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain AWS CloudFormation Resource (AWS::Amplify::Domain)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html
+type Domain struct {
+
+ // AppId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-appid
+ AppId *types.Value `json:"AppId,omitempty"`
+
+ // AutoSubDomainCreationPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-autosubdomaincreationpatterns
+ AutoSubDomainCreationPatterns *types.Value `json:"AutoSubDomainCreationPatterns,omitempty"`
+
+ // AutoSubDomainIAMRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-autosubdomainiamrole
+ AutoSubDomainIAMRole *types.Value `json:"AutoSubDomainIAMRole,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // EnableAutoSubDomain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-enableautosubdomain
+ EnableAutoSubDomain *types.Value `json:"EnableAutoSubDomain,omitempty"`
+
+ // SubDomainSettings AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html#cfn-amplify-domain-subdomainsettings
+ SubDomainSettings []Domain_SubDomainSetting `json:"SubDomainSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain) AWSCloudFormationType() string {
+ return "AWS::Amplify::Domain"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Domain) MarshalJSON() ([]byte, error) {
+ type Properties Domain
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Domain) UnmarshalJSON(b []byte) error {
+ type Properties Domain
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Domain(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/amplify/aws-amplify-domain_subdomainsetting.go b/goformation/cloudformation/amplify/aws-amplify-domain_subdomainsetting.go
new file mode 100644
index 0000000000..272291e093
--- /dev/null
+++ b/goformation/cloudformation/amplify/aws-amplify-domain_subdomainsetting.go
@@ -0,0 +1,42 @@
+package amplify
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_SubDomainSetting AWS CloudFormation Resource (AWS::Amplify::Domain.SubDomainSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-domain-subdomainsetting.html
+type Domain_SubDomainSetting struct {
+
+ // BranchName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-domain-subdomainsetting.html#cfn-amplify-domain-subdomainsetting-branchname
+ BranchName *types.Value `json:"BranchName,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-domain-subdomainsetting.html#cfn-amplify-domain-subdomainsetting-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_SubDomainSetting) AWSCloudFormationType() string {
+ return "AWS::Amplify::Domain.SubDomainSetting"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component.go
new file mode 100644
index 0000000000..7722d23b28
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component.go
@@ -0,0 +1,153 @@
+package amplifyuibuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html
+type Component struct {
+
+ // BindingProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-bindingproperties
+ BindingProperties map[string]Component_ComponentBindingPropertiesValue `json:"BindingProperties,omitempty"`
+
+ // Children AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-children
+ Children []Component_ComponentChild `json:"Children,omitempty"`
+
+ // CollectionProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-collectionproperties
+ CollectionProperties map[string]Component_ComponentDataConfiguration `json:"CollectionProperties,omitempty"`
+
+ // ComponentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-componenttype
+ ComponentType *types.Value `json:"ComponentType,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Overrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-overrides
+ Overrides map[string]Component_ComponentOverridesValue `json:"Overrides,omitempty"`
+
+ // Properties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-properties
+ Properties map[string]Component_ComponentProperty `json:"Properties,omitempty"`
+
+ // SourceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-sourceid
+ SourceId *types.Value `json:"SourceId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // Variants AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-component.html#cfn-amplifyuibuilder-component-variants
+ Variants []Component_ComponentVariant `json:"Variants,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Component) MarshalJSON() ([]byte, error) {
+ type Properties Component
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Component) UnmarshalJSON(b []byte) error {
+ type Properties Component
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Component(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentbindingpropertiesvalue.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentbindingpropertiesvalue.go
new file mode 100644
index 0000000000..647fcefa93
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentbindingpropertiesvalue.go
@@ -0,0 +1,47 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentBindingPropertiesValue AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalue.html
+type Component_ComponentBindingPropertiesValue struct {
+
+ // BindingProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalue.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalue-bindingproperties
+ BindingProperties *Component_ComponentBindingPropertiesValueProperties `json:"BindingProperties,omitempty"`
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalue.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalue-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalue.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalue-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentBindingPropertiesValue) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentbindingpropertiesvalueproperties.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentbindingpropertiesvalueproperties.go
new file mode 100644
index 0000000000..d84ec36bf3
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentbindingpropertiesvalueproperties.go
@@ -0,0 +1,67 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentBindingPropertiesValueProperties AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html
+type Component_ComponentBindingPropertiesValueProperties struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalueproperties-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalueproperties-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // Field AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalueproperties-field
+ Field *types.Value `json:"Field,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalueproperties-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Model AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalueproperties-model
+ Model *types.Value `json:"Model,omitempty"`
+
+ // Predicates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalueproperties-predicates
+ Predicates []Component_Predicate `json:"Predicates,omitempty"`
+
+ // UserAttribute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentbindingpropertiesvalueproperties.html#cfn-amplifyuibuilder-component-componentbindingpropertiesvalueproperties-userattribute
+ UserAttribute *types.Value `json:"UserAttribute,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentBindingPropertiesValueProperties) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentchild.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentchild.go
new file mode 100644
index 0000000000..8ebbf90a74
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentchild.go
@@ -0,0 +1,52 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentChild AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentChild)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentchild.html
+type Component_ComponentChild struct {
+
+ // Children AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentchild.html#cfn-amplifyuibuilder-component-componentchild-children
+ Children []Component_ComponentChild `json:"Children,omitempty"`
+
+ // ComponentType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentchild.html#cfn-amplifyuibuilder-component-componentchild-componenttype
+ ComponentType *types.Value `json:"ComponentType,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentchild.html#cfn-amplifyuibuilder-component-componentchild-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Properties AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentchild.html#cfn-amplifyuibuilder-component-componentchild-properties
+ Properties *Component_ComponentProperties `json:"Properties,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentChild) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentChild"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentconditionproperty.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentconditionproperty.go
new file mode 100644
index 0000000000..b645e4e0bd
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentconditionproperty.go
@@ -0,0 +1,62 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentConditionProperty AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentConditionProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html
+type Component_ComponentConditionProperty struct {
+
+ // Else AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html#cfn-amplifyuibuilder-component-componentconditionproperty-else
+ Else *Component_ComponentProperty `json:"Else,omitempty"`
+
+ // Field AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html#cfn-amplifyuibuilder-component-componentconditionproperty-field
+ Field *types.Value `json:"Field,omitempty"`
+
+ // Operand AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html#cfn-amplifyuibuilder-component-componentconditionproperty-operand
+ Operand *types.Value `json:"Operand,omitempty"`
+
+ // Operator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html#cfn-amplifyuibuilder-component-componentconditionproperty-operator
+ Operator *types.Value `json:"Operator,omitempty"`
+
+ // Property AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html#cfn-amplifyuibuilder-component-componentconditionproperty-property
+ Property *types.Value `json:"Property,omitempty"`
+
+ // Then AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentconditionproperty.html#cfn-amplifyuibuilder-component-componentconditionproperty-then
+ Then *Component_ComponentProperty `json:"Then,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentConditionProperty) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentConditionProperty"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentdataconfiguration.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentdataconfiguration.go
new file mode 100644
index 0000000000..2a5e180e08
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentdataconfiguration.go
@@ -0,0 +1,52 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentDataConfiguration AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentdataconfiguration.html
+type Component_ComponentDataConfiguration struct {
+
+ // Identifiers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentdataconfiguration.html#cfn-amplifyuibuilder-component-componentdataconfiguration-identifiers
+ Identifiers *types.Value `json:"Identifiers,omitempty"`
+
+ // Model AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentdataconfiguration.html#cfn-amplifyuibuilder-component-componentdataconfiguration-model
+ Model *types.Value `json:"Model,omitempty"`
+
+ // Predicate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentdataconfiguration.html#cfn-amplifyuibuilder-component-componentdataconfiguration-predicate
+ Predicate *Component_Predicate `json:"Predicate,omitempty"`
+
+ // Sort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentdataconfiguration.html#cfn-amplifyuibuilder-component-componentdataconfiguration-sort
+ Sort []Component_SortProperty `json:"Sort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentDataConfiguration) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentoverrides.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentoverrides.go
new file mode 100644
index 0000000000..866108f12e
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentoverrides.go
@@ -0,0 +1,30 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentOverrides AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentOverrides)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentoverrides.html
+type Component_ComponentOverrides struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentOverrides) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentOverrides"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentoverridesvalue.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentoverridesvalue.go
new file mode 100644
index 0000000000..badacc291d
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentoverridesvalue.go
@@ -0,0 +1,30 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentOverridesValue AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentOverridesValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentoverridesvalue.html
+type Component_ComponentOverridesValue struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentOverridesValue) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentOverridesValue"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentproperties.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentproperties.go
new file mode 100644
index 0000000000..91496464ea
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentproperties.go
@@ -0,0 +1,30 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentProperties AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperties.html
+type Component_ComponentProperties struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentProperties) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentProperties"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentproperty.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentproperty.go
new file mode 100644
index 0000000000..64ad584a5e
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentproperty.go
@@ -0,0 +1,97 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentProperty AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html
+type Component_ComponentProperty struct {
+
+ // BindingProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-bindingproperties
+ BindingProperties *Component_ComponentPropertyBindingProperties `json:"BindingProperties,omitempty"`
+
+ // Bindings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-bindings
+ Bindings *Component_FormBindings `json:"Bindings,omitempty"`
+
+ // CollectionBindingProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-collectionbindingproperties
+ CollectionBindingProperties *Component_ComponentPropertyBindingProperties `json:"CollectionBindingProperties,omitempty"`
+
+ // Concat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-concat
+ Concat []Component_ComponentProperty `json:"Concat,omitempty"`
+
+ // Condition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-condition
+ Condition *Component_ComponentConditionProperty `json:"Condition,omitempty"`
+
+ // Configured AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-configured
+ Configured *types.Value `json:"Configured,omitempty"`
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // Event AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-event
+ Event *types.Value `json:"Event,omitempty"`
+
+ // ImportedValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-importedvalue
+ ImportedValue *types.Value `json:"ImportedValue,omitempty"`
+
+ // Model AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-model
+ Model *types.Value `json:"Model,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // UserAttribute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-userattribute
+ UserAttribute *types.Value `json:"UserAttribute,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentproperty.html#cfn-amplifyuibuilder-component-componentproperty-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentProperty) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentProperty"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentpropertybindingproperties.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentpropertybindingproperties.go
new file mode 100644
index 0000000000..57a43600ee
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentpropertybindingproperties.go
@@ -0,0 +1,42 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentPropertyBindingProperties AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html
+type Component_ComponentPropertyBindingProperties struct {
+
+ // Field AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html#cfn-amplifyuibuilder-component-componentpropertybindingproperties-field
+ Field *types.Value `json:"Field,omitempty"`
+
+ // Property AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentpropertybindingproperties.html#cfn-amplifyuibuilder-component-componentpropertybindingproperties-property
+ Property *types.Value `json:"Property,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentPropertyBindingProperties) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentvariant.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentvariant.go
new file mode 100644
index 0000000000..f168e57cca
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentvariant.go
@@ -0,0 +1,40 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentVariant AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentVariant)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariant.html
+type Component_ComponentVariant struct {
+
+ // Overrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariant.html#cfn-amplifyuibuilder-component-componentvariant-overrides
+ Overrides *Component_ComponentOverrides `json:"Overrides,omitempty"`
+
+ // VariantValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariant.html#cfn-amplifyuibuilder-component-componentvariant-variantvalues
+ VariantValues *Component_ComponentVariantValues `json:"VariantValues,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentVariant) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentVariant"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentvariantvalues.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentvariantvalues.go
new file mode 100644
index 0000000000..9a3b91415a
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_componentvariantvalues.go
@@ -0,0 +1,30 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_ComponentVariantValues AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.ComponentVariantValues)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-componentvariantvalues.html
+type Component_ComponentVariantValues struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_ComponentVariantValues) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.ComponentVariantValues"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_formbindings.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_formbindings.go
new file mode 100644
index 0000000000..b3e251ab75
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_formbindings.go
@@ -0,0 +1,30 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_FormBindings AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.FormBindings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-formbindings.html
+type Component_FormBindings struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_FormBindings) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.FormBindings"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_predicate.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_predicate.go
new file mode 100644
index 0000000000..9884a48454
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_predicate.go
@@ -0,0 +1,57 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_Predicate AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.Predicate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html
+type Component_Predicate struct {
+
+ // And AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html#cfn-amplifyuibuilder-component-predicate-and
+ And []Component_Predicate `json:"And,omitempty"`
+
+ // Field AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html#cfn-amplifyuibuilder-component-predicate-field
+ Field *types.Value `json:"Field,omitempty"`
+
+ // Operand AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html#cfn-amplifyuibuilder-component-predicate-operand
+ Operand *types.Value `json:"Operand,omitempty"`
+
+ // Operator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html#cfn-amplifyuibuilder-component-predicate-operator
+ Operator *types.Value `json:"Operator,omitempty"`
+
+ // Or AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-predicate.html#cfn-amplifyuibuilder-component-predicate-or
+ Or []Component_Predicate `json:"Or,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_Predicate) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.Predicate"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_sortproperty.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_sortproperty.go
new file mode 100644
index 0000000000..ac5a50e141
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-component_sortproperty.go
@@ -0,0 +1,42 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component_SortProperty AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Component.SortProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-sortproperty.html
+type Component_SortProperty struct {
+
+ // Direction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-sortproperty.html#cfn-amplifyuibuilder-component-sortproperty-direction
+ Direction *types.Value `json:"Direction,omitempty"`
+
+ // Field AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-component-sortproperty.html#cfn-amplifyuibuilder-component-sortproperty-field
+ Field *types.Value `json:"Field,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component_SortProperty) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Component.SortProperty"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme.go
new file mode 100644
index 0000000000..75f7d22fd3
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme.go
@@ -0,0 +1,123 @@
+package amplifyuibuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Theme AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Theme)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html
+type Theme struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html#cfn-amplifyuibuilder-theme-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Overrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html#cfn-amplifyuibuilder-theme-overrides
+ Overrides []Theme_ThemeValues `json:"Overrides,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html#cfn-amplifyuibuilder-theme-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplifyuibuilder-theme.html#cfn-amplifyuibuilder-theme-values
+ Values []Theme_ThemeValues `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Theme) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Theme"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Theme) MarshalJSON() ([]byte, error) {
+ type Properties Theme
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Theme) UnmarshalJSON(b []byte) error {
+ type Properties Theme
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Theme(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme_themevalue.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme_themevalue.go
new file mode 100644
index 0000000000..20da187ec7
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme_themevalue.go
@@ -0,0 +1,42 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Theme_ThemeValue AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Theme.ThemeValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalue.html
+type Theme_ThemeValue struct {
+
+ // Children AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalue.html#cfn-amplifyuibuilder-theme-themevalue-children
+ Children []Theme_ThemeValues `json:"Children,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalue.html#cfn-amplifyuibuilder-theme-themevalue-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Theme_ThemeValue) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Theme.ThemeValue"
+}
diff --git a/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme_themevalues.go b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme_themevalues.go
new file mode 100644
index 0000000000..5aa1d918fb
--- /dev/null
+++ b/goformation/cloudformation/amplifyuibuilder/aws-amplifyuibuilder-theme_themevalues.go
@@ -0,0 +1,42 @@
+package amplifyuibuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Theme_ThemeValues AWS CloudFormation Resource (AWS::AmplifyUIBuilder::Theme.ThemeValues)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html
+type Theme_ThemeValues struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html#cfn-amplifyuibuilder-theme-themevalues-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplifyuibuilder-theme-themevalues.html#cfn-amplifyuibuilder-theme-themevalues-value
+ Value *Theme_ThemeValue `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Theme_ThemeValues) AWSCloudFormationType() string {
+ return "AWS::AmplifyUIBuilder::Theme.ThemeValues"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-account.go b/goformation/cloudformation/apigateway/aws-apigateway-account.go
new file mode 100644
index 0000000000..ad85978be1
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-account.go
@@ -0,0 +1,108 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Account AWS CloudFormation Resource (AWS::ApiGateway::Account)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html
+type Account struct {
+
+ // CloudWatchRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html#cfn-apigateway-account-cloudwatchrolearn
+ CloudWatchRoleArn *types.Value `json:"CloudWatchRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Account) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Account"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Account) MarshalJSON() ([]byte, error) {
+ type Properties Account
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Account) UnmarshalJSON(b []byte) error {
+ type Properties Account
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Account(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-apikey.go b/goformation/cloudformation/apigateway/aws-apigateway-apikey.go
new file mode 100644
index 0000000000..129129c6ce
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-apikey.go
@@ -0,0 +1,144 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiKey AWS CloudFormation Resource (AWS::ApiGateway::ApiKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html
+type ApiKey struct {
+
+ // CustomerId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-customerid
+ CustomerId *types.Value `json:"CustomerId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // GenerateDistinctId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-generatedistinctid
+ GenerateDistinctId *types.Value `json:"GenerateDistinctId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // StageKeys AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-stagekeys
+ StageKeys []ApiKey_StageKey `json:"StageKeys,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiKey) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::ApiKey"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApiKey) MarshalJSON() ([]byte, error) {
+ type Properties ApiKey
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApiKey) UnmarshalJSON(b []byte) error {
+ type Properties ApiKey
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApiKey(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-apikey_stagekey.go b/goformation/cloudformation/apigateway/aws-apigateway-apikey_stagekey.go
new file mode 100644
index 0000000000..de9da65559
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-apikey_stagekey.go
@@ -0,0 +1,42 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiKey_StageKey AWS CloudFormation Resource (AWS::ApiGateway::ApiKey.StageKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html
+type ApiKey_StageKey struct {
+
+ // RestApiId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html#cfn-apigateway-apikey-stagekey-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // StageName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html#cfn-apigateway-apikey-stagekey-stagename
+ StageName *types.Value `json:"StageName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiKey_StageKey) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::ApiKey.StageKey"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-authorizer.go b/goformation/cloudformation/apigateway/aws-apigateway-authorizer.go
new file mode 100644
index 0000000000..8902ffd1b3
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-authorizer.go
@@ -0,0 +1,153 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Authorizer AWS CloudFormation Resource (AWS::ApiGateway::Authorizer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html
+type Authorizer struct {
+
+ // AuthType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authtype
+ AuthType *types.Value `json:"AuthType,omitempty"`
+
+ // AuthorizerCredentials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizercredentials
+ AuthorizerCredentials *types.Value `json:"AuthorizerCredentials,omitempty"`
+
+ // AuthorizerResultTtlInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizerresultttlinseconds
+ AuthorizerResultTtlInSeconds *types.Value `json:"AuthorizerResultTtlInSeconds,omitempty"`
+
+ // AuthorizerUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizeruri
+ AuthorizerUri *types.Value `json:"AuthorizerUri,omitempty"`
+
+ // IdentitySource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource
+ IdentitySource *types.Value `json:"IdentitySource,omitempty"`
+
+ // IdentityValidationExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identityvalidationexpression
+ IdentityValidationExpression *types.Value `json:"IdentityValidationExpression,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ProviderARNs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-providerarns
+ ProviderARNs *types.Value `json:"ProviderARNs,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Authorizer) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Authorizer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Authorizer) MarshalJSON() ([]byte, error) {
+ type Properties Authorizer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Authorizer) UnmarshalJSON(b []byte) error {
+ type Properties Authorizer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Authorizer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-basepathmapping.go b/goformation/cloudformation/apigateway/aws-apigateway-basepathmapping.go
new file mode 100644
index 0000000000..62676ae67e
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-basepathmapping.go
@@ -0,0 +1,123 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BasePathMapping AWS CloudFormation Resource (AWS::ApiGateway::BasePathMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html
+type BasePathMapping struct {
+
+ // BasePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath
+ BasePath *types.Value `json:"BasePath,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // Stage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-stage
+ Stage *types.Value `json:"Stage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BasePathMapping) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::BasePathMapping"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r BasePathMapping) MarshalJSON() ([]byte, error) {
+ type Properties BasePathMapping
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *BasePathMapping) UnmarshalJSON(b []byte) error {
+ type Properties BasePathMapping
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = BasePathMapping(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-clientcertificate.go b/goformation/cloudformation/apigateway/aws-apigateway-clientcertificate.go
new file mode 100644
index 0000000000..32c1ef4816
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-clientcertificate.go
@@ -0,0 +1,114 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientCertificate AWS CloudFormation Resource (AWS::ApiGateway::ClientCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html
+type ClientCertificate struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html#cfn-apigateway-clientcertificate-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html#cfn-apigateway-clientcertificate-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientCertificate) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::ClientCertificate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ClientCertificate) MarshalJSON() ([]byte, error) {
+ type Properties ClientCertificate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ClientCertificate) UnmarshalJSON(b []byte) error {
+ type Properties ClientCertificate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ClientCertificate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-deployment.go b/goformation/cloudformation/apigateway/aws-apigateway-deployment.go
new file mode 100644
index 0000000000..4a1a724497
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-deployment.go
@@ -0,0 +1,128 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment AWS CloudFormation Resource (AWS::ApiGateway::Deployment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html
+type Deployment struct {
+
+ // DeploymentCanarySettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-deploymentcanarysettings
+ DeploymentCanarySettings *Deployment_DeploymentCanarySettings `json:"DeploymentCanarySettings,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // StageDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-stagedescription
+ StageDescription *Deployment_StageDescription `json:"StageDescription,omitempty"`
+
+ // StageName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-stagename
+ StageName *types.Value `json:"StageName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Deployment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Deployment) MarshalJSON() ([]byte, error) {
+ type Properties Deployment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Deployment) UnmarshalJSON(b []byte) error {
+ type Properties Deployment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Deployment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-deployment_accesslogsetting.go b/goformation/cloudformation/apigateway/aws-apigateway-deployment_accesslogsetting.go
new file mode 100644
index 0000000000..4b7d675ef2
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-deployment_accesslogsetting.go
@@ -0,0 +1,42 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment_AccessLogSetting AWS CloudFormation Resource (AWS::ApiGateway::Deployment.AccessLogSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html
+type Deployment_AccessLogSetting struct {
+
+ // DestinationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html#cfn-apigateway-deployment-accesslogsetting-destinationarn
+ DestinationArn *types.Value `json:"DestinationArn,omitempty"`
+
+ // Format AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html#cfn-apigateway-deployment-accesslogsetting-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment_AccessLogSetting) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Deployment.AccessLogSetting"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-deployment_canarysetting.go b/goformation/cloudformation/apigateway/aws-apigateway-deployment_canarysetting.go
new file mode 100644
index 0000000000..1e43dec668
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-deployment_canarysetting.go
@@ -0,0 +1,47 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment_CanarySetting AWS CloudFormation Resource (AWS::ApiGateway::Deployment.CanarySetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html
+type Deployment_CanarySetting struct {
+
+ // PercentTraffic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-percenttraffic
+ PercentTraffic *types.Value `json:"PercentTraffic,omitempty"`
+
+ // StageVariableOverrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-stagevariableoverrides
+ StageVariableOverrides map[string]*types.Value `json:"StageVariableOverrides,omitempty"`
+
+ // UseStageCache AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-usestagecache
+ UseStageCache *types.Value `json:"UseStageCache,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment_CanarySetting) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Deployment.CanarySetting"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-deployment_deploymentcanarysettings.go b/goformation/cloudformation/apigateway/aws-apigateway-deployment_deploymentcanarysettings.go
new file mode 100644
index 0000000000..223ddf09bc
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-deployment_deploymentcanarysettings.go
@@ -0,0 +1,47 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment_DeploymentCanarySettings AWS CloudFormation Resource (AWS::ApiGateway::Deployment.DeploymentCanarySettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html
+type Deployment_DeploymentCanarySettings struct {
+
+ // PercentTraffic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html#cfn-apigateway-deployment-deploymentcanarysettings-percenttraffic
+ PercentTraffic *types.Value `json:"PercentTraffic,omitempty"`
+
+ // StageVariableOverrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html#cfn-apigateway-deployment-deploymentcanarysettings-stagevariableoverrides
+ StageVariableOverrides map[string]*types.Value `json:"StageVariableOverrides,omitempty"`
+
+ // UseStageCache AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html#cfn-apigateway-deployment-deploymentcanarysettings-usestagecache
+ UseStageCache *types.Value `json:"UseStageCache,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment_DeploymentCanarySettings) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Deployment.DeploymentCanarySettings"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-deployment_methodsetting.go b/goformation/cloudformation/apigateway/aws-apigateway-deployment_methodsetting.go
new file mode 100644
index 0000000000..8bce486845
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-deployment_methodsetting.go
@@ -0,0 +1,82 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment_MethodSetting AWS CloudFormation Resource (AWS::ApiGateway::Deployment.MethodSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html
+type Deployment_MethodSetting struct {
+
+ // CacheDataEncrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-cachedataencrypted
+ CacheDataEncrypted *types.Value `json:"CacheDataEncrypted,omitempty"`
+
+ // CacheTtlInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-cachettlinseconds
+ CacheTtlInSeconds *types.Value `json:"CacheTtlInSeconds,omitempty"`
+
+ // CachingEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-cachingenabled
+ CachingEnabled *types.Value `json:"CachingEnabled,omitempty"`
+
+ // DataTraceEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-datatraceenabled
+ DataTraceEnabled *types.Value `json:"DataTraceEnabled,omitempty"`
+
+ // HttpMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-httpmethod
+ HttpMethod *types.Value `json:"HttpMethod,omitempty"`
+
+ // LoggingLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-logginglevel
+ LoggingLevel *types.Value `json:"LoggingLevel,omitempty"`
+
+ // MetricsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-metricsenabled
+ MetricsEnabled *types.Value `json:"MetricsEnabled,omitempty"`
+
+ // ResourcePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-resourcepath
+ ResourcePath *types.Value `json:"ResourcePath,omitempty"`
+
+ // ThrottlingBurstLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-throttlingburstlimit
+ ThrottlingBurstLimit *types.Value `json:"ThrottlingBurstLimit,omitempty"`
+
+ // ThrottlingRateLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription-methodsetting.html#cfn-apigateway-deployment-stagedescription-methodsetting-throttlingratelimit
+ ThrottlingRateLimit *types.Value `json:"ThrottlingRateLimit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment_MethodSetting) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Deployment.MethodSetting"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-deployment_stagedescription.go b/goformation/cloudformation/apigateway/aws-apigateway-deployment_stagedescription.go
new file mode 100644
index 0000000000..70ad885288
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-deployment_stagedescription.go
@@ -0,0 +1,128 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment_StageDescription AWS CloudFormation Resource (AWS::ApiGateway::Deployment.StageDescription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html
+type Deployment_StageDescription struct {
+
+ // AccessLogSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-accesslogsetting
+ AccessLogSetting *Deployment_AccessLogSetting `json:"AccessLogSetting,omitempty"`
+
+ // CacheClusterEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cacheclusterenabled
+ CacheClusterEnabled *types.Value `json:"CacheClusterEnabled,omitempty"`
+
+ // CacheClusterSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cacheclustersize
+ CacheClusterSize *types.Value `json:"CacheClusterSize,omitempty"`
+
+ // CacheDataEncrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachedataencrypted
+ CacheDataEncrypted *types.Value `json:"CacheDataEncrypted,omitempty"`
+
+ // CacheTtlInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachettlinseconds
+ CacheTtlInSeconds *types.Value `json:"CacheTtlInSeconds,omitempty"`
+
+ // CachingEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachingenabled
+ CachingEnabled *types.Value `json:"CachingEnabled,omitempty"`
+
+ // CanarySetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-canarysetting
+ CanarySetting *Deployment_CanarySetting `json:"CanarySetting,omitempty"`
+
+ // ClientCertificateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-clientcertificateid
+ ClientCertificateId *types.Value `json:"ClientCertificateId,omitempty"`
+
+ // DataTraceEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-datatraceenabled
+ DataTraceEnabled *types.Value `json:"DataTraceEnabled,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DocumentationVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-documentationversion
+ DocumentationVersion *types.Value `json:"DocumentationVersion,omitempty"`
+
+ // LoggingLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-logginglevel
+ LoggingLevel *types.Value `json:"LoggingLevel,omitempty"`
+
+ // MethodSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-methodsettings
+ MethodSettings []Deployment_MethodSetting `json:"MethodSettings,omitempty"`
+
+ // MetricsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-metricsenabled
+ MetricsEnabled *types.Value `json:"MetricsEnabled,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // ThrottlingBurstLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-throttlingburstlimit
+ ThrottlingBurstLimit *types.Value `json:"ThrottlingBurstLimit,omitempty"`
+
+ // ThrottlingRateLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-throttlingratelimit
+ ThrottlingRateLimit *types.Value `json:"ThrottlingRateLimit,omitempty"`
+
+ // TracingEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-tracingenabled
+ TracingEnabled *types.Value `json:"TracingEnabled,omitempty"`
+
+ // Variables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-variables
+ Variables map[string]*types.Value `json:"Variables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment_StageDescription) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Deployment.StageDescription"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-documentationpart.go b/goformation/cloudformation/apigateway/aws-apigateway-documentationpart.go
new file mode 100644
index 0000000000..54abb761c3
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-documentationpart.go
@@ -0,0 +1,118 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DocumentationPart AWS CloudFormation Resource (AWS::ApiGateway::DocumentationPart)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html
+type DocumentationPart struct {
+
+ // Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-location
+ Location *DocumentationPart_Location `json:"Location,omitempty"`
+
+ // Properties AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-properties
+ Properties *types.Value `json:"Properties,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DocumentationPart) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::DocumentationPart"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DocumentationPart) MarshalJSON() ([]byte, error) {
+ type Properties DocumentationPart
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DocumentationPart) UnmarshalJSON(b []byte) error {
+ type Properties DocumentationPart
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DocumentationPart(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-documentationpart_location.go b/goformation/cloudformation/apigateway/aws-apigateway-documentationpart_location.go
new file mode 100644
index 0000000000..612a77494e
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-documentationpart_location.go
@@ -0,0 +1,57 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DocumentationPart_Location AWS CloudFormation Resource (AWS::ApiGateway::DocumentationPart.Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html
+type DocumentationPart_Location struct {
+
+ // Method AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-method
+ Method *types.Value `json:"Method,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // StatusCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-statuscode
+ StatusCode *types.Value `json:"StatusCode,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DocumentationPart_Location) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::DocumentationPart.Location"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-documentationversion.go b/goformation/cloudformation/apigateway/aws-apigateway-documentationversion.go
new file mode 100644
index 0000000000..8258757c3e
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-documentationversion.go
@@ -0,0 +1,118 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DocumentationVersion AWS CloudFormation Resource (AWS::ApiGateway::DocumentationVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html
+type DocumentationVersion struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DocumentationVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-documentationversion
+ DocumentationVersion *types.Value `json:"DocumentationVersion,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DocumentationVersion) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::DocumentationVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DocumentationVersion) MarshalJSON() ([]byte, error) {
+ type Properties DocumentationVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DocumentationVersion) UnmarshalJSON(b []byte) error {
+ type Properties DocumentationVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DocumentationVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-domainname.go b/goformation/cloudformation/apigateway/aws-apigateway-domainname.go
new file mode 100644
index 0000000000..f8de230efe
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-domainname.go
@@ -0,0 +1,144 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainName AWS CloudFormation Resource (AWS::ApiGateway::DomainName)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html
+type DomainName struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // EndpointConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-endpointconfiguration
+ EndpointConfiguration *DomainName_EndpointConfiguration `json:"EndpointConfiguration,omitempty"`
+
+ // MutualTlsAuthentication AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication
+ MutualTlsAuthentication *DomainName_MutualTlsAuthentication `json:"MutualTlsAuthentication,omitempty"`
+
+ // OwnershipVerificationCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn
+ OwnershipVerificationCertificateArn *types.Value `json:"OwnershipVerificationCertificateArn,omitempty"`
+
+ // RegionalCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn
+ RegionalCertificateArn *types.Value `json:"RegionalCertificateArn,omitempty"`
+
+ // SecurityPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy
+ SecurityPolicy *types.Value `json:"SecurityPolicy,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainName) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::DomainName"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DomainName) MarshalJSON() ([]byte, error) {
+ type Properties DomainName
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DomainName) UnmarshalJSON(b []byte) error {
+ type Properties DomainName
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DomainName(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-domainname_endpointconfiguration.go b/goformation/cloudformation/apigateway/aws-apigateway-domainname_endpointconfiguration.go
new file mode 100644
index 0000000000..0ebf9816c9
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-domainname_endpointconfiguration.go
@@ -0,0 +1,37 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainName_EndpointConfiguration AWS CloudFormation Resource (AWS::ApiGateway::DomainName.EndpointConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html
+type DomainName_EndpointConfiguration struct {
+
+ // Types AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html#cfn-apigateway-domainname-endpointconfiguration-types
+ Types *types.Value `json:"Types,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainName_EndpointConfiguration) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::DomainName.EndpointConfiguration"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-domainname_mutualtlsauthentication.go b/goformation/cloudformation/apigateway/aws-apigateway-domainname_mutualtlsauthentication.go
new file mode 100644
index 0000000000..bfa0febcc7
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-domainname_mutualtlsauthentication.go
@@ -0,0 +1,42 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainName_MutualTlsAuthentication AWS CloudFormation Resource (AWS::ApiGateway::DomainName.MutualTlsAuthentication)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html
+type DomainName_MutualTlsAuthentication struct {
+
+ // TruststoreUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreuri
+ TruststoreUri *types.Value `json:"TruststoreUri,omitempty"`
+
+ // TruststoreVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreversion
+ TruststoreVersion *types.Value `json:"TruststoreVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainName_MutualTlsAuthentication) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::DomainName.MutualTlsAuthentication"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-gatewayresponse.go b/goformation/cloudformation/apigateway/aws-apigateway-gatewayresponse.go
new file mode 100644
index 0000000000..9485cd1c9b
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-gatewayresponse.go
@@ -0,0 +1,128 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayResponse AWS CloudFormation Resource (AWS::ApiGateway::GatewayResponse)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html
+type GatewayResponse struct {
+
+ // ResponseParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responseparameters
+ ResponseParameters map[string]*types.Value `json:"ResponseParameters,omitempty"`
+
+ // ResponseTemplates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responsetemplates
+ ResponseTemplates map[string]*types.Value `json:"ResponseTemplates,omitempty"`
+
+ // ResponseType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responsetype
+ ResponseType *types.Value `json:"ResponseType,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // StatusCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-statuscode
+ StatusCode *types.Value `json:"StatusCode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayResponse) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::GatewayResponse"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GatewayResponse) MarshalJSON() ([]byte, error) {
+ type Properties GatewayResponse
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GatewayResponse) UnmarshalJSON(b []byte) error {
+ type Properties GatewayResponse
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GatewayResponse(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-method.go b/goformation/cloudformation/apigateway/aws-apigateway-method.go
new file mode 100644
index 0000000000..f42fe1a5d5
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-method.go
@@ -0,0 +1,168 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Method AWS CloudFormation Resource (AWS::ApiGateway::Method)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html
+type Method struct {
+
+ // ApiKeyRequired AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-apikeyrequired
+ ApiKeyRequired *types.Value `json:"ApiKeyRequired,omitempty"`
+
+ // AuthorizationScopes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes
+ AuthorizationScopes *types.Value `json:"AuthorizationScopes,omitempty"`
+
+ // AuthorizationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationtype
+ AuthorizationType *types.Value `json:"AuthorizationType,omitempty"`
+
+ // AuthorizerId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizerid
+ AuthorizerId *types.Value `json:"AuthorizerId,omitempty"`
+
+ // HttpMethod AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-httpmethod
+ HttpMethod *types.Value `json:"HttpMethod,omitempty"`
+
+ // Integration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-integration
+ Integration *Method_Integration `json:"Integration,omitempty"`
+
+ // MethodResponses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-methodresponses
+ MethodResponses []Method_MethodResponse `json:"MethodResponses,omitempty"`
+
+ // OperationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-operationname
+ OperationName *types.Value `json:"OperationName,omitempty"`
+
+ // RequestModels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestmodels
+ RequestModels map[string]*types.Value `json:"RequestModels,omitempty"`
+
+ // RequestParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestparameters
+ RequestParameters map[string]*types.Value `json:"RequestParameters,omitempty"`
+
+ // RequestValidatorId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestvalidatorid
+ RequestValidatorId *types.Value `json:"RequestValidatorId,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Method) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Method"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Method) MarshalJSON() ([]byte, error) {
+ type Properties Method
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Method) UnmarshalJSON(b []byte) error {
+ type Properties Method
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Method(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-method_integration.go b/goformation/cloudformation/apigateway/aws-apigateway-method_integration.go
new file mode 100644
index 0000000000..f9e29bb4e3
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-method_integration.go
@@ -0,0 +1,102 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Method_Integration AWS CloudFormation Resource (AWS::ApiGateway::Method.Integration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html
+type Method_Integration struct {
+
+ // CacheKeyParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-cachekeyparameters
+ CacheKeyParameters *types.Value `json:"CacheKeyParameters,omitempty"`
+
+ // CacheNamespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-cachenamespace
+ CacheNamespace *types.Value `json:"CacheNamespace,omitempty"`
+
+ // ConnectionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-connectionid
+ ConnectionId *types.Value `json:"ConnectionId,omitempty"`
+
+ // ConnectionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-connectiontype
+ ConnectionType *types.Value `json:"ConnectionType,omitempty"`
+
+ // ContentHandling AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-contenthandling
+ ContentHandling *types.Value `json:"ContentHandling,omitempty"`
+
+ // Credentials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-credentials
+ Credentials *types.Value `json:"Credentials,omitempty"`
+
+ // IntegrationHttpMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-integrationhttpmethod
+ IntegrationHttpMethod *types.Value `json:"IntegrationHttpMethod,omitempty"`
+
+ // IntegrationResponses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-integrationresponses
+ IntegrationResponses []Method_IntegrationResponse `json:"IntegrationResponses,omitempty"`
+
+ // PassthroughBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-passthroughbehavior
+ PassthroughBehavior *types.Value `json:"PassthroughBehavior,omitempty"`
+
+ // RequestParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-requestparameters
+ RequestParameters map[string]*types.Value `json:"RequestParameters,omitempty"`
+
+ // RequestTemplates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-requesttemplates
+ RequestTemplates map[string]*types.Value `json:"RequestTemplates,omitempty"`
+
+ // TimeoutInMillis AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-timeoutinmillis
+ TimeoutInMillis *types.Value `json:"TimeoutInMillis,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Uri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html#cfn-apigateway-method-integration-uri
+ Uri *types.Value `json:"Uri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Method_Integration) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Method.Integration"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-method_integrationresponse.go b/goformation/cloudformation/apigateway/aws-apigateway-method_integrationresponse.go
new file mode 100644
index 0000000000..9153a66a6f
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-method_integrationresponse.go
@@ -0,0 +1,57 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Method_IntegrationResponse AWS CloudFormation Resource (AWS::ApiGateway::Method.IntegrationResponse)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html
+type Method_IntegrationResponse struct {
+
+ // ContentHandling AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integrationresponse-contenthandling
+ ContentHandling *types.Value `json:"ContentHandling,omitempty"`
+
+ // ResponseParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integration-integrationresponse-responseparameters
+ ResponseParameters map[string]*types.Value `json:"ResponseParameters,omitempty"`
+
+ // ResponseTemplates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integration-integrationresponse-responsetemplates
+ ResponseTemplates map[string]*types.Value `json:"ResponseTemplates,omitempty"`
+
+ // SelectionPattern AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integration-integrationresponse-selectionpattern
+ SelectionPattern *types.Value `json:"SelectionPattern,omitempty"`
+
+ // StatusCode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html#cfn-apigateway-method-integration-integrationresponse-statuscode
+ StatusCode *types.Value `json:"StatusCode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Method_IntegrationResponse) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Method.IntegrationResponse"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-method_methodresponse.go b/goformation/cloudformation/apigateway/aws-apigateway-method_methodresponse.go
new file mode 100644
index 0000000000..d3f723aba6
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-method_methodresponse.go
@@ -0,0 +1,47 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Method_MethodResponse AWS CloudFormation Resource (AWS::ApiGateway::Method.MethodResponse)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html
+type Method_MethodResponse struct {
+
+ // ResponseModels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-responsemodels
+ ResponseModels map[string]*types.Value `json:"ResponseModels,omitempty"`
+
+ // ResponseParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-responseparameters
+ ResponseParameters map[string]*types.Value `json:"ResponseParameters,omitempty"`
+
+ // StatusCode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-statuscode
+ StatusCode *types.Value `json:"StatusCode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Method_MethodResponse) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Method.MethodResponse"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-model.go b/goformation/cloudformation/apigateway/aws-apigateway-model.go
new file mode 100644
index 0000000000..705f69fbeb
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-model.go
@@ -0,0 +1,128 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Model AWS CloudFormation Resource (AWS::ApiGateway::Model)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html
+type Model struct {
+
+ // ContentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-contenttype
+ ContentType *types.Value `json:"ContentType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // Schema AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-schema
+ Schema interface{} `json:"Schema,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Model) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Model"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Model) MarshalJSON() ([]byte, error) {
+ type Properties Model
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Model) UnmarshalJSON(b []byte) error {
+ type Properties Model
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Model(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-requestvalidator.go b/goformation/cloudformation/apigateway/aws-apigateway-requestvalidator.go
new file mode 100644
index 0000000000..e76f478d72
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-requestvalidator.go
@@ -0,0 +1,123 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RequestValidator AWS CloudFormation Resource (AWS::ApiGateway::RequestValidator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html
+type RequestValidator struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // ValidateRequestBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-validaterequestbody
+ ValidateRequestBody *types.Value `json:"ValidateRequestBody,omitempty"`
+
+ // ValidateRequestParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-validaterequestparameters
+ ValidateRequestParameters *types.Value `json:"ValidateRequestParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RequestValidator) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::RequestValidator"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RequestValidator) MarshalJSON() ([]byte, error) {
+ type Properties RequestValidator
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RequestValidator) UnmarshalJSON(b []byte) error {
+ type Properties RequestValidator
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RequestValidator(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-resource.go b/goformation/cloudformation/apigateway/aws-apigateway-resource.go
new file mode 100644
index 0000000000..840edb83da
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-resource.go
@@ -0,0 +1,118 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Resource AWS CloudFormation Resource (AWS::ApiGateway::Resource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html
+type Resource struct {
+
+ // ParentId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-parentid
+ ParentId *types.Value `json:"ParentId,omitempty"`
+
+ // PathPart AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-pathpart
+ PathPart *types.Value `json:"PathPart,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Resource) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Resource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Resource) MarshalJSON() ([]byte, error) {
+ type Properties Resource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Resource) UnmarshalJSON(b []byte) error {
+ type Properties Resource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Resource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-restapi.go b/goformation/cloudformation/apigateway/aws-apigateway-restapi.go
new file mode 100644
index 0000000000..a8577c0f69
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-restapi.go
@@ -0,0 +1,179 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// RestApi AWS CloudFormation Resource (AWS::ApiGateway::RestApi)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html
+type RestApi struct {
+
+ // ApiKeySourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype
+ ApiKeySourceType *types.Value `json:"ApiKeySourceType,omitempty"`
+
+ // BinaryMediaTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes
+ BinaryMediaTypes *types.Value `json:"BinaryMediaTypes,omitempty"`
+
+ // Body AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body
+ Body interface{} `json:"Body,omitempty"`
+
+ // BodyS3Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location
+ BodyS3Location *RestApi_S3Location `json:"BodyS3Location,omitempty"`
+
+ // CloneFrom AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-clonefrom
+ CloneFrom *types.Value `json:"CloneFrom,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisableExecuteApiEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint
+ DisableExecuteApiEndpoint *types.Value `json:"DisableExecuteApiEndpoint,omitempty"`
+
+ // EndpointConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration
+ EndpointConfiguration *RestApi_EndpointConfiguration `json:"EndpointConfiguration,omitempty"`
+
+ // FailOnWarnings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings
+ FailOnWarnings *types.Value `json:"FailOnWarnings,omitempty"`
+
+ // MinimumCompressionSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize
+ MinimumCompressionSize *types.Value `json:"MinimumCompressionSize,omitempty"`
+
+ // Mode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-parameters
+ Parameters map[string]*types.Value `json:"Parameters,omitempty"`
+
+ // Policy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-policy
+ Policy interface{} `json:"Policy,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RestApi) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::RestApi"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RestApi) MarshalJSON() ([]byte, error) {
+ type Properties RestApi
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RestApi) UnmarshalJSON(b []byte) error {
+ type Properties RestApi
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RestApi(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-restapi_endpointconfiguration.go b/goformation/cloudformation/apigateway/aws-apigateway-restapi_endpointconfiguration.go
new file mode 100644
index 0000000000..d81550535e
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-restapi_endpointconfiguration.go
@@ -0,0 +1,42 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RestApi_EndpointConfiguration AWS CloudFormation Resource (AWS::ApiGateway::RestApi.EndpointConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html
+type RestApi_EndpointConfiguration struct {
+
+ // Types AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types
+ Types *types.Value `json:"Types,omitempty"`
+
+ // VpcEndpointIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids
+ VpcEndpointIds *types.Value `json:"VpcEndpointIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RestApi_EndpointConfiguration) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::RestApi.EndpointConfiguration"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-restapi_s3location.go b/goformation/cloudformation/apigateway/aws-apigateway-restapi_s3location.go
new file mode 100644
index 0000000000..3fe4e7c83a
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-restapi_s3location.go
@@ -0,0 +1,52 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RestApi_S3Location AWS CloudFormation Resource (AWS::ApiGateway::RestApi.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html
+type RestApi_S3Location struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // ETag AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-etag
+ ETag *types.Value `json:"ETag,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RestApi_S3Location) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::RestApi.S3Location"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-stage.go b/goformation/cloudformation/apigateway/aws-apigateway-stage.go
new file mode 100644
index 0000000000..42a8989a2a
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-stage.go
@@ -0,0 +1,174 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stage AWS CloudFormation Resource (AWS::ApiGateway::Stage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html
+type Stage struct {
+
+ // AccessLogSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting
+ AccessLogSetting *Stage_AccessLogSetting `json:"AccessLogSetting,omitempty"`
+
+ // CacheClusterEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled
+ CacheClusterEnabled *types.Value `json:"CacheClusterEnabled,omitempty"`
+
+ // CacheClusterSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize
+ CacheClusterSize *types.Value `json:"CacheClusterSize,omitempty"`
+
+ // CanarySetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting
+ CanarySetting *Stage_CanarySetting `json:"CanarySetting,omitempty"`
+
+ // ClientCertificateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-clientcertificateid
+ ClientCertificateId *types.Value `json:"ClientCertificateId,omitempty"`
+
+ // DeploymentId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-deploymentid
+ DeploymentId *types.Value `json:"DeploymentId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DocumentationVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-documentationversion
+ DocumentationVersion *types.Value `json:"DocumentationVersion,omitempty"`
+
+ // MethodSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings
+ MethodSettings []Stage_MethodSetting `json:"MethodSettings,omitempty"`
+
+ // RestApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-restapiid
+ RestApiId *types.Value `json:"RestApiId,omitempty"`
+
+ // StageName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename
+ StageName *types.Value `json:"StageName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TracingEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled
+ TracingEnabled *types.Value `json:"TracingEnabled,omitempty"`
+
+ // Variables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables
+ Variables map[string]*types.Value `json:"Variables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stage) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Stage"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Stage) MarshalJSON() ([]byte, error) {
+ type Properties Stage
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Stage) UnmarshalJSON(b []byte) error {
+ type Properties Stage
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Stage(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-stage_accesslogsetting.go b/goformation/cloudformation/apigateway/aws-apigateway-stage_accesslogsetting.go
new file mode 100644
index 0000000000..f9f1e4b1b4
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-stage_accesslogsetting.go
@@ -0,0 +1,42 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stage_AccessLogSetting AWS CloudFormation Resource (AWS::ApiGateway::Stage.AccessLogSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html
+type Stage_AccessLogSetting struct {
+
+ // DestinationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-destinationarn
+ DestinationArn *types.Value `json:"DestinationArn,omitempty"`
+
+ // Format AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stage_AccessLogSetting) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Stage.AccessLogSetting"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-stage_canarysetting.go b/goformation/cloudformation/apigateway/aws-apigateway-stage_canarysetting.go
new file mode 100644
index 0000000000..e6cf14eff5
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-stage_canarysetting.go
@@ -0,0 +1,52 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stage_CanarySetting AWS CloudFormation Resource (AWS::ApiGateway::Stage.CanarySetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html
+type Stage_CanarySetting struct {
+
+ // DeploymentId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-deploymentid
+ DeploymentId *types.Value `json:"DeploymentId,omitempty"`
+
+ // PercentTraffic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-percenttraffic
+ PercentTraffic *types.Value `json:"PercentTraffic,omitempty"`
+
+ // StageVariableOverrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-stagevariableoverrides
+ StageVariableOverrides map[string]*types.Value `json:"StageVariableOverrides,omitempty"`
+
+ // UseStageCache AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-usestagecache
+ UseStageCache *types.Value `json:"UseStageCache,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stage_CanarySetting) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Stage.CanarySetting"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-stage_methodsetting.go b/goformation/cloudformation/apigateway/aws-apigateway-stage_methodsetting.go
new file mode 100644
index 0000000000..bfc93b6800
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-stage_methodsetting.go
@@ -0,0 +1,82 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stage_MethodSetting AWS CloudFormation Resource (AWS::ApiGateway::Stage.MethodSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html
+type Stage_MethodSetting struct {
+
+ // CacheDataEncrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachedataencrypted
+ CacheDataEncrypted *types.Value `json:"CacheDataEncrypted,omitempty"`
+
+ // CacheTtlInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachettlinseconds
+ CacheTtlInSeconds *types.Value `json:"CacheTtlInSeconds,omitempty"`
+
+ // CachingEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachingenabled
+ CachingEnabled *types.Value `json:"CachingEnabled,omitempty"`
+
+ // DataTraceEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-datatraceenabled
+ DataTraceEnabled *types.Value `json:"DataTraceEnabled,omitempty"`
+
+ // HttpMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-httpmethod
+ HttpMethod *types.Value `json:"HttpMethod,omitempty"`
+
+ // LoggingLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-logginglevel
+ LoggingLevel *types.Value `json:"LoggingLevel,omitempty"`
+
+ // MetricsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-metricsenabled
+ MetricsEnabled *types.Value `json:"MetricsEnabled,omitempty"`
+
+ // ResourcePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-resourcepath
+ ResourcePath *types.Value `json:"ResourcePath,omitempty"`
+
+ // ThrottlingBurstLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingburstlimit
+ ThrottlingBurstLimit *types.Value `json:"ThrottlingBurstLimit,omitempty"`
+
+ // ThrottlingRateLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingratelimit
+ ThrottlingRateLimit *types.Value `json:"ThrottlingRateLimit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stage_MethodSetting) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::Stage.MethodSetting"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-usageplan.go b/goformation/cloudformation/apigateway/aws-apigateway-usageplan.go
new file mode 100644
index 0000000000..837eb79e42
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-usageplan.go
@@ -0,0 +1,134 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// UsagePlan AWS CloudFormation Resource (AWS::ApiGateway::UsagePlan)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html
+type UsagePlan struct {
+
+ // ApiStages AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-apistages
+ ApiStages []UsagePlan_ApiStage `json:"ApiStages,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Quota AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota
+ Quota *UsagePlan_QuotaSettings `json:"Quota,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Throttle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle
+ Throttle *UsagePlan_ThrottleSettings `json:"Throttle,omitempty"`
+
+ // UsagePlanName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname
+ UsagePlanName *types.Value `json:"UsagePlanName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UsagePlan) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::UsagePlan"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UsagePlan) MarshalJSON() ([]byte, error) {
+ type Properties UsagePlan
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UsagePlan) UnmarshalJSON(b []byte) error {
+ type Properties UsagePlan
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UsagePlan(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-usageplan_apistage.go b/goformation/cloudformation/apigateway/aws-apigateway-usageplan_apistage.go
new file mode 100644
index 0000000000..abcfd65f61
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-usageplan_apistage.go
@@ -0,0 +1,47 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UsagePlan_ApiStage AWS CloudFormation Resource (AWS::ApiGateway::UsagePlan.ApiStage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html
+type UsagePlan_ApiStage struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html#cfn-apigateway-usageplan-apistage-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // Stage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html#cfn-apigateway-usageplan-apistage-stage
+ Stage *types.Value `json:"Stage,omitempty"`
+
+ // Throttle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html#cfn-apigateway-usageplan-apistage-throttle
+ Throttle map[string]UsagePlan_ThrottleSettings `json:"Throttle,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UsagePlan_ApiStage) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::UsagePlan.ApiStage"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-usageplan_quotasettings.go b/goformation/cloudformation/apigateway/aws-apigateway-usageplan_quotasettings.go
new file mode 100644
index 0000000000..fd327d0e42
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-usageplan_quotasettings.go
@@ -0,0 +1,47 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UsagePlan_QuotaSettings AWS CloudFormation Resource (AWS::ApiGateway::UsagePlan.QuotaSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html
+type UsagePlan_QuotaSettings struct {
+
+ // Limit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-limit
+ Limit *types.Value `json:"Limit,omitempty"`
+
+ // Offset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-offset
+ Offset *types.Value `json:"Offset,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-period
+ Period *types.Value `json:"Period,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UsagePlan_QuotaSettings) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::UsagePlan.QuotaSettings"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-usageplan_throttlesettings.go b/goformation/cloudformation/apigateway/aws-apigateway-usageplan_throttlesettings.go
new file mode 100644
index 0000000000..d01037be52
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-usageplan_throttlesettings.go
@@ -0,0 +1,42 @@
+package apigateway
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UsagePlan_ThrottleSettings AWS CloudFormation Resource (AWS::ApiGateway::UsagePlan.ThrottleSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html
+type UsagePlan_ThrottleSettings struct {
+
+ // BurstLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html#cfn-apigateway-usageplan-throttlesettings-burstlimit
+ BurstLimit *types.Value `json:"BurstLimit,omitempty"`
+
+ // RateLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html#cfn-apigateway-usageplan-throttlesettings-ratelimit
+ RateLimit *types.Value `json:"RateLimit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UsagePlan_ThrottleSettings) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::UsagePlan.ThrottleSettings"
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-usageplankey.go b/goformation/cloudformation/apigateway/aws-apigateway-usageplankey.go
new file mode 100644
index 0000000000..bb82d4bc9d
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-usageplankey.go
@@ -0,0 +1,118 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UsagePlanKey AWS CloudFormation Resource (AWS::ApiGateway::UsagePlanKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html
+type UsagePlanKey struct {
+
+ // KeyId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-keyid
+ KeyId *types.Value `json:"KeyId,omitempty"`
+
+ // KeyType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-keytype
+ KeyType *types.Value `json:"KeyType,omitempty"`
+
+ // UsagePlanId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-usageplanid
+ UsagePlanId *types.Value `json:"UsagePlanId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UsagePlanKey) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::UsagePlanKey"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UsagePlanKey) MarshalJSON() ([]byte, error) {
+ type Properties UsagePlanKey
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UsagePlanKey) UnmarshalJSON(b []byte) error {
+ type Properties UsagePlanKey
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UsagePlanKey(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigateway/aws-apigateway-vpclink.go b/goformation/cloudformation/apigateway/aws-apigateway-vpclink.go
new file mode 100644
index 0000000000..263fb492d5
--- /dev/null
+++ b/goformation/cloudformation/apigateway/aws-apigateway-vpclink.go
@@ -0,0 +1,124 @@
+package apigateway
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VpcLink AWS CloudFormation Resource (AWS::ApiGateway::VpcLink)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html
+type VpcLink struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TargetArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-targetarns
+ TargetArns *types.Value `json:"TargetArns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VpcLink) AWSCloudFormationType() string {
+ return "AWS::ApiGateway::VpcLink"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VpcLink) MarshalJSON() ([]byte, error) {
+ type Properties VpcLink
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VpcLink) UnmarshalJSON(b []byte) error {
+ type Properties VpcLink
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VpcLink(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api.go
new file mode 100644
index 0000000000..896a22f521
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api.go
@@ -0,0 +1,188 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Api AWS CloudFormation Resource (AWS::ApiGatewayV2::Api)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html
+type Api struct {
+
+ // ApiKeySelectionExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-apikeyselectionexpression
+ ApiKeySelectionExpression *types.Value `json:"ApiKeySelectionExpression,omitempty"`
+
+ // BasePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-basepath
+ BasePath *types.Value `json:"BasePath,omitempty"`
+
+ // Body AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body
+ Body interface{} `json:"Body,omitempty"`
+
+ // BodyS3Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location
+ BodyS3Location *Api_BodyS3Location `json:"BodyS3Location,omitempty"`
+
+ // CorsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-corsconfiguration
+ CorsConfiguration *Api_Cors `json:"CorsConfiguration,omitempty"`
+
+ // CredentialsArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-credentialsarn
+ CredentialsArn *types.Value `json:"CredentialsArn,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisableExecuteApiEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint
+ DisableExecuteApiEndpoint *types.Value `json:"DisableExecuteApiEndpoint,omitempty"`
+
+ // DisableSchemaValidation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation
+ DisableSchemaValidation *types.Value `json:"DisableSchemaValidation,omitempty"`
+
+ // FailOnWarnings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings
+ FailOnWarnings *types.Value `json:"FailOnWarnings,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ProtocolType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-protocoltype
+ ProtocolType *types.Value `json:"ProtocolType,omitempty"`
+
+ // RouteKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routekey
+ RouteKey *types.Value `json:"RouteKey,omitempty"`
+
+ // RouteSelectionExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routeselectionexpression
+ RouteSelectionExpression *types.Value `json:"RouteSelectionExpression,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Api) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Api"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Api) MarshalJSON() ([]byte, error) {
+ type Properties Api
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Api) UnmarshalJSON(b []byte) error {
+ type Properties Api
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Api(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api_bodys3location.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api_bodys3location.go
new file mode 100644
index 0000000000..46406a3d06
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api_bodys3location.go
@@ -0,0 +1,52 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Api_BodyS3Location AWS CloudFormation Resource (AWS::ApiGatewayV2::Api.BodyS3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html
+type Api_BodyS3Location struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Etag AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-etag
+ Etag *types.Value `json:"Etag,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Api_BodyS3Location) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Api.BodyS3Location"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api_cors.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api_cors.go
new file mode 100644
index 0000000000..cfb0b66984
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-api_cors.go
@@ -0,0 +1,62 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Api_Cors AWS CloudFormation Resource (AWS::ApiGatewayV2::Api.Cors)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html
+type Api_Cors struct {
+
+ // AllowCredentials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-allowcredentials
+ AllowCredentials *types.Value `json:"AllowCredentials,omitempty"`
+
+ // AllowHeaders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-allowheaders
+ AllowHeaders *types.Value `json:"AllowHeaders,omitempty"`
+
+ // AllowMethods AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-allowmethods
+ AllowMethods *types.Value `json:"AllowMethods,omitempty"`
+
+ // AllowOrigins AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-alloworigins
+ AllowOrigins *types.Value `json:"AllowOrigins,omitempty"`
+
+ // ExposeHeaders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-exposeheaders
+ ExposeHeaders *types.Value `json:"ExposeHeaders,omitempty"`
+
+ // MaxAge AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-cors.html#cfn-apigatewayv2-api-cors-maxage
+ MaxAge *types.Value `json:"MaxAge,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Api_Cors) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Api.Cors"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides.go
new file mode 100644
index 0000000000..a72b990b6d
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides.go
@@ -0,0 +1,123 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiGatewayManagedOverrides AWS CloudFormation Resource (AWS::ApiGatewayV2::ApiGatewayManagedOverrides)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html
+type ApiGatewayManagedOverrides struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // Integration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integration
+ Integration *ApiGatewayManagedOverrides_IntegrationOverrides `json:"Integration,omitempty"`
+
+ // Route AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-route
+ Route *ApiGatewayManagedOverrides_RouteOverrides `json:"Route,omitempty"`
+
+ // Stage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apigatewaymanagedoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stage
+ Stage *ApiGatewayManagedOverrides_StageOverrides `json:"Stage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiGatewayManagedOverrides) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::ApiGatewayManagedOverrides"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApiGatewayManagedOverrides) MarshalJSON() ([]byte, error) {
+ type Properties ApiGatewayManagedOverrides
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApiGatewayManagedOverrides) UnmarshalJSON(b []byte) error {
+ type Properties ApiGatewayManagedOverrides
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApiGatewayManagedOverrides(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_accesslogsettings.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_accesslogsettings.go
new file mode 100644
index 0000000000..f3197aa3c6
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_accesslogsettings.go
@@ -0,0 +1,42 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiGatewayManagedOverrides_AccessLogSettings AWS CloudFormation Resource (AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html
+type ApiGatewayManagedOverrides_AccessLogSettings struct {
+
+ // DestinationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-destinationarn
+ DestinationArn *types.Value `json:"DestinationArn,omitempty"`
+
+ // Format AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-accesslogsettings-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiGatewayManagedOverrides_AccessLogSettings) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_integrationoverrides.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_integrationoverrides.go
new file mode 100644
index 0000000000..38adbdb9c2
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_integrationoverrides.go
@@ -0,0 +1,52 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiGatewayManagedOverrides_IntegrationOverrides AWS CloudFormation Resource (AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html
+type ApiGatewayManagedOverrides_IntegrationOverrides struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IntegrationMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-integrationmethod
+ IntegrationMethod *types.Value `json:"IntegrationMethod,omitempty"`
+
+ // PayloadFormatVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-payloadformatversion
+ PayloadFormatVersion *types.Value `json:"PayloadFormatVersion,omitempty"`
+
+ // TimeoutInMillis AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-integrationoverrides-timeoutinmillis
+ TimeoutInMillis *types.Value `json:"TimeoutInMillis,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiGatewayManagedOverrides_IntegrationOverrides) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_routeoverrides.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_routeoverrides.go
new file mode 100644
index 0000000000..b2826b569e
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_routeoverrides.go
@@ -0,0 +1,57 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiGatewayManagedOverrides_RouteOverrides AWS CloudFormation Resource (AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html
+type ApiGatewayManagedOverrides_RouteOverrides struct {
+
+ // AuthorizationScopes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationscopes
+ AuthorizationScopes *types.Value `json:"AuthorizationScopes,omitempty"`
+
+ // AuthorizationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizationtype
+ AuthorizationType *types.Value `json:"AuthorizationType,omitempty"`
+
+ // AuthorizerId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-authorizerid
+ AuthorizerId *types.Value `json:"AuthorizerId,omitempty"`
+
+ // OperationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-operationname
+ OperationName *types.Value `json:"OperationName,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routeoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routeoverrides-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiGatewayManagedOverrides_RouteOverrides) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_routesettings.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_routesettings.go
new file mode 100644
index 0000000000..537a3e3c65
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_routesettings.go
@@ -0,0 +1,57 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiGatewayManagedOverrides_RouteSettings AWS CloudFormation Resource (AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html
+type ApiGatewayManagedOverrides_RouteSettings struct {
+
+ // DataTraceEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-datatraceenabled
+ DataTraceEnabled *types.Value `json:"DataTraceEnabled,omitempty"`
+
+ // DetailedMetricsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-detailedmetricsenabled
+ DetailedMetricsEnabled *types.Value `json:"DetailedMetricsEnabled,omitempty"`
+
+ // LoggingLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-logginglevel
+ LoggingLevel *types.Value `json:"LoggingLevel,omitempty"`
+
+ // ThrottlingBurstLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingburstlimit
+ ThrottlingBurstLimit *types.Value `json:"ThrottlingBurstLimit,omitempty"`
+
+ // ThrottlingRateLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-routesettings.html#cfn-apigatewayv2-apigatewaymanagedoverrides-routesettings-throttlingratelimit
+ ThrottlingRateLimit *types.Value `json:"ThrottlingRateLimit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiGatewayManagedOverrides_RouteSettings) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_stageoverrides.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_stageoverrides.go
new file mode 100644
index 0000000000..44eac13283
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apigatewaymanagedoverrides_stageoverrides.go
@@ -0,0 +1,62 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiGatewayManagedOverrides_StageOverrides AWS CloudFormation Resource (AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html
+type ApiGatewayManagedOverrides_StageOverrides struct {
+
+ // AccessLogSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-accesslogsettings
+ AccessLogSettings *ApiGatewayManagedOverrides_AccessLogSettings `json:"AccessLogSettings,omitempty"`
+
+ // AutoDeploy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-autodeploy
+ AutoDeploy *types.Value `json:"AutoDeploy,omitempty"`
+
+ // DefaultRouteSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-defaultroutesettings
+ DefaultRouteSettings *ApiGatewayManagedOverrides_RouteSettings `json:"DefaultRouteSettings,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // RouteSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-routesettings
+ RouteSettings interface{} `json:"RouteSettings,omitempty"`
+
+ // StageVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-apigatewaymanagedoverrides-stageoverrides.html#cfn-apigatewayv2-apigatewaymanagedoverrides-stageoverrides-stagevariables
+ StageVariables interface{} `json:"StageVariables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiGatewayManagedOverrides_StageOverrides) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apimapping.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apimapping.go
new file mode 100644
index 0000000000..139d140b72
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-apimapping.go
@@ -0,0 +1,123 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiMapping AWS CloudFormation Resource (AWS::ApiGatewayV2::ApiMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html
+type ApiMapping struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // ApiMappingKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey
+ ApiMappingKey *types.Value `json:"ApiMappingKey,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // Stage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-stage
+ Stage *types.Value `json:"Stage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiMapping) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::ApiMapping"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApiMapping) MarshalJSON() ([]byte, error) {
+ type Properties ApiMapping
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApiMapping) UnmarshalJSON(b []byte) error {
+ type Properties ApiMapping
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApiMapping(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-authorizer.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-authorizer.go
new file mode 100644
index 0000000000..662d89cd1e
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-authorizer.go
@@ -0,0 +1,158 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Authorizer AWS CloudFormation Resource (AWS::ApiGatewayV2::Authorizer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html
+type Authorizer struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // AuthorizerCredentialsArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizercredentialsarn
+ AuthorizerCredentialsArn *types.Value `json:"AuthorizerCredentialsArn,omitempty"`
+
+ // AuthorizerPayloadFormatVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizerpayloadformatversion
+ AuthorizerPayloadFormatVersion *types.Value `json:"AuthorizerPayloadFormatVersion,omitempty"`
+
+ // AuthorizerResultTtlInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizerresultttlinseconds
+ AuthorizerResultTtlInSeconds *types.Value `json:"AuthorizerResultTtlInSeconds,omitempty"`
+
+ // AuthorizerType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizertype
+ AuthorizerType *types.Value `json:"AuthorizerType,omitempty"`
+
+ // AuthorizerUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizeruri
+ AuthorizerUri *types.Value `json:"AuthorizerUri,omitempty"`
+
+ // EnableSimpleResponses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-enablesimpleresponses
+ EnableSimpleResponses *types.Value `json:"EnableSimpleResponses,omitempty"`
+
+ // IdentitySource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identitysource
+ IdentitySource *types.Value `json:"IdentitySource,omitempty"`
+
+ // IdentityValidationExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identityvalidationexpression
+ IdentityValidationExpression *types.Value `json:"IdentityValidationExpression,omitempty"`
+
+ // JwtConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-jwtconfiguration
+ JwtConfiguration *Authorizer_JWTConfiguration `json:"JwtConfiguration,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Authorizer) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Authorizer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Authorizer) MarshalJSON() ([]byte, error) {
+ type Properties Authorizer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Authorizer) UnmarshalJSON(b []byte) error {
+ type Properties Authorizer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Authorizer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-authorizer_jwtconfiguration.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-authorizer_jwtconfiguration.go
new file mode 100644
index 0000000000..24da4e5e0a
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-authorizer_jwtconfiguration.go
@@ -0,0 +1,42 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Authorizer_JWTConfiguration AWS CloudFormation Resource (AWS::ApiGatewayV2::Authorizer.JWTConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html
+type Authorizer_JWTConfiguration struct {
+
+ // Audience AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html#cfn-apigatewayv2-authorizer-jwtconfiguration-audience
+ Audience *types.Value `json:"Audience,omitempty"`
+
+ // Issuer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html#cfn-apigatewayv2-authorizer-jwtconfiguration-issuer
+ Issuer *types.Value `json:"Issuer,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Authorizer_JWTConfiguration) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Authorizer.JWTConfiguration"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-deployment.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-deployment.go
new file mode 100644
index 0000000000..011097c0cb
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-deployment.go
@@ -0,0 +1,118 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment AWS CloudFormation Resource (AWS::ApiGatewayV2::Deployment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html
+type Deployment struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // StageName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-deployment.html#cfn-apigatewayv2-deployment-stagename
+ StageName *types.Value `json:"StageName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Deployment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Deployment) MarshalJSON() ([]byte, error) {
+ type Properties Deployment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Deployment) UnmarshalJSON(b []byte) error {
+ type Properties Deployment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Deployment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname.go
new file mode 100644
index 0000000000..59fe256a67
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname.go
@@ -0,0 +1,123 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainName AWS CloudFormation Resource (AWS::ApiGatewayV2::DomainName)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html
+type DomainName struct {
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // DomainNameConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainnameconfigurations
+ DomainNameConfigurations []DomainName_DomainNameConfiguration `json:"DomainNameConfigurations,omitempty"`
+
+ // MutualTlsAuthentication AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication
+ MutualTlsAuthentication *DomainName_MutualTlsAuthentication `json:"MutualTlsAuthentication,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainName) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::DomainName"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DomainName) MarshalJSON() ([]byte, error) {
+ type Properties DomainName
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DomainName) UnmarshalJSON(b []byte) error {
+ type Properties DomainName
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DomainName(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_domainnameconfiguration.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_domainnameconfiguration.go
new file mode 100644
index 0000000000..4f2aaeffff
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_domainnameconfiguration.go
@@ -0,0 +1,57 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainName_DomainNameConfiguration AWS CloudFormation Resource (AWS::ApiGatewayV2::DomainName.DomainNameConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html
+type DomainName_DomainNameConfiguration struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // CertificateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatename
+ CertificateName *types.Value `json:"CertificateName,omitempty"`
+
+ // EndpointType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-endpointtype
+ EndpointType *types.Value `json:"EndpointType,omitempty"`
+
+ // OwnershipVerificationCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn
+ OwnershipVerificationCertificateArn *types.Value `json:"OwnershipVerificationCertificateArn,omitempty"`
+
+ // SecurityPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy
+ SecurityPolicy *types.Value `json:"SecurityPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainName_DomainNameConfiguration) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::DomainName.DomainNameConfiguration"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_mutualtlsauthentication.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_mutualtlsauthentication.go
new file mode 100644
index 0000000000..8d895a9854
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-domainname_mutualtlsauthentication.go
@@ -0,0 +1,42 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainName_MutualTlsAuthentication AWS CloudFormation Resource (AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html
+type DomainName_MutualTlsAuthentication struct {
+
+ // TruststoreUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html#cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreuri
+ TruststoreUri *types.Value `json:"TruststoreUri,omitempty"`
+
+ // TruststoreVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-mutualtlsauthentication.html#cfn-apigatewayv2-domainname-mutualtlsauthentication-truststoreversion
+ TruststoreVersion *types.Value `json:"TruststoreVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainName_MutualTlsAuthentication) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration.go
new file mode 100644
index 0000000000..2aa8603ab4
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration.go
@@ -0,0 +1,193 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration AWS CloudFormation Resource (AWS::ApiGatewayV2::Integration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html
+type Integration struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // ConnectionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-connectionid
+ ConnectionId *types.Value `json:"ConnectionId,omitempty"`
+
+ // ConnectionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-connectiontype
+ ConnectionType *types.Value `json:"ConnectionType,omitempty"`
+
+ // ContentHandlingStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-contenthandlingstrategy
+ ContentHandlingStrategy *types.Value `json:"ContentHandlingStrategy,omitempty"`
+
+ // CredentialsArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-credentialsarn
+ CredentialsArn *types.Value `json:"CredentialsArn,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IntegrationMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationmethod
+ IntegrationMethod *types.Value `json:"IntegrationMethod,omitempty"`
+
+ // IntegrationSubtype AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationsubtype
+ IntegrationSubtype *types.Value `json:"IntegrationSubtype,omitempty"`
+
+ // IntegrationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationtype
+ IntegrationType *types.Value `json:"IntegrationType,omitempty"`
+
+ // IntegrationUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-integrationuri
+ IntegrationUri *types.Value `json:"IntegrationUri,omitempty"`
+
+ // PassthroughBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-passthroughbehavior
+ PassthroughBehavior *types.Value `json:"PassthroughBehavior,omitempty"`
+
+ // PayloadFormatVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-payloadformatversion
+ PayloadFormatVersion *types.Value `json:"PayloadFormatVersion,omitempty"`
+
+ // RequestParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-requestparameters
+ RequestParameters interface{} `json:"RequestParameters,omitempty"`
+
+ // RequestTemplates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-requesttemplates
+ RequestTemplates interface{} `json:"RequestTemplates,omitempty"`
+
+ // ResponseParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-responseparameters
+ ResponseParameters interface{} `json:"ResponseParameters,omitempty"`
+
+ // TemplateSelectionExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-templateselectionexpression
+ TemplateSelectionExpression *types.Value `json:"TemplateSelectionExpression,omitempty"`
+
+ // TimeoutInMillis AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-timeoutinmillis
+ TimeoutInMillis *types.Value `json:"TimeoutInMillis,omitempty"`
+
+ // TlsConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-tlsconfig
+ TlsConfig *Integration_TlsConfig `json:"TlsConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Integration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Integration) MarshalJSON() ([]byte, error) {
+ type Properties Integration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Integration) UnmarshalJSON(b []byte) error {
+ type Properties Integration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Integration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_responseparameter.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_responseparameter.go
new file mode 100644
index 0000000000..a82abe4dae
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_responseparameter.go
@@ -0,0 +1,42 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_ResponseParameter AWS CloudFormation Resource (AWS::ApiGatewayV2::Integration.ResponseParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameter.html
+type Integration_ResponseParameter struct {
+
+ // Destination AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameter.html#cfn-apigatewayv2-integration-responseparameter-destination
+ Destination *types.Value `json:"Destination,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameter.html#cfn-apigatewayv2-integration-responseparameter-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_ResponseParameter) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Integration.ResponseParameter"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_responseparameterlist.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_responseparameterlist.go
new file mode 100644
index 0000000000..cdbe818ceb
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_responseparameterlist.go
@@ -0,0 +1,35 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_ResponseParameterList AWS CloudFormation Resource (AWS::ApiGatewayV2::Integration.ResponseParameterList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html
+type Integration_ResponseParameterList struct {
+
+ // ResponseParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-responseparameterlist.html#cfn-apigatewayv2-integration-responseparameterlist-responseparameters
+ ResponseParameters []Integration_ResponseParameter `json:"ResponseParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_ResponseParameterList) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Integration.ResponseParameterList"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_tlsconfig.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_tlsconfig.go
new file mode 100644
index 0000000000..7f9d638c27
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integration_tlsconfig.go
@@ -0,0 +1,37 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_TlsConfig AWS CloudFormation Resource (AWS::ApiGatewayV2::Integration.TlsConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-tlsconfig.html
+type Integration_TlsConfig struct {
+
+ // ServerNameToVerify AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-integration-tlsconfig.html#cfn-apigatewayv2-integration-tlsconfig-servernametoverify
+ ServerNameToVerify *types.Value `json:"ServerNameToVerify,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_TlsConfig) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Integration.TlsConfig"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integrationresponse.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integrationresponse.go
new file mode 100644
index 0000000000..e88bab5ba0
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-integrationresponse.go
@@ -0,0 +1,138 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IntegrationResponse AWS CloudFormation Resource (AWS::ApiGatewayV2::IntegrationResponse)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html
+type IntegrationResponse struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // ContentHandlingStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-contenthandlingstrategy
+ ContentHandlingStrategy *types.Value `json:"ContentHandlingStrategy,omitempty"`
+
+ // IntegrationId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-integrationid
+ IntegrationId *types.Value `json:"IntegrationId,omitempty"`
+
+ // IntegrationResponseKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-integrationresponsekey
+ IntegrationResponseKey *types.Value `json:"IntegrationResponseKey,omitempty"`
+
+ // ResponseParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-responseparameters
+ ResponseParameters interface{} `json:"ResponseParameters,omitempty"`
+
+ // ResponseTemplates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-responsetemplates
+ ResponseTemplates interface{} `json:"ResponseTemplates,omitempty"`
+
+ // TemplateSelectionExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integrationresponse.html#cfn-apigatewayv2-integrationresponse-templateselectionexpression
+ TemplateSelectionExpression *types.Value `json:"TemplateSelectionExpression,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IntegrationResponse) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::IntegrationResponse"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IntegrationResponse) MarshalJSON() ([]byte, error) {
+ type Properties IntegrationResponse
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IntegrationResponse) UnmarshalJSON(b []byte) error {
+ type Properties IntegrationResponse
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IntegrationResponse(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-model.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-model.go
new file mode 100644
index 0000000000..96ebe8939d
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-model.go
@@ -0,0 +1,128 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Model AWS CloudFormation Resource (AWS::ApiGatewayV2::Model)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html
+type Model struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // ContentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-contenttype
+ ContentType *types.Value `json:"ContentType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Schema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-model.html#cfn-apigatewayv2-model-schema
+ Schema interface{} `json:"Schema,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Model) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Model"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Model) MarshalJSON() ([]byte, error) {
+ type Properties Model
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Model) UnmarshalJSON(b []byte) error {
+ type Properties Model
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Model(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-route.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-route.go
new file mode 100644
index 0000000000..e649acb45f
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-route.go
@@ -0,0 +1,163 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route AWS CloudFormation Resource (AWS::ApiGatewayV2::Route)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html
+type Route struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // ApiKeyRequired AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apikeyrequired
+ ApiKeyRequired *types.Value `json:"ApiKeyRequired,omitempty"`
+
+ // AuthorizationScopes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationscopes
+ AuthorizationScopes *types.Value `json:"AuthorizationScopes,omitempty"`
+
+ // AuthorizationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizationtype
+ AuthorizationType *types.Value `json:"AuthorizationType,omitempty"`
+
+ // AuthorizerId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-authorizerid
+ AuthorizerId *types.Value `json:"AuthorizerId,omitempty"`
+
+ // ModelSelectionExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-modelselectionexpression
+ ModelSelectionExpression *types.Value `json:"ModelSelectionExpression,omitempty"`
+
+ // OperationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-operationname
+ OperationName *types.Value `json:"OperationName,omitempty"`
+
+ // RequestModels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestmodels
+ RequestModels interface{} `json:"RequestModels,omitempty"`
+
+ // RequestParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestparameters
+ RequestParameters interface{} `json:"RequestParameters,omitempty"`
+
+ // RouteKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routekey
+ RouteKey *types.Value `json:"RouteKey,omitempty"`
+
+ // RouteResponseSelectionExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routeresponseselectionexpression
+ RouteResponseSelectionExpression *types.Value `json:"RouteResponseSelectionExpression,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Route"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Route) MarshalJSON() ([]byte, error) {
+ type Properties Route
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Route) UnmarshalJSON(b []byte) error {
+ type Properties Route
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Route(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-route_parameterconstraints.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-route_parameterconstraints.go
new file mode 100644
index 0000000000..8dbbecd152
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-route_parameterconstraints.go
@@ -0,0 +1,37 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_ParameterConstraints AWS CloudFormation Resource (AWS::ApiGatewayV2::Route.ParameterConstraints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-route-parameterconstraints.html
+type Route_ParameterConstraints struct {
+
+ // Required AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-route-parameterconstraints.html#cfn-apigatewayv2-route-parameterconstraints-required
+ Required *types.Value `json:"Required"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_ParameterConstraints) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Route.ParameterConstraints"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-routeresponse.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-routeresponse.go
new file mode 100644
index 0000000000..5b49cfaeb7
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-routeresponse.go
@@ -0,0 +1,133 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RouteResponse AWS CloudFormation Resource (AWS::ApiGatewayV2::RouteResponse)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html
+type RouteResponse struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // ModelSelectionExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-modelselectionexpression
+ ModelSelectionExpression *types.Value `json:"ModelSelectionExpression,omitempty"`
+
+ // ResponseModels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-responsemodels
+ ResponseModels interface{} `json:"ResponseModels,omitempty"`
+
+ // ResponseParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-responseparameters
+ ResponseParameters interface{} `json:"ResponseParameters,omitempty"`
+
+ // RouteId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-routeid
+ RouteId *types.Value `json:"RouteId,omitempty"`
+
+ // RouteResponseKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-routeresponse.html#cfn-apigatewayv2-routeresponse-routeresponsekey
+ RouteResponseKey *types.Value `json:"RouteResponseKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RouteResponse) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::RouteResponse"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RouteResponse) MarshalJSON() ([]byte, error) {
+ type Properties RouteResponse
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RouteResponse) UnmarshalJSON(b []byte) error {
+ type Properties RouteResponse
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RouteResponse(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-routeresponse_parameterconstraints.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-routeresponse_parameterconstraints.go
new file mode 100644
index 0000000000..bb0cb97385
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-routeresponse_parameterconstraints.go
@@ -0,0 +1,37 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RouteResponse_ParameterConstraints AWS CloudFormation Resource (AWS::ApiGatewayV2::RouteResponse.ParameterConstraints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routeresponse-parameterconstraints.html
+type RouteResponse_ParameterConstraints struct {
+
+ // Required AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-routeresponse-parameterconstraints.html#cfn-apigatewayv2-routeresponse-parameterconstraints-required
+ Required *types.Value `json:"Required"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RouteResponse_ParameterConstraints) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage.go
new file mode 100644
index 0000000000..d5ef630a06
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage.go
@@ -0,0 +1,163 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stage AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html
+type Stage struct {
+
+ // AccessLogSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings
+ AccessLogSettings *Stage_AccessLogSettings `json:"AccessLogSettings,omitempty"`
+
+ // AccessPolicyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesspolicyid
+ AccessPolicyId *types.Value `json:"AccessPolicyId,omitempty"`
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // AutoDeploy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-autodeploy
+ AutoDeploy *types.Value `json:"AutoDeploy,omitempty"`
+
+ // ClientCertificateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-clientcertificateid
+ ClientCertificateId *types.Value `json:"ClientCertificateId,omitempty"`
+
+ // DefaultRouteSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-defaultroutesettings
+ DefaultRouteSettings *Stage_RouteSettings `json:"DefaultRouteSettings,omitempty"`
+
+ // DeploymentId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-deploymentid
+ DeploymentId *types.Value `json:"DeploymentId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // RouteSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings
+ RouteSettings interface{} `json:"RouteSettings,omitempty"`
+
+ // StageName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename
+ StageName *types.Value `json:"StageName,omitempty"`
+
+ // StageVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables
+ StageVariables interface{} `json:"StageVariables,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stage) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Stage"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Stage) MarshalJSON() ([]byte, error) {
+ type Properties Stage
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Stage) UnmarshalJSON(b []byte) error {
+ type Properties Stage
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Stage(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage_accesslogsettings.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage_accesslogsettings.go
new file mode 100644
index 0000000000..9003055bb3
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage_accesslogsettings.go
@@ -0,0 +1,42 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stage_AccessLogSettings AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage.AccessLogSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html
+type Stage_AccessLogSettings struct {
+
+ // DestinationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html#cfn-apigatewayv2-stage-accesslogsettings-destinationarn
+ DestinationArn *types.Value `json:"DestinationArn,omitempty"`
+
+ // Format AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-accesslogsettings.html#cfn-apigatewayv2-stage-accesslogsettings-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stage_AccessLogSettings) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Stage.AccessLogSettings"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage_routesettings.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage_routesettings.go
new file mode 100644
index 0000000000..b141258bfc
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-stage_routesettings.go
@@ -0,0 +1,57 @@
+package apigatewayv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stage_RouteSettings AWS CloudFormation Resource (AWS::ApiGatewayV2::Stage.RouteSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html
+type Stage_RouteSettings struct {
+
+ // DataTraceEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-datatraceenabled
+ DataTraceEnabled *types.Value `json:"DataTraceEnabled,omitempty"`
+
+ // DetailedMetricsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-detailedmetricsenabled
+ DetailedMetricsEnabled *types.Value `json:"DetailedMetricsEnabled,omitempty"`
+
+ // LoggingLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-logginglevel
+ LoggingLevel *types.Value `json:"LoggingLevel,omitempty"`
+
+ // ThrottlingBurstLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingburstlimit
+ ThrottlingBurstLimit *types.Value `json:"ThrottlingBurstLimit,omitempty"`
+
+ // ThrottlingRateLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html#cfn-apigatewayv2-stage-routesettings-throttlingratelimit
+ ThrottlingRateLimit *types.Value `json:"ThrottlingRateLimit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stage_RouteSettings) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::Stage.RouteSettings"
+}
diff --git a/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-vpclink.go b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-vpclink.go
new file mode 100644
index 0000000000..9c3651b406
--- /dev/null
+++ b/goformation/cloudformation/apigatewayv2/aws-apigatewayv2-vpclink.go
@@ -0,0 +1,123 @@
+package apigatewayv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VpcLink AWS CloudFormation Resource (AWS::ApiGatewayV2::VpcLink)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html
+type VpcLink struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html#cfn-apigatewayv2-vpclink-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html#cfn-apigatewayv2-vpclink-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html#cfn-apigatewayv2-vpclink-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-vpclink.html#cfn-apigatewayv2-vpclink-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VpcLink) AWSCloudFormationType() string {
+ return "AWS::ApiGatewayV2::VpcLink"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VpcLink) MarshalJSON() ([]byte, error) {
+ type Properties VpcLink
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VpcLink) UnmarshalJSON(b []byte) error {
+ type Properties VpcLink
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VpcLink(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-application.go b/goformation/cloudformation/appconfig/aws-appconfig-application.go
new file mode 100644
index 0000000000..9929e53295
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-application.go
@@ -0,0 +1,118 @@
+package appconfig
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application AWS CloudFormation Resource (AWS::AppConfig::Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html
+type Application struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-tags
+ Tags []Application_Tags `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application) AWSCloudFormationType() string {
+ return "AWS::AppConfig::Application"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Application) MarshalJSON() ([]byte, error) {
+ type Properties Application
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Application) UnmarshalJSON(b []byte) error {
+ type Properties Application
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Application(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-application_tags.go b/goformation/cloudformation/appconfig/aws-appconfig-application_tags.go
new file mode 100644
index 0000000000..b9b8992da1
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-application_tags.go
@@ -0,0 +1,42 @@
+package appconfig
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_Tags AWS CloudFormation Resource (AWS::AppConfig::Application.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html
+type Application_Tags struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html#cfn-appconfig-application-tags-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-application-tags.html#cfn-appconfig-application-tags-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_Tags) AWSCloudFormationType() string {
+ return "AWS::AppConfig::Application.Tags"
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile.go b/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile.go
new file mode 100644
index 0000000000..7c5c93fbc9
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile.go
@@ -0,0 +1,143 @@
+package appconfig
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationProfile AWS CloudFormation Resource (AWS::AppConfig::ConfigurationProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html
+type ConfigurationProfile struct {
+
+ // ApplicationId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-applicationid
+ ApplicationId *types.Value `json:"ApplicationId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // LocationUri AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-locationuri
+ LocationUri *types.Value `json:"LocationUri,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RetrievalRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-retrievalrolearn
+ RetrievalRoleArn *types.Value `json:"RetrievalRoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-tags
+ Tags []ConfigurationProfile_Tags `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Validators AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-configurationprofile.html#cfn-appconfig-configurationprofile-validators
+ Validators []ConfigurationProfile_Validators `json:"Validators,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationProfile) AWSCloudFormationType() string {
+ return "AWS::AppConfig::ConfigurationProfile"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConfigurationProfile) MarshalJSON() ([]byte, error) {
+ type Properties ConfigurationProfile
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConfigurationProfile) UnmarshalJSON(b []byte) error {
+ type Properties ConfigurationProfile
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConfigurationProfile(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile_tags.go b/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile_tags.go
new file mode 100644
index 0000000000..b3ca5719ab
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile_tags.go
@@ -0,0 +1,42 @@
+package appconfig
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationProfile_Tags AWS CloudFormation Resource (AWS::AppConfig::ConfigurationProfile.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html
+type ConfigurationProfile_Tags struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html#cfn-appconfig-configurationprofile-tags-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-tags.html#cfn-appconfig-configurationprofile-tags-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationProfile_Tags) AWSCloudFormationType() string {
+ return "AWS::AppConfig::ConfigurationProfile.Tags"
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile_validators.go b/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile_validators.go
new file mode 100644
index 0000000000..d5c8e4b60b
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-configurationprofile_validators.go
@@ -0,0 +1,42 @@
+package appconfig
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationProfile_Validators AWS CloudFormation Resource (AWS::AppConfig::ConfigurationProfile.Validators)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html
+type ConfigurationProfile_Validators struct {
+
+ // Content AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html#cfn-appconfig-configurationprofile-validators-content
+ Content *types.Value `json:"Content,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-configurationprofile-validators.html#cfn-appconfig-configurationprofile-validators-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationProfile_Validators) AWSCloudFormationType() string {
+ return "AWS::AppConfig::ConfigurationProfile.Validators"
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-deployment.go b/goformation/cloudformation/appconfig/aws-appconfig-deployment.go
new file mode 100644
index 0000000000..c704d4bb72
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-deployment.go
@@ -0,0 +1,138 @@
+package appconfig
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment AWS CloudFormation Resource (AWS::AppConfig::Deployment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html
+type Deployment struct {
+
+ // ApplicationId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-applicationid
+ ApplicationId *types.Value `json:"ApplicationId,omitempty"`
+
+ // ConfigurationProfileId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-configurationprofileid
+ ConfigurationProfileId *types.Value `json:"ConfigurationProfileId,omitempty"`
+
+ // ConfigurationVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-configurationversion
+ ConfigurationVersion *types.Value `json:"ConfigurationVersion,omitempty"`
+
+ // DeploymentStrategyId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-deploymentstrategyid
+ DeploymentStrategyId *types.Value `json:"DeploymentStrategyId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EnvironmentId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-environmentid
+ EnvironmentId *types.Value `json:"EnvironmentId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deployment.html#cfn-appconfig-deployment-tags
+ Tags []Deployment_Tags `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment) AWSCloudFormationType() string {
+ return "AWS::AppConfig::Deployment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Deployment) MarshalJSON() ([]byte, error) {
+ type Properties Deployment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Deployment) UnmarshalJSON(b []byte) error {
+ type Properties Deployment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Deployment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-deployment_tags.go b/goformation/cloudformation/appconfig/aws-appconfig-deployment_tags.go
new file mode 100644
index 0000000000..c7f1954a6d
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-deployment_tags.go
@@ -0,0 +1,42 @@
+package appconfig
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Deployment_Tags AWS CloudFormation Resource (AWS::AppConfig::Deployment.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html
+type Deployment_Tags struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html#cfn-appconfig-deployment-tags-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deployment-tags.html#cfn-appconfig-deployment-tags-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Deployment_Tags) AWSCloudFormationType() string {
+ return "AWS::AppConfig::Deployment.Tags"
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-deploymentstrategy.go b/goformation/cloudformation/appconfig/aws-appconfig-deploymentstrategy.go
new file mode 100644
index 0000000000..9cf5622797
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-deploymentstrategy.go
@@ -0,0 +1,143 @@
+package appconfig
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentStrategy AWS CloudFormation Resource (AWS::AppConfig::DeploymentStrategy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html
+type DeploymentStrategy struct {
+
+ // DeploymentDurationInMinutes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-deploymentdurationinminutes
+ DeploymentDurationInMinutes *types.Value `json:"DeploymentDurationInMinutes"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FinalBakeTimeInMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-finalbaketimeinminutes
+ FinalBakeTimeInMinutes *types.Value `json:"FinalBakeTimeInMinutes,omitempty"`
+
+ // GrowthFactor AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-growthfactor
+ GrowthFactor *types.Value `json:"GrowthFactor"`
+
+ // GrowthType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-growthtype
+ GrowthType *types.Value `json:"GrowthType,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ReplicateTo AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-replicateto
+ ReplicateTo *types.Value `json:"ReplicateTo,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-deploymentstrategy.html#cfn-appconfig-deploymentstrategy-tags
+ Tags []DeploymentStrategy_Tags `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentStrategy) AWSCloudFormationType() string {
+ return "AWS::AppConfig::DeploymentStrategy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DeploymentStrategy) MarshalJSON() ([]byte, error) {
+ type Properties DeploymentStrategy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DeploymentStrategy) UnmarshalJSON(b []byte) error {
+ type Properties DeploymentStrategy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DeploymentStrategy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-deploymentstrategy_tags.go b/goformation/cloudformation/appconfig/aws-appconfig-deploymentstrategy_tags.go
new file mode 100644
index 0000000000..c036c0f959
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-deploymentstrategy_tags.go
@@ -0,0 +1,42 @@
+package appconfig
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentStrategy_Tags AWS CloudFormation Resource (AWS::AppConfig::DeploymentStrategy.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html
+type DeploymentStrategy_Tags struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html#cfn-appconfig-deploymentstrategy-tags-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-deploymentstrategy-tags.html#cfn-appconfig-deploymentstrategy-tags-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentStrategy_Tags) AWSCloudFormationType() string {
+ return "AWS::AppConfig::DeploymentStrategy.Tags"
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-environment.go b/goformation/cloudformation/appconfig/aws-appconfig-environment.go
new file mode 100644
index 0000000000..7af6bbf411
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-environment.go
@@ -0,0 +1,128 @@
+package appconfig
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment AWS CloudFormation Resource (AWS::AppConfig::Environment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html
+type Environment struct {
+
+ // ApplicationId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-applicationid
+ ApplicationId *types.Value `json:"ApplicationId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Monitors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-monitors
+ Monitors []Environment_Monitors `json:"Monitors,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-environment.html#cfn-appconfig-environment-tags
+ Tags []Environment_Tags `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment) AWSCloudFormationType() string {
+ return "AWS::AppConfig::Environment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Environment) MarshalJSON() ([]byte, error) {
+ type Properties Environment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Environment) UnmarshalJSON(b []byte) error {
+ type Properties Environment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Environment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-environment_monitors.go b/goformation/cloudformation/appconfig/aws-appconfig-environment_monitors.go
new file mode 100644
index 0000000000..52eb2a4794
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-environment_monitors.go
@@ -0,0 +1,42 @@
+package appconfig
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment_Monitors AWS CloudFormation Resource (AWS::AppConfig::Environment.Monitors)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html
+type Environment_Monitors struct {
+
+ // AlarmArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html#cfn-appconfig-environment-monitors-alarmarn
+ AlarmArn *types.Value `json:"AlarmArn,omitempty"`
+
+ // AlarmRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-monitors.html#cfn-appconfig-environment-monitors-alarmrolearn
+ AlarmRoleArn *types.Value `json:"AlarmRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment_Monitors) AWSCloudFormationType() string {
+ return "AWS::AppConfig::Environment.Monitors"
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-environment_tags.go b/goformation/cloudformation/appconfig/aws-appconfig-environment_tags.go
new file mode 100644
index 0000000000..6ccc3429bf
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-environment_tags.go
@@ -0,0 +1,42 @@
+package appconfig
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment_Tags AWS CloudFormation Resource (AWS::AppConfig::Environment.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html
+type Environment_Tags struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html#cfn-appconfig-environment-tags-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appconfig-environment-tags.html#cfn-appconfig-environment-tags-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment_Tags) AWSCloudFormationType() string {
+ return "AWS::AppConfig::Environment.Tags"
+}
diff --git a/goformation/cloudformation/appconfig/aws-appconfig-hostedconfigurationversion.go b/goformation/cloudformation/appconfig/aws-appconfig-hostedconfigurationversion.go
new file mode 100644
index 0000000000..4dade74f04
--- /dev/null
+++ b/goformation/cloudformation/appconfig/aws-appconfig-hostedconfigurationversion.go
@@ -0,0 +1,133 @@
+package appconfig
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// HostedConfigurationVersion AWS CloudFormation Resource (AWS::AppConfig::HostedConfigurationVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html
+type HostedConfigurationVersion struct {
+
+ // ApplicationId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-applicationid
+ ApplicationId *types.Value `json:"ApplicationId,omitempty"`
+
+ // ConfigurationProfileId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-configurationprofileid
+ ConfigurationProfileId *types.Value `json:"ConfigurationProfileId,omitempty"`
+
+ // Content AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-content
+ Content *types.Value `json:"Content,omitempty"`
+
+ // ContentType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-contenttype
+ ContentType *types.Value `json:"ContentType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // LatestVersionNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-hostedconfigurationversion.html#cfn-appconfig-hostedconfigurationversion-latestversionnumber
+ LatestVersionNumber *types.Value `json:"LatestVersionNumber,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *HostedConfigurationVersion) AWSCloudFormationType() string {
+ return "AWS::AppConfig::HostedConfigurationVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r HostedConfigurationVersion) MarshalJSON() ([]byte, error) {
+ type Properties HostedConfigurationVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *HostedConfigurationVersion) UnmarshalJSON(b []byte) error {
+ type Properties HostedConfigurationVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = HostedConfigurationVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile.go
new file mode 100644
index 0000000000..55cb875893
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile.go
@@ -0,0 +1,128 @@
+package appflow
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html
+type ConnectorProfile struct {
+
+ // ConnectionMode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectionmode
+ ConnectionMode *types.Value `json:"ConnectionMode,omitempty"`
+
+ // ConnectorProfileConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectorprofileconfig
+ ConnectorProfileConfig *ConnectorProfile_ConnectorProfileConfig `json:"ConnectorProfileConfig,omitempty"`
+
+ // ConnectorProfileName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectorprofilename
+ ConnectorProfileName *types.Value `json:"ConnectorProfileName,omitempty"`
+
+ // ConnectorType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-connectortype
+ ConnectorType *types.Value `json:"ConnectorType,omitempty"`
+
+ // KMSArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-connectorprofile.html#cfn-appflow-connectorprofile-kmsarn
+ KMSArn *types.Value `json:"KMSArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConnectorProfile) MarshalJSON() ([]byte, error) {
+ type Properties ConnectorProfile
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConnectorProfile) UnmarshalJSON(b []byte) error {
+ type Properties ConnectorProfile
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConnectorProfile(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_amplitudeconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_amplitudeconnectorprofilecredentials.go
new file mode 100644
index 0000000000..b011531b31
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_amplitudeconnectorprofilecredentials.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_AmplitudeConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html
+type ConnectorProfile_AmplitudeConnectorProfileCredentials struct {
+
+ // ApiKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html#cfn-appflow-connectorprofile-amplitudeconnectorprofilecredentials-apikey
+ ApiKey *types.Value `json:"ApiKey,omitempty"`
+
+ // SecretKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-amplitudeconnectorprofilecredentials.html#cfn-appflow-connectorprofile-amplitudeconnectorprofilecredentials-secretkey
+ SecretKey *types.Value `json:"SecretKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_AmplitudeConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectoroauthrequest.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectoroauthrequest.go
new file mode 100644
index 0000000000..6899af5d6f
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectoroauthrequest.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_ConnectorOAuthRequest AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html
+type ConnectorProfile_ConnectorOAuthRequest struct {
+
+ // AuthCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html#cfn-appflow-connectorprofile-connectoroauthrequest-authcode
+ AuthCode *types.Value `json:"AuthCode,omitempty"`
+
+ // RedirectUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectoroauthrequest.html#cfn-appflow-connectorprofile-connectoroauthrequest-redirecturi
+ RedirectUri *types.Value `json:"RedirectUri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_ConnectorOAuthRequest) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileconfig.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileconfig.go
new file mode 100644
index 0000000000..1cb7951bb6
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileconfig.go
@@ -0,0 +1,40 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_ConnectorProfileConfig AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html
+type ConnectorProfile_ConnectorProfileConfig struct {
+
+ // ConnectorProfileCredentials AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html#cfn-appflow-connectorprofile-connectorprofileconfig-connectorprofilecredentials
+ ConnectorProfileCredentials *ConnectorProfile_ConnectorProfileCredentials `json:"ConnectorProfileCredentials,omitempty"`
+
+ // ConnectorProfileProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileconfig.html#cfn-appflow-connectorprofile-connectorprofileconfig-connectorprofileproperties
+ ConnectorProfileProperties *ConnectorProfile_ConnectorProfileProperties `json:"ConnectorProfileProperties,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_ConnectorProfileConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofilecredentials.go
new file mode 100644
index 0000000000..fc490d7f0b
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofilecredentials.go
@@ -0,0 +1,110 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_ConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html
+type ConnectorProfile_ConnectorProfileCredentials struct {
+
+ // Amplitude AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-amplitude
+ Amplitude *ConnectorProfile_AmplitudeConnectorProfileCredentials `json:"Amplitude,omitempty"`
+
+ // Datadog AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-datadog
+ Datadog *ConnectorProfile_DatadogConnectorProfileCredentials `json:"Datadog,omitempty"`
+
+ // Dynatrace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-dynatrace
+ Dynatrace *ConnectorProfile_DynatraceConnectorProfileCredentials `json:"Dynatrace,omitempty"`
+
+ // GoogleAnalytics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-googleanalytics
+ GoogleAnalytics *ConnectorProfile_GoogleAnalyticsConnectorProfileCredentials `json:"GoogleAnalytics,omitempty"`
+
+ // InforNexus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-infornexus
+ InforNexus *ConnectorProfile_InforNexusConnectorProfileCredentials `json:"InforNexus,omitempty"`
+
+ // Marketo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-marketo
+ Marketo *ConnectorProfile_MarketoConnectorProfileCredentials `json:"Marketo,omitempty"`
+
+ // Redshift AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-redshift
+ Redshift *ConnectorProfile_RedshiftConnectorProfileCredentials `json:"Redshift,omitempty"`
+
+ // SAPOData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-sapodata
+ SAPOData *ConnectorProfile_SAPODataConnectorProfileCredentials `json:"SAPOData,omitempty"`
+
+ // Salesforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-salesforce
+ Salesforce *ConnectorProfile_SalesforceConnectorProfileCredentials `json:"Salesforce,omitempty"`
+
+ // ServiceNow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-servicenow
+ ServiceNow *ConnectorProfile_ServiceNowConnectorProfileCredentials `json:"ServiceNow,omitempty"`
+
+ // Singular AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-singular
+ Singular *ConnectorProfile_SingularConnectorProfileCredentials `json:"Singular,omitempty"`
+
+ // Slack AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-slack
+ Slack *ConnectorProfile_SlackConnectorProfileCredentials `json:"Slack,omitempty"`
+
+ // Snowflake AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-snowflake
+ Snowflake *ConnectorProfile_SnowflakeConnectorProfileCredentials `json:"Snowflake,omitempty"`
+
+ // Trendmicro AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-trendmicro
+ Trendmicro *ConnectorProfile_TrendmicroConnectorProfileCredentials `json:"Trendmicro,omitempty"`
+
+ // Veeva AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-veeva
+ Veeva *ConnectorProfile_VeevaConnectorProfileCredentials `json:"Veeva,omitempty"`
+
+ // Zendesk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofilecredentials.html#cfn-appflow-connectorprofile-connectorprofilecredentials-zendesk
+ Zendesk *ConnectorProfile_ZendeskConnectorProfileCredentials `json:"Zendesk,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_ConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileproperties.go
new file mode 100644
index 0000000000..a616bd3c9a
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_connectorprofileproperties.go
@@ -0,0 +1,90 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_ConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html
+type ConnectorProfile_ConnectorProfileProperties struct {
+
+ // Datadog AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-datadog
+ Datadog *ConnectorProfile_DatadogConnectorProfileProperties `json:"Datadog,omitempty"`
+
+ // Dynatrace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-dynatrace
+ Dynatrace *ConnectorProfile_DynatraceConnectorProfileProperties `json:"Dynatrace,omitempty"`
+
+ // InforNexus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-infornexus
+ InforNexus *ConnectorProfile_InforNexusConnectorProfileProperties `json:"InforNexus,omitempty"`
+
+ // Marketo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-marketo
+ Marketo *ConnectorProfile_MarketoConnectorProfileProperties `json:"Marketo,omitempty"`
+
+ // Redshift AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-redshift
+ Redshift *ConnectorProfile_RedshiftConnectorProfileProperties `json:"Redshift,omitempty"`
+
+ // SAPOData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-sapodata
+ SAPOData *ConnectorProfile_SAPODataConnectorProfileProperties `json:"SAPOData,omitempty"`
+
+ // Salesforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-salesforce
+ Salesforce *ConnectorProfile_SalesforceConnectorProfileProperties `json:"Salesforce,omitempty"`
+
+ // ServiceNow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-servicenow
+ ServiceNow *ConnectorProfile_ServiceNowConnectorProfileProperties `json:"ServiceNow,omitempty"`
+
+ // Slack AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-slack
+ Slack *ConnectorProfile_SlackConnectorProfileProperties `json:"Slack,omitempty"`
+
+ // Snowflake AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-snowflake
+ Snowflake *ConnectorProfile_SnowflakeConnectorProfileProperties `json:"Snowflake,omitempty"`
+
+ // Veeva AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-veeva
+ Veeva *ConnectorProfile_VeevaConnectorProfileProperties `json:"Veeva,omitempty"`
+
+ // Zendesk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-connectorprofileproperties.html#cfn-appflow-connectorprofile-connectorprofileproperties-zendesk
+ Zendesk *ConnectorProfile_ZendeskConnectorProfileProperties `json:"Zendesk,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_ConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_datadogconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_datadogconnectorprofilecredentials.go
new file mode 100644
index 0000000000..f36fdd1d89
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_datadogconnectorprofilecredentials.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_DatadogConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html
+type ConnectorProfile_DatadogConnectorProfileCredentials struct {
+
+ // ApiKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html#cfn-appflow-connectorprofile-datadogconnectorprofilecredentials-apikey
+ ApiKey *types.Value `json:"ApiKey,omitempty"`
+
+ // ApplicationKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofilecredentials.html#cfn-appflow-connectorprofile-datadogconnectorprofilecredentials-applicationkey
+ ApplicationKey *types.Value `json:"ApplicationKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_DatadogConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_datadogconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_datadogconnectorprofileproperties.go
new file mode 100644
index 0000000000..e46b55be2d
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_datadogconnectorprofileproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_DatadogConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofileproperties.html
+type ConnectorProfile_DatadogConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-datadogconnectorprofileproperties.html#cfn-appflow-connectorprofile-datadogconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_DatadogConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_dynatraceconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_dynatraceconnectorprofilecredentials.go
new file mode 100644
index 0000000000..9e7a239241
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_dynatraceconnectorprofilecredentials.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_DynatraceConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofilecredentials.html
+type ConnectorProfile_DynatraceConnectorProfileCredentials struct {
+
+ // ApiToken AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-dynatraceconnectorprofilecredentials-apitoken
+ ApiToken *types.Value `json:"ApiToken,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_DynatraceConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_dynatraceconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_dynatraceconnectorprofileproperties.go
new file mode 100644
index 0000000000..7583aaa91e
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_dynatraceconnectorprofileproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_DynatraceConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofileproperties.html
+type ConnectorProfile_DynatraceConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-dynatraceconnectorprofileproperties.html#cfn-appflow-connectorprofile-dynatraceconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_DynatraceConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_googleanalyticsconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_googleanalyticsconnectorprofilecredentials.go
new file mode 100644
index 0000000000..fb05e2db43
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_googleanalyticsconnectorprofilecredentials.go
@@ -0,0 +1,57 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_GoogleAnalyticsConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html
+type ConnectorProfile_GoogleAnalyticsConnectorProfileCredentials struct {
+
+ // AccessToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-accesstoken
+ AccessToken *types.Value `json:"AccessToken,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // ClientSecret AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-clientsecret
+ ClientSecret *types.Value `json:"ClientSecret,omitempty"`
+
+ // ConnectorOAuthRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-connectoroauthrequest
+ ConnectorOAuthRequest *ConnectorProfile_ConnectorOAuthRequest `json:"ConnectorOAuthRequest,omitempty"`
+
+ // RefreshToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials.html#cfn-appflow-connectorprofile-googleanalyticsconnectorprofilecredentials-refreshtoken
+ RefreshToken *types.Value `json:"RefreshToken,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_GoogleAnalyticsConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_infornexusconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_infornexusconnectorprofilecredentials.go
new file mode 100644
index 0000000000..ff45890257
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_infornexusconnectorprofilecredentials.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_InforNexusConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html
+type ConnectorProfile_InforNexusConnectorProfileCredentials struct {
+
+ // AccessKeyId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html#cfn-appflow-connectorprofile-infornexusconnectorprofilecredentials-accesskeyid
+ AccessKeyId *types.Value `json:"AccessKeyId,omitempty"`
+
+ // Datakey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html#cfn-appflow-connectorprofile-infornexusconnectorprofilecredentials-datakey
+ Datakey *types.Value `json:"Datakey,omitempty"`
+
+ // SecretAccessKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html#cfn-appflow-connectorprofile-infornexusconnectorprofilecredentials-secretaccesskey
+ SecretAccessKey *types.Value `json:"SecretAccessKey,omitempty"`
+
+ // UserId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofilecredentials.html#cfn-appflow-connectorprofile-infornexusconnectorprofilecredentials-userid
+ UserId *types.Value `json:"UserId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_InforNexusConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_infornexusconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_infornexusconnectorprofileproperties.go
new file mode 100644
index 0000000000..7e29e8cc9a
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_infornexusconnectorprofileproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_InforNexusConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofileproperties.html
+type ConnectorProfile_InforNexusConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-infornexusconnectorprofileproperties.html#cfn-appflow-connectorprofile-infornexusconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_InforNexusConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_marketoconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_marketoconnectorprofilecredentials.go
new file mode 100644
index 0000000000..da4856f91d
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_marketoconnectorprofilecredentials.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_MarketoConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html
+type ConnectorProfile_MarketoConnectorProfileCredentials struct {
+
+ // AccessToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html#cfn-appflow-connectorprofile-marketoconnectorprofilecredentials-accesstoken
+ AccessToken *types.Value `json:"AccessToken,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html#cfn-appflow-connectorprofile-marketoconnectorprofilecredentials-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // ClientSecret AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html#cfn-appflow-connectorprofile-marketoconnectorprofilecredentials-clientsecret
+ ClientSecret *types.Value `json:"ClientSecret,omitempty"`
+
+ // ConnectorOAuthRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofilecredentials.html#cfn-appflow-connectorprofile-marketoconnectorprofilecredentials-connectoroauthrequest
+ ConnectorOAuthRequest *ConnectorProfile_ConnectorOAuthRequest `json:"ConnectorOAuthRequest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_MarketoConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_marketoconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_marketoconnectorprofileproperties.go
new file mode 100644
index 0000000000..991e06128e
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_marketoconnectorprofileproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_MarketoConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofileproperties.html
+type ConnectorProfile_MarketoConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-marketoconnectorprofileproperties.html#cfn-appflow-connectorprofile-marketoconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_MarketoConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_oauthproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_oauthproperties.go
new file mode 100644
index 0000000000..5e4d0d4565
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_oauthproperties.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_OAuthProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.OAuthProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html
+type ConnectorProfile_OAuthProperties struct {
+
+ // AuthCodeUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-authcodeurl
+ AuthCodeUrl *types.Value `json:"AuthCodeUrl,omitempty"`
+
+ // OAuthScopes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-oauthscopes
+ OAuthScopes *types.Value `json:"OAuthScopes,omitempty"`
+
+ // TokenUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-oauthproperties.html#cfn-appflow-connectorprofile-oauthproperties-tokenurl
+ TokenUrl *types.Value `json:"TokenUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_OAuthProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.OAuthProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_redshiftconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_redshiftconnectorprofilecredentials.go
new file mode 100644
index 0000000000..169d7a7c99
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_redshiftconnectorprofilecredentials.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_RedshiftConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html
+type ConnectorProfile_RedshiftConnectorProfileCredentials struct {
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html#cfn-appflow-connectorprofile-redshiftconnectorprofilecredentials-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofilecredentials.html#cfn-appflow-connectorprofile-redshiftconnectorprofilecredentials-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_RedshiftConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_redshiftconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_redshiftconnectorprofileproperties.go
new file mode 100644
index 0000000000..8c3d192efb
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_redshiftconnectorprofileproperties.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_RedshiftConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html
+type ConnectorProfile_RedshiftConnectorProfileProperties struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // DatabaseUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-databaseurl
+ DatabaseUrl *types.Value `json:"DatabaseUrl,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-redshiftconnectorprofileproperties.html#cfn-appflow-connectorprofile-redshiftconnectorprofileproperties-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_RedshiftConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofilecredentials.go
new file mode 100644
index 0000000000..e05336fe53
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofilecredentials.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SalesforceConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html
+type ConnectorProfile_SalesforceConnectorProfileCredentials struct {
+
+ // AccessToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-accesstoken
+ AccessToken *types.Value `json:"AccessToken,omitempty"`
+
+ // ClientCredentialsArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-clientcredentialsarn
+ ClientCredentialsArn *types.Value `json:"ClientCredentialsArn,omitempty"`
+
+ // ConnectorOAuthRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-connectoroauthrequest
+ ConnectorOAuthRequest *ConnectorProfile_ConnectorOAuthRequest `json:"ConnectorOAuthRequest,omitempty"`
+
+ // RefreshToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofilecredentials.html#cfn-appflow-connectorprofile-salesforceconnectorprofilecredentials-refreshtoken
+ RefreshToken *types.Value `json:"RefreshToken,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SalesforceConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofileproperties.go
new file mode 100644
index 0000000000..38733a81f2
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_salesforceconnectorprofileproperties.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SalesforceConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html
+type ConnectorProfile_SalesforceConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html#cfn-appflow-connectorprofile-salesforceconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // isSandboxEnvironment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-salesforceconnectorprofileproperties.html#cfn-appflow-connectorprofile-salesforceconnectorprofileproperties-issandboxenvironment
+ isSandboxEnvironment *types.Value `json:"isSandboxEnvironment,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SalesforceConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofilecredentials.go
new file mode 100644
index 0000000000..96029b4c54
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofilecredentials.go
@@ -0,0 +1,40 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SAPODataConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html
+type ConnectorProfile_SAPODataConnectorProfileCredentials struct {
+
+ // BasicAuthCredentials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html#cfn-appflow-connectorprofile-sapodataconnectorprofilecredentials-basicauthcredentials
+ BasicAuthCredentials interface{} `json:"BasicAuthCredentials,omitempty"`
+
+ // OAuthCredentials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofilecredentials.html#cfn-appflow-connectorprofile-sapodataconnectorprofilecredentials-oauthcredentials
+ OAuthCredentials interface{} `json:"OAuthCredentials,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SAPODataConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofileproperties.go
new file mode 100644
index 0000000000..e11353fc67
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_sapodataconnectorprofileproperties.go
@@ -0,0 +1,67 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SAPODataConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html
+type ConnectorProfile_SAPODataConnectorProfileProperties struct {
+
+ // ApplicationHostUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-applicationhosturl
+ ApplicationHostUrl *types.Value `json:"ApplicationHostUrl,omitempty"`
+
+ // ApplicationServicePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-applicationservicepath
+ ApplicationServicePath *types.Value `json:"ApplicationServicePath,omitempty"`
+
+ // ClientNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-clientnumber
+ ClientNumber *types.Value `json:"ClientNumber,omitempty"`
+
+ // LogonLanguage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-logonlanguage
+ LogonLanguage *types.Value `json:"LogonLanguage,omitempty"`
+
+ // OAuthProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-oauthproperties
+ OAuthProperties *ConnectorProfile_OAuthProperties `json:"OAuthProperties,omitempty"`
+
+ // PortNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-portnumber
+ PortNumber *types.Value `json:"PortNumber,omitempty"`
+
+ // PrivateLinkServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-sapodataconnectorprofileproperties.html#cfn-appflow-connectorprofile-sapodataconnectorprofileproperties-privatelinkservicename
+ PrivateLinkServiceName *types.Value `json:"PrivateLinkServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SAPODataConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_servicenowconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_servicenowconnectorprofilecredentials.go
new file mode 100644
index 0000000000..62dfe8c04b
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_servicenowconnectorprofilecredentials.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_ServiceNowConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html
+type ConnectorProfile_ServiceNowConnectorProfileCredentials struct {
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html#cfn-appflow-connectorprofile-servicenowconnectorprofilecredentials-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofilecredentials.html#cfn-appflow-connectorprofile-servicenowconnectorprofilecredentials-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_ServiceNowConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_servicenowconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_servicenowconnectorprofileproperties.go
new file mode 100644
index 0000000000..e8ba101748
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_servicenowconnectorprofileproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_ServiceNowConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofileproperties.html
+type ConnectorProfile_ServiceNowConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-servicenowconnectorprofileproperties.html#cfn-appflow-connectorprofile-servicenowconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_ServiceNowConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_singularconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_singularconnectorprofilecredentials.go
new file mode 100644
index 0000000000..da7dda2025
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_singularconnectorprofilecredentials.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SingularConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-singularconnectorprofilecredentials.html
+type ConnectorProfile_SingularConnectorProfileCredentials struct {
+
+ // ApiKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-singularconnectorprofilecredentials.html#cfn-appflow-connectorprofile-singularconnectorprofilecredentials-apikey
+ ApiKey *types.Value `json:"ApiKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SingularConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_slackconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_slackconnectorprofilecredentials.go
new file mode 100644
index 0000000000..93ab72ab76
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_slackconnectorprofilecredentials.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SlackConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html
+type ConnectorProfile_SlackConnectorProfileCredentials struct {
+
+ // AccessToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html#cfn-appflow-connectorprofile-slackconnectorprofilecredentials-accesstoken
+ AccessToken *types.Value `json:"AccessToken,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html#cfn-appflow-connectorprofile-slackconnectorprofilecredentials-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // ClientSecret AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html#cfn-appflow-connectorprofile-slackconnectorprofilecredentials-clientsecret
+ ClientSecret *types.Value `json:"ClientSecret,omitempty"`
+
+ // ConnectorOAuthRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofilecredentials.html#cfn-appflow-connectorprofile-slackconnectorprofilecredentials-connectoroauthrequest
+ ConnectorOAuthRequest *ConnectorProfile_ConnectorOAuthRequest `json:"ConnectorOAuthRequest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SlackConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_slackconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_slackconnectorprofileproperties.go
new file mode 100644
index 0000000000..321979f0ff
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_slackconnectorprofileproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SlackConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofileproperties.html
+type ConnectorProfile_SlackConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-slackconnectorprofileproperties.html#cfn-appflow-connectorprofile-slackconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SlackConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_snowflakeconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_snowflakeconnectorprofilecredentials.go
new file mode 100644
index 0000000000..2f3b66f3cb
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_snowflakeconnectorprofilecredentials.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SnowflakeConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html
+type ConnectorProfile_SnowflakeConnectorProfileCredentials struct {
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html#cfn-appflow-connectorprofile-snowflakeconnectorprofilecredentials-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofilecredentials.html#cfn-appflow-connectorprofile-snowflakeconnectorprofilecredentials-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SnowflakeConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_snowflakeconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_snowflakeconnectorprofileproperties.go
new file mode 100644
index 0000000000..ca67ed22a4
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_snowflakeconnectorprofileproperties.go
@@ -0,0 +1,67 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_SnowflakeConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html
+type ConnectorProfile_SnowflakeConnectorProfileProperties struct {
+
+ // AccountName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-accountname
+ AccountName *types.Value `json:"AccountName,omitempty"`
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // PrivateLinkServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-privatelinkservicename
+ PrivateLinkServiceName *types.Value `json:"PrivateLinkServiceName,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // Stage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-stage
+ Stage *types.Value `json:"Stage,omitempty"`
+
+ // Warehouse AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-snowflakeconnectorprofileproperties.html#cfn-appflow-connectorprofile-snowflakeconnectorprofileproperties-warehouse
+ Warehouse *types.Value `json:"Warehouse,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_SnowflakeConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_trendmicroconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_trendmicroconnectorprofilecredentials.go
new file mode 100644
index 0000000000..0935c26056
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_trendmicroconnectorprofilecredentials.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_TrendmicroConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-trendmicroconnectorprofilecredentials.html
+type ConnectorProfile_TrendmicroConnectorProfileCredentials struct {
+
+ // ApiSecretKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-trendmicroconnectorprofilecredentials.html#cfn-appflow-connectorprofile-trendmicroconnectorprofilecredentials-apisecretkey
+ ApiSecretKey *types.Value `json:"ApiSecretKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_TrendmicroConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_veevaconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_veevaconnectorprofilecredentials.go
new file mode 100644
index 0000000000..9c105aaa69
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_veevaconnectorprofilecredentials.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_VeevaConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html
+type ConnectorProfile_VeevaConnectorProfileCredentials struct {
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html#cfn-appflow-connectorprofile-veevaconnectorprofilecredentials-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofilecredentials.html#cfn-appflow-connectorprofile-veevaconnectorprofilecredentials-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_VeevaConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_veevaconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_veevaconnectorprofileproperties.go
new file mode 100644
index 0000000000..5f6e7a62f9
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_veevaconnectorprofileproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_VeevaConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofileproperties.html
+type ConnectorProfile_VeevaConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-veevaconnectorprofileproperties.html#cfn-appflow-connectorprofile-veevaconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_VeevaConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_zendeskconnectorprofilecredentials.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_zendeskconnectorprofilecredentials.go
new file mode 100644
index 0000000000..34314ecb42
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_zendeskconnectorprofilecredentials.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_ZendeskConnectorProfileCredentials AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html
+type ConnectorProfile_ZendeskConnectorProfileCredentials struct {
+
+ // AccessToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html#cfn-appflow-connectorprofile-zendeskconnectorprofilecredentials-accesstoken
+ AccessToken *types.Value `json:"AccessToken,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html#cfn-appflow-connectorprofile-zendeskconnectorprofilecredentials-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // ClientSecret AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html#cfn-appflow-connectorprofile-zendeskconnectorprofilecredentials-clientsecret
+ ClientSecret *types.Value `json:"ClientSecret,omitempty"`
+
+ // ConnectorOAuthRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofilecredentials.html#cfn-appflow-connectorprofile-zendeskconnectorprofilecredentials-connectoroauthrequest
+ ConnectorOAuthRequest *ConnectorProfile_ConnectorOAuthRequest `json:"ConnectorOAuthRequest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_ZendeskConnectorProfileCredentials) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-connectorprofile_zendeskconnectorprofileproperties.go b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_zendeskconnectorprofileproperties.go
new file mode 100644
index 0000000000..013766a199
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-connectorprofile_zendeskconnectorprofileproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorProfile_ZendeskConnectorProfileProperties AWS CloudFormation Resource (AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofileproperties.html
+type ConnectorProfile_ZendeskConnectorProfileProperties struct {
+
+ // InstanceUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-connectorprofile-zendeskconnectorprofileproperties.html#cfn-appflow-connectorprofile-zendeskconnectorprofileproperties-instanceurl
+ InstanceUrl *types.Value `json:"InstanceUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorProfile_ZendeskConnectorProfileProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow.go b/goformation/cloudformation/appflow/aws-appflow-flow.go
new file mode 100644
index 0000000000..1802b2def8
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow.go
@@ -0,0 +1,144 @@
+package appflow
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow AWS CloudFormation Resource (AWS::AppFlow::Flow)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html
+type Flow struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DestinationFlowConfigList AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-destinationflowconfiglist
+ DestinationFlowConfigList []Flow_DestinationFlowConfig `json:"DestinationFlowConfigList,omitempty"`
+
+ // FlowName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-flowname
+ FlowName *types.Value `json:"FlowName,omitempty"`
+
+ // KMSArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-kmsarn
+ KMSArn *types.Value `json:"KMSArn,omitempty"`
+
+ // SourceFlowConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-sourceflowconfig
+ SourceFlowConfig *Flow_SourceFlowConfig `json:"SourceFlowConfig,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Tasks AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-tasks
+ Tasks []Flow_Task `json:"Tasks,omitempty"`
+
+ // TriggerConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appflow-flow.html#cfn-appflow-flow-triggerconfig
+ TriggerConfig *Flow_TriggerConfig `json:"TriggerConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Flow) MarshalJSON() ([]byte, error) {
+ type Properties Flow
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Flow) UnmarshalJSON(b []byte) error {
+ type Properties Flow
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Flow(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_aggregationconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_aggregationconfig.go
new file mode 100644
index 0000000000..83c577feab
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_aggregationconfig.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_AggregationConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.AggregationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html
+type Flow_AggregationConfig struct {
+
+ // AggregationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-aggregationconfig.html#cfn-appflow-flow-aggregationconfig-aggregationtype
+ AggregationType *types.Value `json:"AggregationType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_AggregationConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.AggregationConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_amplitudesourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_amplitudesourceproperties.go
new file mode 100644
index 0000000000..04a158454f
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_amplitudesourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_AmplitudeSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.AmplitudeSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-amplitudesourceproperties.html
+type Flow_AmplitudeSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-amplitudesourceproperties.html#cfn-appflow-flow-amplitudesourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_AmplitudeSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.AmplitudeSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_connectoroperator.go b/goformation/cloudformation/appflow/aws-appflow-flow_connectoroperator.go
new file mode 100644
index 0000000000..47a709fb6a
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_connectoroperator.go
@@ -0,0 +1,107 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_ConnectorOperator AWS CloudFormation Resource (AWS::AppFlow::Flow.ConnectorOperator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html
+type Flow_ConnectorOperator struct {
+
+ // Amplitude AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-amplitude
+ Amplitude *types.Value `json:"Amplitude,omitempty"`
+
+ // Datadog AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-datadog
+ Datadog *types.Value `json:"Datadog,omitempty"`
+
+ // Dynatrace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-dynatrace
+ Dynatrace *types.Value `json:"Dynatrace,omitempty"`
+
+ // GoogleAnalytics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-googleanalytics
+ GoogleAnalytics *types.Value `json:"GoogleAnalytics,omitempty"`
+
+ // InforNexus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-infornexus
+ InforNexus *types.Value `json:"InforNexus,omitempty"`
+
+ // Marketo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-marketo
+ Marketo *types.Value `json:"Marketo,omitempty"`
+
+ // S3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-s3
+ S3 *types.Value `json:"S3,omitempty"`
+
+ // SAPOData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-sapodata
+ SAPOData *types.Value `json:"SAPOData,omitempty"`
+
+ // Salesforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-salesforce
+ Salesforce *types.Value `json:"Salesforce,omitempty"`
+
+ // ServiceNow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-servicenow
+ ServiceNow *types.Value `json:"ServiceNow,omitempty"`
+
+ // Singular AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-singular
+ Singular *types.Value `json:"Singular,omitempty"`
+
+ // Slack AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-slack
+ Slack *types.Value `json:"Slack,omitempty"`
+
+ // Trendmicro AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-trendmicro
+ Trendmicro *types.Value `json:"Trendmicro,omitempty"`
+
+ // Veeva AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-veeva
+ Veeva *types.Value `json:"Veeva,omitempty"`
+
+ // Zendesk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-connectoroperator.html#cfn-appflow-flow-connectoroperator-zendesk
+ Zendesk *types.Value `json:"Zendesk,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_ConnectorOperator) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.ConnectorOperator"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_datadogsourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_datadogsourceproperties.go
new file mode 100644
index 0000000000..20723dc428
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_datadogsourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_DatadogSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.DatadogSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datadogsourceproperties.html
+type Flow_DatadogSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-datadogsourceproperties.html#cfn-appflow-flow-datadogsourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_DatadogSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.DatadogSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_destinationconnectorproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_destinationconnectorproperties.go
new file mode 100644
index 0000000000..f648d0e4b4
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_destinationconnectorproperties.go
@@ -0,0 +1,70 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_DestinationConnectorProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.DestinationConnectorProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html
+type Flow_DestinationConnectorProperties struct {
+
+ // EventBridge AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-eventbridge
+ EventBridge *Flow_EventBridgeDestinationProperties `json:"EventBridge,omitempty"`
+
+ // LookoutMetrics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-lookoutmetrics
+ LookoutMetrics *Flow_LookoutMetricsDestinationProperties `json:"LookoutMetrics,omitempty"`
+
+ // Redshift AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-redshift
+ Redshift *Flow_RedshiftDestinationProperties `json:"Redshift,omitempty"`
+
+ // S3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-s3
+ S3 *Flow_S3DestinationProperties `json:"S3,omitempty"`
+
+ // Salesforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-salesforce
+ Salesforce *Flow_SalesforceDestinationProperties `json:"Salesforce,omitempty"`
+
+ // Snowflake AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-snowflake
+ Snowflake *Flow_SnowflakeDestinationProperties `json:"Snowflake,omitempty"`
+
+ // Upsolver AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-upsolver
+ Upsolver *Flow_UpsolverDestinationProperties `json:"Upsolver,omitempty"`
+
+ // Zendesk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationconnectorproperties.html#cfn-appflow-flow-destinationconnectorproperties-zendesk
+ Zendesk *Flow_ZendeskDestinationProperties `json:"Zendesk,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_DestinationConnectorProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.DestinationConnectorProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_destinationflowconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_destinationflowconfig.go
new file mode 100644
index 0000000000..4a561ab400
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_destinationflowconfig.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_DestinationFlowConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.DestinationFlowConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html
+type Flow_DestinationFlowConfig struct {
+
+ // ConnectorProfileName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html#cfn-appflow-flow-destinationflowconfig-connectorprofilename
+ ConnectorProfileName *types.Value `json:"ConnectorProfileName,omitempty"`
+
+ // ConnectorType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html#cfn-appflow-flow-destinationflowconfig-connectortype
+ ConnectorType *types.Value `json:"ConnectorType,omitempty"`
+
+ // DestinationConnectorProperties AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-destinationflowconfig.html#cfn-appflow-flow-destinationflowconfig-destinationconnectorproperties
+ DestinationConnectorProperties *Flow_DestinationConnectorProperties `json:"DestinationConnectorProperties,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_DestinationFlowConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.DestinationFlowConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_dynatracesourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_dynatracesourceproperties.go
new file mode 100644
index 0000000000..1aee61d954
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_dynatracesourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_DynatraceSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.DynatraceSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-dynatracesourceproperties.html
+type Flow_DynatraceSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-dynatracesourceproperties.html#cfn-appflow-flow-dynatracesourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_DynatraceSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.DynatraceSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_errorhandlingconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_errorhandlingconfig.go
new file mode 100644
index 0000000000..36990ef36d
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_errorhandlingconfig.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_ErrorHandlingConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.ErrorHandlingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html
+type Flow_ErrorHandlingConfig struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html#cfn-appflow-flow-errorhandlingconfig-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html#cfn-appflow-flow-errorhandlingconfig-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // FailOnFirstError AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-errorhandlingconfig.html#cfn-appflow-flow-errorhandlingconfig-failonfirsterror
+ FailOnFirstError *types.Value `json:"FailOnFirstError,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_ErrorHandlingConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.ErrorHandlingConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_eventbridgedestinationproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_eventbridgedestinationproperties.go
new file mode 100644
index 0000000000..47f96bd4ea
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_eventbridgedestinationproperties.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_EventBridgeDestinationProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.EventBridgeDestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html
+type Flow_EventBridgeDestinationProperties struct {
+
+ // ErrorHandlingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html#cfn-appflow-flow-eventbridgedestinationproperties-errorhandlingconfig
+ ErrorHandlingConfig *Flow_ErrorHandlingConfig `json:"ErrorHandlingConfig,omitempty"`
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-eventbridgedestinationproperties.html#cfn-appflow-flow-eventbridgedestinationproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_EventBridgeDestinationProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.EventBridgeDestinationProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_googleanalyticssourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_googleanalyticssourceproperties.go
new file mode 100644
index 0000000000..60c71ca615
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_googleanalyticssourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_GoogleAnalyticsSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-googleanalyticssourceproperties.html
+type Flow_GoogleAnalyticsSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-googleanalyticssourceproperties.html#cfn-appflow-flow-googleanalyticssourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_GoogleAnalyticsSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_incrementalpullconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_incrementalpullconfig.go
new file mode 100644
index 0000000000..b47f741da2
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_incrementalpullconfig.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_IncrementalPullConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.IncrementalPullConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-incrementalpullconfig.html
+type Flow_IncrementalPullConfig struct {
+
+ // DatetimeTypeFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-incrementalpullconfig.html#cfn-appflow-flow-incrementalpullconfig-datetimetypefieldname
+ DatetimeTypeFieldName *types.Value `json:"DatetimeTypeFieldName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_IncrementalPullConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.IncrementalPullConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_infornexussourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_infornexussourceproperties.go
new file mode 100644
index 0000000000..8617171275
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_infornexussourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_InforNexusSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.InforNexusSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-infornexussourceproperties.html
+type Flow_InforNexusSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-infornexussourceproperties.html#cfn-appflow-flow-infornexussourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_InforNexusSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.InforNexusSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_lookoutmetricsdestinationproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_lookoutmetricsdestinationproperties.go
new file mode 100644
index 0000000000..7c07028720
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_lookoutmetricsdestinationproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_LookoutMetricsDestinationProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.LookoutMetricsDestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-lookoutmetricsdestinationproperties.html
+type Flow_LookoutMetricsDestinationProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-lookoutmetricsdestinationproperties.html#cfn-appflow-flow-lookoutmetricsdestinationproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_LookoutMetricsDestinationProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.LookoutMetricsDestinationProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_marketosourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_marketosourceproperties.go
new file mode 100644
index 0000000000..d28b0cccc6
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_marketosourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_MarketoSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.MarketoSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketosourceproperties.html
+type Flow_MarketoSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-marketosourceproperties.html#cfn-appflow-flow-marketosourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_MarketoSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.MarketoSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_prefixconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_prefixconfig.go
new file mode 100644
index 0000000000..6871e240f8
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_prefixconfig.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_PrefixConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.PrefixConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html
+type Flow_PrefixConfig struct {
+
+ // PrefixFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html#cfn-appflow-flow-prefixconfig-prefixformat
+ PrefixFormat *types.Value `json:"PrefixFormat,omitempty"`
+
+ // PrefixType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-prefixconfig.html#cfn-appflow-flow-prefixconfig-prefixtype
+ PrefixType *types.Value `json:"PrefixType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_PrefixConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.PrefixConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_redshiftdestinationproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_redshiftdestinationproperties.go
new file mode 100644
index 0000000000..bd1d7aaad0
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_redshiftdestinationproperties.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_RedshiftDestinationProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.RedshiftDestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html
+type Flow_RedshiftDestinationProperties struct {
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html#cfn-appflow-flow-redshiftdestinationproperties-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // ErrorHandlingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html#cfn-appflow-flow-redshiftdestinationproperties-errorhandlingconfig
+ ErrorHandlingConfig *Flow_ErrorHandlingConfig `json:"ErrorHandlingConfig,omitempty"`
+
+ // IntermediateBucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html#cfn-appflow-flow-redshiftdestinationproperties-intermediatebucketname
+ IntermediateBucketName *types.Value `json:"IntermediateBucketName,omitempty"`
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-redshiftdestinationproperties.html#cfn-appflow-flow-redshiftdestinationproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_RedshiftDestinationProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.RedshiftDestinationProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_s3destinationproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_s3destinationproperties.go
new file mode 100644
index 0000000000..61b1dfcad0
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_s3destinationproperties.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_S3DestinationProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.S3DestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html
+type Flow_S3DestinationProperties struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html#cfn-appflow-flow-s3destinationproperties-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html#cfn-appflow-flow-s3destinationproperties-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // S3OutputFormatConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3destinationproperties.html#cfn-appflow-flow-s3destinationproperties-s3outputformatconfig
+ S3OutputFormatConfig *Flow_S3OutputFormatConfig `json:"S3OutputFormatConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_S3DestinationProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.S3DestinationProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_s3inputformatconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_s3inputformatconfig.go
new file mode 100644
index 0000000000..bdff4b9c82
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_s3inputformatconfig.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_S3InputFormatConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.S3InputFormatConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html
+type Flow_S3InputFormatConfig struct {
+
+ // S3InputFileType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3inputformatconfig.html#cfn-appflow-flow-s3inputformatconfig-s3inputfiletype
+ S3InputFileType *types.Value `json:"S3InputFileType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_S3InputFormatConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.S3InputFormatConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_s3outputformatconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_s3outputformatconfig.go
new file mode 100644
index 0000000000..99f5be618a
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_s3outputformatconfig.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_S3OutputFormatConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.S3OutputFormatConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html
+type Flow_S3OutputFormatConfig struct {
+
+ // AggregationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html#cfn-appflow-flow-s3outputformatconfig-aggregationconfig
+ AggregationConfig *Flow_AggregationConfig `json:"AggregationConfig,omitempty"`
+
+ // FileType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html#cfn-appflow-flow-s3outputformatconfig-filetype
+ FileType *types.Value `json:"FileType,omitempty"`
+
+ // PrefixConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3outputformatconfig.html#cfn-appflow-flow-s3outputformatconfig-prefixconfig
+ PrefixConfig *Flow_PrefixConfig `json:"PrefixConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_S3OutputFormatConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.S3OutputFormatConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_s3sourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_s3sourceproperties.go
new file mode 100644
index 0000000000..e069baff18
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_s3sourceproperties.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_S3SourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.S3SourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html
+type Flow_S3SourceProperties struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html#cfn-appflow-flow-s3sourceproperties-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html#cfn-appflow-flow-s3sourceproperties-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // S3InputFormatConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-s3sourceproperties.html#cfn-appflow-flow-s3sourceproperties-s3inputformatconfig
+ S3InputFormatConfig *Flow_S3InputFormatConfig `json:"S3InputFormatConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_S3SourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.S3SourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_salesforcedestinationproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_salesforcedestinationproperties.go
new file mode 100644
index 0000000000..6021eafc8a
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_salesforcedestinationproperties.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_SalesforceDestinationProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.SalesforceDestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html
+type Flow_SalesforceDestinationProperties struct {
+
+ // ErrorHandlingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-errorhandlingconfig
+ ErrorHandlingConfig *Flow_ErrorHandlingConfig `json:"ErrorHandlingConfig,omitempty"`
+
+ // IdFieldNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-idfieldnames
+ IdFieldNames *types.Value `json:"IdFieldNames,omitempty"`
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // WriteOperationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcedestinationproperties.html#cfn-appflow-flow-salesforcedestinationproperties-writeoperationtype
+ WriteOperationType *types.Value `json:"WriteOperationType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_SalesforceDestinationProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.SalesforceDestinationProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_salesforcesourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_salesforcesourceproperties.go
new file mode 100644
index 0000000000..e8a00a9a09
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_salesforcesourceproperties.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_SalesforceSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.SalesforceSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html
+type Flow_SalesforceSourceProperties struct {
+
+ // EnableDynamicFieldUpdate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html#cfn-appflow-flow-salesforcesourceproperties-enabledynamicfieldupdate
+ EnableDynamicFieldUpdate *types.Value `json:"EnableDynamicFieldUpdate,omitempty"`
+
+ // IncludeDeletedRecords AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html#cfn-appflow-flow-salesforcesourceproperties-includedeletedrecords
+ IncludeDeletedRecords *types.Value `json:"IncludeDeletedRecords,omitempty"`
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-salesforcesourceproperties.html#cfn-appflow-flow-salesforcesourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_SalesforceSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.SalesforceSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_sapodatasourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_sapodatasourceproperties.go
new file mode 100644
index 0000000000..ae31e07510
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_sapodatasourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_SAPODataSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.SAPODataSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html
+type Flow_SAPODataSourceProperties struct {
+
+ // ObjectPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sapodatasourceproperties.html#cfn-appflow-flow-sapodatasourceproperties-objectpath
+ ObjectPath *types.Value `json:"ObjectPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_SAPODataSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.SAPODataSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_scheduledtriggerproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_scheduledtriggerproperties.go
new file mode 100644
index 0000000000..8f44a179a0
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_scheduledtriggerproperties.go
@@ -0,0 +1,62 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_ScheduledTriggerProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.ScheduledTriggerProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html
+type Flow_ScheduledTriggerProperties struct {
+
+ // DataPullMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-datapullmode
+ DataPullMode *types.Value `json:"DataPullMode,omitempty"`
+
+ // ScheduleEndTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-scheduleendtime
+ ScheduleEndTime *types.Value `json:"ScheduleEndTime,omitempty"`
+
+ // ScheduleExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-scheduleexpression
+ ScheduleExpression *types.Value `json:"ScheduleExpression,omitempty"`
+
+ // ScheduleOffset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-scheduleoffset
+ ScheduleOffset *types.Value `json:"ScheduleOffset,omitempty"`
+
+ // ScheduleStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-schedulestarttime
+ ScheduleStartTime *types.Value `json:"ScheduleStartTime,omitempty"`
+
+ // TimeZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-scheduledtriggerproperties.html#cfn-appflow-flow-scheduledtriggerproperties-timezone
+ TimeZone *types.Value `json:"TimeZone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_ScheduledTriggerProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.ScheduledTriggerProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_servicenowsourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_servicenowsourceproperties.go
new file mode 100644
index 0000000000..931e0179d6
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_servicenowsourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_ServiceNowSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.ServiceNowSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-servicenowsourceproperties.html
+type Flow_ServiceNowSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-servicenowsourceproperties.html#cfn-appflow-flow-servicenowsourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_ServiceNowSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.ServiceNowSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_singularsourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_singularsourceproperties.go
new file mode 100644
index 0000000000..1db7cb6ca2
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_singularsourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_SingularSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.SingularSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-singularsourceproperties.html
+type Flow_SingularSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-singularsourceproperties.html#cfn-appflow-flow-singularsourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_SingularSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.SingularSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_slacksourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_slacksourceproperties.go
new file mode 100644
index 0000000000..674138457a
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_slacksourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_SlackSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.SlackSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-slacksourceproperties.html
+type Flow_SlackSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-slacksourceproperties.html#cfn-appflow-flow-slacksourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_SlackSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.SlackSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_snowflakedestinationproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_snowflakedestinationproperties.go
new file mode 100644
index 0000000000..e31537b43f
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_snowflakedestinationproperties.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_SnowflakeDestinationProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.SnowflakeDestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html
+type Flow_SnowflakeDestinationProperties struct {
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html#cfn-appflow-flow-snowflakedestinationproperties-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // ErrorHandlingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html#cfn-appflow-flow-snowflakedestinationproperties-errorhandlingconfig
+ ErrorHandlingConfig *Flow_ErrorHandlingConfig `json:"ErrorHandlingConfig,omitempty"`
+
+ // IntermediateBucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html#cfn-appflow-flow-snowflakedestinationproperties-intermediatebucketname
+ IntermediateBucketName *types.Value `json:"IntermediateBucketName,omitempty"`
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-snowflakedestinationproperties.html#cfn-appflow-flow-snowflakedestinationproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_SnowflakeDestinationProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.SnowflakeDestinationProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_sourceconnectorproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_sourceconnectorproperties.go
new file mode 100644
index 0000000000..c9ab0cdf65
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_sourceconnectorproperties.go
@@ -0,0 +1,105 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_SourceConnectorProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.SourceConnectorProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html
+type Flow_SourceConnectorProperties struct {
+
+ // Amplitude AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-amplitude
+ Amplitude *Flow_AmplitudeSourceProperties `json:"Amplitude,omitempty"`
+
+ // Datadog AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-datadog
+ Datadog *Flow_DatadogSourceProperties `json:"Datadog,omitempty"`
+
+ // Dynatrace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-dynatrace
+ Dynatrace *Flow_DynatraceSourceProperties `json:"Dynatrace,omitempty"`
+
+ // GoogleAnalytics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-googleanalytics
+ GoogleAnalytics *Flow_GoogleAnalyticsSourceProperties `json:"GoogleAnalytics,omitempty"`
+
+ // InforNexus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-infornexus
+ InforNexus *Flow_InforNexusSourceProperties `json:"InforNexus,omitempty"`
+
+ // Marketo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-marketo
+ Marketo *Flow_MarketoSourceProperties `json:"Marketo,omitempty"`
+
+ // S3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-s3
+ S3 *Flow_S3SourceProperties `json:"S3,omitempty"`
+
+ // SAPOData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-sapodata
+ SAPOData *Flow_SAPODataSourceProperties `json:"SAPOData,omitempty"`
+
+ // Salesforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-salesforce
+ Salesforce *Flow_SalesforceSourceProperties `json:"Salesforce,omitempty"`
+
+ // ServiceNow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-servicenow
+ ServiceNow *Flow_ServiceNowSourceProperties `json:"ServiceNow,omitempty"`
+
+ // Singular AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-singular
+ Singular *Flow_SingularSourceProperties `json:"Singular,omitempty"`
+
+ // Slack AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-slack
+ Slack *Flow_SlackSourceProperties `json:"Slack,omitempty"`
+
+ // Trendmicro AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-trendmicro
+ Trendmicro *Flow_TrendmicroSourceProperties `json:"Trendmicro,omitempty"`
+
+ // Veeva AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-veeva
+ Veeva *Flow_VeevaSourceProperties `json:"Veeva,omitempty"`
+
+ // Zendesk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceconnectorproperties.html#cfn-appflow-flow-sourceconnectorproperties-zendesk
+ Zendesk *Flow_ZendeskSourceProperties `json:"Zendesk,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_SourceConnectorProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.SourceConnectorProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_sourceflowconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_sourceflowconfig.go
new file mode 100644
index 0000000000..b957d1eaa4
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_sourceflowconfig.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_SourceFlowConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.SourceFlowConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html
+type Flow_SourceFlowConfig struct {
+
+ // ConnectorProfileName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-connectorprofilename
+ ConnectorProfileName *types.Value `json:"ConnectorProfileName,omitempty"`
+
+ // ConnectorType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-connectortype
+ ConnectorType *types.Value `json:"ConnectorType,omitempty"`
+
+ // IncrementalPullConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-incrementalpullconfig
+ IncrementalPullConfig *Flow_IncrementalPullConfig `json:"IncrementalPullConfig,omitempty"`
+
+ // SourceConnectorProperties AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-sourceflowconfig.html#cfn-appflow-flow-sourceflowconfig-sourceconnectorproperties
+ SourceConnectorProperties *Flow_SourceConnectorProperties `json:"SourceConnectorProperties,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_SourceFlowConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.SourceFlowConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_task.go b/goformation/cloudformation/appflow/aws-appflow-flow_task.go
new file mode 100644
index 0000000000..7984f78937
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_task.go
@@ -0,0 +1,57 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_Task AWS CloudFormation Resource (AWS::AppFlow::Flow.Task)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html
+type Flow_Task struct {
+
+ // ConnectorOperator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-connectoroperator
+ ConnectorOperator *Flow_ConnectorOperator `json:"ConnectorOperator,omitempty"`
+
+ // DestinationField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-destinationfield
+ DestinationField *types.Value `json:"DestinationField,omitempty"`
+
+ // SourceFields AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-sourcefields
+ SourceFields *types.Value `json:"SourceFields,omitempty"`
+
+ // TaskProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-taskproperties
+ TaskProperties []Flow_TaskPropertiesObject `json:"TaskProperties,omitempty"`
+
+ // TaskType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-task.html#cfn-appflow-flow-task-tasktype
+ TaskType *types.Value `json:"TaskType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_Task) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.Task"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_taskpropertiesobject.go b/goformation/cloudformation/appflow/aws-appflow-flow_taskpropertiesobject.go
new file mode 100644
index 0000000000..e007f85345
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_taskpropertiesobject.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_TaskPropertiesObject AWS CloudFormation Resource (AWS::AppFlow::Flow.TaskPropertiesObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html
+type Flow_TaskPropertiesObject struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html#cfn-appflow-flow-taskpropertiesobject-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-taskpropertiesobject.html#cfn-appflow-flow-taskpropertiesobject-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_TaskPropertiesObject) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.TaskPropertiesObject"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_trendmicrosourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_trendmicrosourceproperties.go
new file mode 100644
index 0000000000..db75f0c7ef
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_trendmicrosourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_TrendmicroSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.TrendmicroSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-trendmicrosourceproperties.html
+type Flow_TrendmicroSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-trendmicrosourceproperties.html#cfn-appflow-flow-trendmicrosourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_TrendmicroSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.TrendmicroSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_triggerconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_triggerconfig.go
new file mode 100644
index 0000000000..1afac80932
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_triggerconfig.go
@@ -0,0 +1,42 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_TriggerConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.TriggerConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html
+type Flow_TriggerConfig struct {
+
+ // TriggerProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html#cfn-appflow-flow-triggerconfig-triggerproperties
+ TriggerProperties *Flow_ScheduledTriggerProperties `json:"TriggerProperties,omitempty"`
+
+ // TriggerType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-triggerconfig.html#cfn-appflow-flow-triggerconfig-triggertype
+ TriggerType *types.Value `json:"TriggerType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_TriggerConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.TriggerConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_upsolverdestinationproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_upsolverdestinationproperties.go
new file mode 100644
index 0000000000..ad180348f6
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_upsolverdestinationproperties.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_UpsolverDestinationProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.UpsolverDestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html
+type Flow_UpsolverDestinationProperties struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html#cfn-appflow-flow-upsolverdestinationproperties-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html#cfn-appflow-flow-upsolverdestinationproperties-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // S3OutputFormatConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolverdestinationproperties.html#cfn-appflow-flow-upsolverdestinationproperties-s3outputformatconfig
+ S3OutputFormatConfig *Flow_UpsolverS3OutputFormatConfig `json:"S3OutputFormatConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_UpsolverDestinationProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.UpsolverDestinationProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_upsolvers3outputformatconfig.go b/goformation/cloudformation/appflow/aws-appflow-flow_upsolvers3outputformatconfig.go
new file mode 100644
index 0000000000..f48371584b
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_upsolvers3outputformatconfig.go
@@ -0,0 +1,47 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_UpsolverS3OutputFormatConfig AWS CloudFormation Resource (AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html
+type Flow_UpsolverS3OutputFormatConfig struct {
+
+ // AggregationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html#cfn-appflow-flow-upsolvers3outputformatconfig-aggregationconfig
+ AggregationConfig *Flow_AggregationConfig `json:"AggregationConfig,omitempty"`
+
+ // FileType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html#cfn-appflow-flow-upsolvers3outputformatconfig-filetype
+ FileType *types.Value `json:"FileType,omitempty"`
+
+ // PrefixConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-upsolvers3outputformatconfig.html#cfn-appflow-flow-upsolvers3outputformatconfig-prefixconfig
+ PrefixConfig *Flow_PrefixConfig `json:"PrefixConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_UpsolverS3OutputFormatConfig) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_veevasourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_veevasourceproperties.go
new file mode 100644
index 0000000000..0fbe0ef50a
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_veevasourceproperties.go
@@ -0,0 +1,57 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_VeevaSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.VeevaSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html
+type Flow_VeevaSourceProperties struct {
+
+ // DocumentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-documenttype
+ DocumentType *types.Value `json:"DocumentType,omitempty"`
+
+ // IncludeAllVersions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-includeallversions
+ IncludeAllVersions *types.Value `json:"IncludeAllVersions,omitempty"`
+
+ // IncludeRenditions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-includerenditions
+ IncludeRenditions *types.Value `json:"IncludeRenditions,omitempty"`
+
+ // IncludeSourceFiles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-includesourcefiles
+ IncludeSourceFiles *types.Value `json:"IncludeSourceFiles,omitempty"`
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-veevasourceproperties.html#cfn-appflow-flow-veevasourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_VeevaSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.VeevaSourceProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_zendeskdestinationproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_zendeskdestinationproperties.go
new file mode 100644
index 0000000000..1000e560f8
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_zendeskdestinationproperties.go
@@ -0,0 +1,52 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_ZendeskDestinationProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.ZendeskDestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html
+type Flow_ZendeskDestinationProperties struct {
+
+ // ErrorHandlingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html#cfn-appflow-flow-zendeskdestinationproperties-errorhandlingconfig
+ ErrorHandlingConfig *Flow_ErrorHandlingConfig `json:"ErrorHandlingConfig,omitempty"`
+
+ // IdFieldNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html#cfn-appflow-flow-zendeskdestinationproperties-idfieldnames
+ IdFieldNames *types.Value `json:"IdFieldNames,omitempty"`
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html#cfn-appflow-flow-zendeskdestinationproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // WriteOperationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendeskdestinationproperties.html#cfn-appflow-flow-zendeskdestinationproperties-writeoperationtype
+ WriteOperationType *types.Value `json:"WriteOperationType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_ZendeskDestinationProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.ZendeskDestinationProperties"
+}
diff --git a/goformation/cloudformation/appflow/aws-appflow-flow_zendesksourceproperties.go b/goformation/cloudformation/appflow/aws-appflow-flow_zendesksourceproperties.go
new file mode 100644
index 0000000000..06d7b90373
--- /dev/null
+++ b/goformation/cloudformation/appflow/aws-appflow-flow_zendesksourceproperties.go
@@ -0,0 +1,37 @@
+package appflow
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_ZendeskSourceProperties AWS CloudFormation Resource (AWS::AppFlow::Flow.ZendeskSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendesksourceproperties.html
+type Flow_ZendeskSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow-flow-zendesksourceproperties.html#cfn-appflow-flow-zendesksourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_ZendeskSourceProperties) AWSCloudFormationType() string {
+ return "AWS::AppFlow::Flow.ZendeskSourceProperties"
+}
diff --git a/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration.go b/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration.go
new file mode 100644
index 0000000000..11e2bb1142
--- /dev/null
+++ b/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration.go
@@ -0,0 +1,129 @@
+package appintegrations
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventIntegration AWS CloudFormation Resource (AWS::AppIntegrations::EventIntegration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html
+type EventIntegration struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html#cfn-appintegrations-eventintegration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EventBridgeBus AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html#cfn-appintegrations-eventintegration-eventbridgebus
+ EventBridgeBus *types.Value `json:"EventBridgeBus,omitempty"`
+
+ // EventFilter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html#cfn-appintegrations-eventintegration-eventfilter
+ EventFilter *EventIntegration_EventFilter `json:"EventFilter,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html#cfn-appintegrations-eventintegration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appintegrations-eventintegration.html#cfn-appintegrations-eventintegration-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventIntegration) AWSCloudFormationType() string {
+ return "AWS::AppIntegrations::EventIntegration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EventIntegration) MarshalJSON() ([]byte, error) {
+ type Properties EventIntegration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EventIntegration) UnmarshalJSON(b []byte) error {
+ type Properties EventIntegration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EventIntegration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_eventfilter.go b/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_eventfilter.go
new file mode 100644
index 0000000000..1db1139bef
--- /dev/null
+++ b/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_eventfilter.go
@@ -0,0 +1,37 @@
+package appintegrations
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventIntegration_EventFilter AWS CloudFormation Resource (AWS::AppIntegrations::EventIntegration.EventFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventfilter.html
+type EventIntegration_EventFilter struct {
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventfilter.html#cfn-appintegrations-eventintegration-eventfilter-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventIntegration_EventFilter) AWSCloudFormationType() string {
+ return "AWS::AppIntegrations::EventIntegration.EventFilter"
+}
diff --git a/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_eventintegrationassociation.go b/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_eventintegrationassociation.go
new file mode 100644
index 0000000000..ca0f995182
--- /dev/null
+++ b/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_eventintegrationassociation.go
@@ -0,0 +1,57 @@
+package appintegrations
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventIntegration_EventIntegrationAssociation AWS CloudFormation Resource (AWS::AppIntegrations::EventIntegration.EventIntegrationAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventintegrationassociation.html
+type EventIntegration_EventIntegrationAssociation struct {
+
+ // ClientAssociationMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventintegrationassociation.html#cfn-appintegrations-eventintegration-eventintegrationassociation-clientassociationmetadata
+ ClientAssociationMetadata []EventIntegration_Metadata `json:"ClientAssociationMetadata,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventintegrationassociation.html#cfn-appintegrations-eventintegration-eventintegrationassociation-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // EventBridgeRuleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventintegrationassociation.html#cfn-appintegrations-eventintegration-eventintegrationassociation-eventbridgerulename
+ EventBridgeRuleName *types.Value `json:"EventBridgeRuleName,omitempty"`
+
+ // EventIntegrationAssociationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventintegrationassociation.html#cfn-appintegrations-eventintegration-eventintegrationassociation-eventintegrationassociationarn
+ EventIntegrationAssociationArn *types.Value `json:"EventIntegrationAssociationArn,omitempty"`
+
+ // EventIntegrationAssociationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-eventintegrationassociation.html#cfn-appintegrations-eventintegration-eventintegrationassociation-eventintegrationassociationid
+ EventIntegrationAssociationId *types.Value `json:"EventIntegrationAssociationId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventIntegration_EventIntegrationAssociation) AWSCloudFormationType() string {
+ return "AWS::AppIntegrations::EventIntegration.EventIntegrationAssociation"
+}
diff --git a/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_metadata.go b/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_metadata.go
new file mode 100644
index 0000000000..953e3a908d
--- /dev/null
+++ b/goformation/cloudformation/appintegrations/aws-appintegrations-eventintegration_metadata.go
@@ -0,0 +1,42 @@
+package appintegrations
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventIntegration_Metadata AWS CloudFormation Resource (AWS::AppIntegrations::EventIntegration.Metadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-metadata.html
+type EventIntegration_Metadata struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-metadata.html#cfn-appintegrations-eventintegration-metadata-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appintegrations-eventintegration-metadata.html#cfn-appintegrations-eventintegration-metadata-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventIntegration_Metadata) AWSCloudFormationType() string {
+ return "AWS::AppIntegrations::EventIntegration.Metadata"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget.go
new file mode 100644
index 0000000000..750ff94c87
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget.go
@@ -0,0 +1,143 @@
+package applicationautoscaling
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalableTarget AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalableTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html
+type ScalableTarget struct {
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity"`
+
+ // MinCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-mincapacity
+ MinCapacity *types.Value `json:"MinCapacity"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // ScalableDimension AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-scalabledimension
+ ScalableDimension *types.Value `json:"ScalableDimension,omitempty"`
+
+ // ScheduledActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-scheduledactions
+ ScheduledActions []ScalableTarget_ScheduledAction `json:"ScheduledActions,omitempty"`
+
+ // ServiceNamespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-servicenamespace
+ ServiceNamespace *types.Value `json:"ServiceNamespace,omitempty"`
+
+ // SuspendedState AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html#cfn-applicationautoscaling-scalabletarget-suspendedstate
+ SuspendedState *ScalableTarget_SuspendedState `json:"SuspendedState,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalableTarget) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalableTarget"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ScalableTarget) MarshalJSON() ([]byte, error) {
+ type Properties ScalableTarget
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ScalableTarget) UnmarshalJSON(b []byte) error {
+ type Properties ScalableTarget
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ScalableTarget(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go
new file mode 100644
index 0000000000..71ec013fa1
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_scalabletargetaction.go
@@ -0,0 +1,42 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalableTarget_ScalableTargetAction AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html
+type ScalableTarget_ScalableTargetAction struct {
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html#cfn-applicationautoscaling-scalabletarget-scalabletargetaction-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity,omitempty"`
+
+ // MinCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scalabletargetaction.html#cfn-applicationautoscaling-scalabletarget-scalabletargetaction-mincapacity
+ MinCapacity *types.Value `json:"MinCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalableTarget_ScalableTargetAction) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_scheduledaction.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_scheduledaction.go
new file mode 100644
index 0000000000..0c040e4e76
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_scheduledaction.go
@@ -0,0 +1,62 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalableTarget_ScheduledAction AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html
+type ScalableTarget_ScheduledAction struct {
+
+ // EndTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-endtime
+ EndTime string `json:"EndTime,omitempty"`
+
+ // ScalableTargetAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-scalabletargetaction
+ ScalableTargetAction *ScalableTarget_ScalableTargetAction `json:"ScalableTargetAction,omitempty"`
+
+ // Schedule AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-schedule
+ Schedule *types.Value `json:"Schedule,omitempty"`
+
+ // ScheduledActionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-scheduledactionname
+ ScheduledActionName *types.Value `json:"ScheduledActionName,omitempty"`
+
+ // StartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-starttime
+ StartTime string `json:"StartTime,omitempty"`
+
+ // Timezone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-scheduledaction.html#cfn-applicationautoscaling-scalabletarget-scheduledaction-timezone
+ Timezone *types.Value `json:"Timezone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalableTarget_ScheduledAction) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_suspendedstate.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_suspendedstate.go
new file mode 100644
index 0000000000..a432bf3625
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalabletarget_suspendedstate.go
@@ -0,0 +1,47 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalableTarget_SuspendedState AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-suspendedstate.html
+type ScalableTarget_SuspendedState struct {
+
+ // DynamicScalingInSuspended AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-suspendedstate.html#cfn-applicationautoscaling-scalabletarget-suspendedstate-dynamicscalinginsuspended
+ DynamicScalingInSuspended *types.Value `json:"DynamicScalingInSuspended,omitempty"`
+
+ // DynamicScalingOutSuspended AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-suspendedstate.html#cfn-applicationautoscaling-scalabletarget-suspendedstate-dynamicscalingoutsuspended
+ DynamicScalingOutSuspended *types.Value `json:"DynamicScalingOutSuspended,omitempty"`
+
+ // ScheduledScalingSuspended AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalabletarget-suspendedstate.html#cfn-applicationautoscaling-scalabletarget-suspendedstate-scheduledscalingsuspended
+ ScheduledScalingSuspended *types.Value `json:"ScheduledScalingSuspended,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalableTarget_SuspendedState) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy.go
new file mode 100644
index 0000000000..a8bc44b0c0
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy.go
@@ -0,0 +1,143 @@
+package applicationautoscaling
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html
+type ScalingPolicy struct {
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // PolicyType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-policytype
+ PolicyType *types.Value `json:"PolicyType,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // ScalableDimension AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-scalabledimension
+ ScalableDimension *types.Value `json:"ScalableDimension,omitempty"`
+
+ // ScalingTargetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-scalingtargetid
+ ScalingTargetId *types.Value `json:"ScalingTargetId,omitempty"`
+
+ // ServiceNamespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-servicenamespace
+ ServiceNamespace *types.Value `json:"ServiceNamespace,omitempty"`
+
+ // StepScalingPolicyConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration
+ StepScalingPolicyConfiguration *ScalingPolicy_StepScalingPolicyConfiguration `json:"StepScalingPolicyConfiguration,omitempty"`
+
+ // TargetTrackingScalingPolicyConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration
+ TargetTrackingScalingPolicyConfiguration *ScalingPolicy_TargetTrackingScalingPolicyConfiguration `json:"TargetTrackingScalingPolicyConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalingPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ScalingPolicy) MarshalJSON() ([]byte, error) {
+ type Properties ScalingPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ScalingPolicy) UnmarshalJSON(b []byte) error {
+ type Properties ScalingPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ScalingPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go
new file mode 100644
index 0000000000..1b0c447d44
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_customizedmetricspecification.go
@@ -0,0 +1,57 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_CustomizedMetricSpecification AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html
+type ScalingPolicy_CustomizedMetricSpecification struct {
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-dimensions
+ Dimensions []ScalingPolicy_MetricDimension `json:"Dimensions,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // Statistic AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-customizedmetricspecification-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_CustomizedMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_metricdimension.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_metricdimension.go
new file mode 100644
index 0000000000..b80e86d149
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_metricdimension.go
@@ -0,0 +1,42 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_MetricDimension AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html
+type ScalingPolicy_MetricDimension struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-metricdimension.html#cfn-applicationautoscaling-scalingpolicy-metricdimension-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_MetricDimension) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go
new file mode 100644
index 0000000000..51cda4b1b2
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_predefinedmetricspecification.go
@@ -0,0 +1,42 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_PredefinedMetricSpecification AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html
+type ScalingPolicy_PredefinedMetricSpecification struct {
+
+ // PredefinedMetricType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-predefinedmetrictype
+ PredefinedMetricType *types.Value `json:"PredefinedMetricType,omitempty"`
+
+ // ResourceLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-applicationautoscaling-scalingpolicy-predefinedmetricspecification-resourcelabel
+ ResourceLabel *types.Value `json:"ResourceLabel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_PredefinedMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_stepadjustment.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_stepadjustment.go
new file mode 100644
index 0000000000..8943af36cf
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_stepadjustment.go
@@ -0,0 +1,47 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_StepAdjustment AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html
+type ScalingPolicy_StepAdjustment struct {
+
+ // MetricIntervalLowerBound AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervallowerbound
+ MetricIntervalLowerBound *types.Value `json:"MetricIntervalLowerBound,omitempty"`
+
+ // MetricIntervalUpperBound AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervalupperbound
+ MetricIntervalUpperBound *types.Value `json:"MetricIntervalUpperBound,omitempty"`
+
+ // ScalingAdjustment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-scalingadjustment
+ ScalingAdjustment *types.Value `json:"ScalingAdjustment"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_StepAdjustment) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go
new file mode 100644
index 0000000000..5fe6aa8aa4
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_stepscalingpolicyconfiguration.go
@@ -0,0 +1,57 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_StepScalingPolicyConfiguration AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html
+type ScalingPolicy_StepScalingPolicyConfiguration struct {
+
+ // AdjustmentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-adjustmenttype
+ AdjustmentType *types.Value `json:"AdjustmentType,omitempty"`
+
+ // Cooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-cooldown
+ Cooldown *types.Value `json:"Cooldown,omitempty"`
+
+ // MetricAggregationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-metricaggregationtype
+ MetricAggregationType *types.Value `json:"MetricAggregationType,omitempty"`
+
+ // MinAdjustmentMagnitude AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-minadjustmentmagnitude
+ MinAdjustmentMagnitude *types.Value `json:"MinAdjustmentMagnitude,omitempty"`
+
+ // StepAdjustments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustments
+ StepAdjustments []ScalingPolicy_StepAdjustment `json:"StepAdjustments,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_StepScalingPolicyConfiguration) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration"
+}
diff --git a/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go
new file mode 100644
index 0000000000..d45e0af55c
--- /dev/null
+++ b/goformation/cloudformation/applicationautoscaling/aws-applicationautoscaling-scalingpolicy_targettrackingscalingpolicyconfiguration.go
@@ -0,0 +1,62 @@
+package applicationautoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_TargetTrackingScalingPolicyConfiguration AWS CloudFormation Resource (AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html
+type ScalingPolicy_TargetTrackingScalingPolicyConfiguration struct {
+
+ // CustomizedMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-customizedmetricspecification
+ CustomizedMetricSpecification *ScalingPolicy_CustomizedMetricSpecification `json:"CustomizedMetricSpecification,omitempty"`
+
+ // DisableScaleIn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-disablescalein
+ DisableScaleIn *types.Value `json:"DisableScaleIn,omitempty"`
+
+ // PredefinedMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-predefinedmetricspecification
+ PredefinedMetricSpecification *ScalingPolicy_PredefinedMetricSpecification `json:"PredefinedMetricSpecification,omitempty"`
+
+ // ScaleInCooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-scaleincooldown
+ ScaleInCooldown *types.Value `json:"ScaleInCooldown,omitempty"`
+
+ // ScaleOutCooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-scaleoutcooldown
+ ScaleOutCooldown *types.Value `json:"ScaleOutCooldown,omitempty"`
+
+ // TargetValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html#cfn-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration-targetvalue
+ TargetValue *types.Value `json:"TargetValue"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_TargetTrackingScalingPolicyConfiguration) AWSCloudFormationType() string {
+ return "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application.go
new file mode 100644
index 0000000000..ecfd2bb545
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application.go
@@ -0,0 +1,149 @@
+package applicationinsights
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application AWS CloudFormation Resource (AWS::ApplicationInsights::Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html
+type Application struct {
+
+ // AutoConfigurationEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-autoconfigurationenabled
+ AutoConfigurationEnabled *types.Value `json:"AutoConfigurationEnabled,omitempty"`
+
+ // CWEMonitorEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-cwemonitorenabled
+ CWEMonitorEnabled *types.Value `json:"CWEMonitorEnabled,omitempty"`
+
+ // ComponentMonitoringSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-componentmonitoringsettings
+ ComponentMonitoringSettings []Application_ComponentMonitoringSetting `json:"ComponentMonitoringSettings,omitempty"`
+
+ // CustomComponents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-customcomponents
+ CustomComponents []Application_CustomComponent `json:"CustomComponents,omitempty"`
+
+ // LogPatternSets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-logpatternsets
+ LogPatternSets []Application_LogPatternSet `json:"LogPatternSets,omitempty"`
+
+ // OpsCenterEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-opscenterenabled
+ OpsCenterEnabled *types.Value `json:"OpsCenterEnabled,omitempty"`
+
+ // OpsItemSNSTopicArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-opsitemsnstopicarn
+ OpsItemSNSTopicArn *types.Value `json:"OpsItemSNSTopicArn,omitempty"`
+
+ // ResourceGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-resourcegroupname
+ ResourceGroupName *types.Value `json:"ResourceGroupName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationinsights-application.html#cfn-applicationinsights-application-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Application) MarshalJSON() ([]byte, error) {
+ type Properties Application
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Application) UnmarshalJSON(b []byte) error {
+ type Properties Application
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Application(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_alarm.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_alarm.go
new file mode 100644
index 0000000000..a0eb66d278
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_alarm.go
@@ -0,0 +1,42 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_Alarm AWS CloudFormation Resource (AWS::ApplicationInsights::Application.Alarm)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarm.html
+type Application_Alarm struct {
+
+ // AlarmName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarm.html#cfn-applicationinsights-application-alarm-alarmname
+ AlarmName *types.Value `json:"AlarmName,omitempty"`
+
+ // Severity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarm.html#cfn-applicationinsights-application-alarm-severity
+ Severity *types.Value `json:"Severity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_Alarm) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.Alarm"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_alarmmetric.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_alarmmetric.go
new file mode 100644
index 0000000000..7f9cb7dcc0
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_alarmmetric.go
@@ -0,0 +1,37 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_AlarmMetric AWS CloudFormation Resource (AWS::ApplicationInsights::Application.AlarmMetric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarmmetric.html
+type Application_AlarmMetric struct {
+
+ // AlarmMetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-alarmmetric.html#cfn-applicationinsights-application-alarmmetric-alarmmetricname
+ AlarmMetricName *types.Value `json:"AlarmMetricName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_AlarmMetric) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.AlarmMetric"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_componentconfiguration.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_componentconfiguration.go
new file mode 100644
index 0000000000..91a687c6df
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_componentconfiguration.go
@@ -0,0 +1,40 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ComponentConfiguration AWS CloudFormation Resource (AWS::ApplicationInsights::Application.ComponentConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html
+type Application_ComponentConfiguration struct {
+
+ // ConfigurationDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html#cfn-applicationinsights-application-componentconfiguration-configurationdetails
+ ConfigurationDetails *Application_ConfigurationDetails `json:"ConfigurationDetails,omitempty"`
+
+ // SubComponentTypeConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentconfiguration.html#cfn-applicationinsights-application-componentconfiguration-subcomponenttypeconfigurations
+ SubComponentTypeConfigurations []Application_SubComponentTypeConfiguration `json:"SubComponentTypeConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ComponentConfiguration) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.ComponentConfiguration"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_componentmonitoringsetting.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_componentmonitoringsetting.go
new file mode 100644
index 0000000000..baf6307d03
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_componentmonitoringsetting.go
@@ -0,0 +1,62 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ComponentMonitoringSetting AWS CloudFormation Resource (AWS::ApplicationInsights::Application.ComponentMonitoringSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html
+type Application_ComponentMonitoringSetting struct {
+
+ // ComponentARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentarn
+ ComponentARN *types.Value `json:"ComponentARN,omitempty"`
+
+ // ComponentConfigurationMode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentconfigurationmode
+ ComponentConfigurationMode *types.Value `json:"ComponentConfigurationMode,omitempty"`
+
+ // ComponentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-componentname
+ ComponentName *types.Value `json:"ComponentName,omitempty"`
+
+ // CustomComponentConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-customcomponentconfiguration
+ CustomComponentConfiguration *Application_ComponentConfiguration `json:"CustomComponentConfiguration,omitempty"`
+
+ // DefaultOverwriteComponentConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-defaultoverwritecomponentconfiguration
+ DefaultOverwriteComponentConfiguration *Application_ComponentConfiguration `json:"DefaultOverwriteComponentConfiguration,omitempty"`
+
+ // Tier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-componentmonitoringsetting.html#cfn-applicationinsights-application-componentmonitoringsetting-tier
+ Tier *types.Value `json:"Tier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ComponentMonitoringSetting) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.ComponentMonitoringSetting"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_configurationdetails.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_configurationdetails.go
new file mode 100644
index 0000000000..c06a485795
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_configurationdetails.go
@@ -0,0 +1,55 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ConfigurationDetails AWS CloudFormation Resource (AWS::ApplicationInsights::Application.ConfigurationDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html
+type Application_ConfigurationDetails struct {
+
+ // AlarmMetrics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html#cfn-applicationinsights-application-configurationdetails-alarmmetrics
+ AlarmMetrics []Application_AlarmMetric `json:"AlarmMetrics,omitempty"`
+
+ // Alarms AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html#cfn-applicationinsights-application-configurationdetails-alarms
+ Alarms []Application_Alarm `json:"Alarms,omitempty"`
+
+ // JMXPrometheusExporter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html#cfn-applicationinsights-application-configurationdetails-jmxprometheusexporter
+ JMXPrometheusExporter *Application_JMXPrometheusExporter `json:"JMXPrometheusExporter,omitempty"`
+
+ // Logs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html#cfn-applicationinsights-application-configurationdetails-logs
+ Logs []Application_Log `json:"Logs,omitempty"`
+
+ // WindowsEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-configurationdetails.html#cfn-applicationinsights-application-configurationdetails-windowsevents
+ WindowsEvents []Application_WindowsEvent `json:"WindowsEvents,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ConfigurationDetails) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.ConfigurationDetails"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_customcomponent.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_customcomponent.go
new file mode 100644
index 0000000000..793cb1afa8
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_customcomponent.go
@@ -0,0 +1,42 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_CustomComponent AWS CloudFormation Resource (AWS::ApplicationInsights::Application.CustomComponent)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-customcomponent.html
+type Application_CustomComponent struct {
+
+ // ComponentName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-customcomponent.html#cfn-applicationinsights-application-customcomponent-componentname
+ ComponentName *types.Value `json:"ComponentName,omitempty"`
+
+ // ResourceList AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-customcomponent.html#cfn-applicationinsights-application-customcomponent-resourcelist
+ ResourceList *types.Value `json:"ResourceList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_CustomComponent) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.CustomComponent"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_jmxprometheusexporter.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_jmxprometheusexporter.go
new file mode 100644
index 0000000000..c2be1f0e7b
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_jmxprometheusexporter.go
@@ -0,0 +1,47 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_JMXPrometheusExporter AWS CloudFormation Resource (AWS::ApplicationInsights::Application.JMXPrometheusExporter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-jmxprometheusexporter.html
+type Application_JMXPrometheusExporter struct {
+
+ // HostPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-jmxprometheusexporter.html#cfn-applicationinsights-application-jmxprometheusexporter-hostport
+ HostPort *types.Value `json:"HostPort,omitempty"`
+
+ // JMXURL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-jmxprometheusexporter.html#cfn-applicationinsights-application-jmxprometheusexporter-jmxurl
+ JMXURL *types.Value `json:"JMXURL,omitempty"`
+
+ // PrometheusPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-jmxprometheusexporter.html#cfn-applicationinsights-application-jmxprometheusexporter-prometheusport
+ PrometheusPort *types.Value `json:"PrometheusPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_JMXPrometheusExporter) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.JMXPrometheusExporter"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_log.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_log.go
new file mode 100644
index 0000000000..37b3500d48
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_log.go
@@ -0,0 +1,57 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_Log AWS CloudFormation Resource (AWS::ApplicationInsights::Application.Log)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html
+type Application_Log struct {
+
+ // Encoding AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html#cfn-applicationinsights-application-log-encoding
+ Encoding *types.Value `json:"Encoding,omitempty"`
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html#cfn-applicationinsights-application-log-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // LogPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html#cfn-applicationinsights-application-log-logpath
+ LogPath *types.Value `json:"LogPath,omitempty"`
+
+ // LogType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html#cfn-applicationinsights-application-log-logtype
+ LogType *types.Value `json:"LogType,omitempty"`
+
+ // PatternSet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-log.html#cfn-applicationinsights-application-log-patternset
+ PatternSet *types.Value `json:"PatternSet,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_Log) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.Log"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_logpattern.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_logpattern.go
new file mode 100644
index 0000000000..75eb10721b
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_logpattern.go
@@ -0,0 +1,47 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_LogPattern AWS CloudFormation Resource (AWS::ApplicationInsights::Application.LogPattern)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpattern.html
+type Application_LogPattern struct {
+
+ // Pattern AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpattern.html#cfn-applicationinsights-application-logpattern-pattern
+ Pattern *types.Value `json:"Pattern,omitempty"`
+
+ // PatternName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpattern.html#cfn-applicationinsights-application-logpattern-patternname
+ PatternName *types.Value `json:"PatternName,omitempty"`
+
+ // Rank AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpattern.html#cfn-applicationinsights-application-logpattern-rank
+ Rank *types.Value `json:"Rank"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_LogPattern) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.LogPattern"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_logpatternset.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_logpatternset.go
new file mode 100644
index 0000000000..f06c62316e
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_logpatternset.go
@@ -0,0 +1,42 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_LogPatternSet AWS CloudFormation Resource (AWS::ApplicationInsights::Application.LogPatternSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpatternset.html
+type Application_LogPatternSet struct {
+
+ // LogPatterns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpatternset.html#cfn-applicationinsights-application-logpatternset-logpatterns
+ LogPatterns []Application_LogPattern `json:"LogPatterns,omitempty"`
+
+ // PatternSetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-logpatternset.html#cfn-applicationinsights-application-logpatternset-patternsetname
+ PatternSetName *types.Value `json:"PatternSetName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_LogPatternSet) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.LogPatternSet"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_subcomponentconfigurationdetails.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_subcomponentconfigurationdetails.go
new file mode 100644
index 0000000000..5e0ae5cdaf
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_subcomponentconfigurationdetails.go
@@ -0,0 +1,45 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_SubComponentConfigurationDetails AWS CloudFormation Resource (AWS::ApplicationInsights::Application.SubComponentConfigurationDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html
+type Application_SubComponentConfigurationDetails struct {
+
+ // AlarmMetrics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-alarmmetrics
+ AlarmMetrics []Application_AlarmMetric `json:"AlarmMetrics,omitempty"`
+
+ // Logs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-logs
+ Logs []Application_Log `json:"Logs,omitempty"`
+
+ // WindowsEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponentconfigurationdetails.html#cfn-applicationinsights-application-subcomponentconfigurationdetails-windowsevents
+ WindowsEvents []Application_WindowsEvent `json:"WindowsEvents,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_SubComponentConfigurationDetails) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.SubComponentConfigurationDetails"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_subcomponenttypeconfiguration.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_subcomponenttypeconfiguration.go
new file mode 100644
index 0000000000..2d66d2fb4e
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_subcomponenttypeconfiguration.go
@@ -0,0 +1,42 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_SubComponentTypeConfiguration AWS CloudFormation Resource (AWS::ApplicationInsights::Application.SubComponentTypeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponenttypeconfiguration.html
+type Application_SubComponentTypeConfiguration struct {
+
+ // SubComponentConfigurationDetails AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponenttypeconfiguration.html#cfn-applicationinsights-application-subcomponenttypeconfiguration-subcomponentconfigurationdetails
+ SubComponentConfigurationDetails *Application_SubComponentConfigurationDetails `json:"SubComponentConfigurationDetails,omitempty"`
+
+ // SubComponentType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-subcomponenttypeconfiguration.html#cfn-applicationinsights-application-subcomponenttypeconfiguration-subcomponenttype
+ SubComponentType *types.Value `json:"SubComponentType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_SubComponentTypeConfiguration) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.SubComponentTypeConfiguration"
+}
diff --git a/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_windowsevent.go b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_windowsevent.go
new file mode 100644
index 0000000000..977ac588fe
--- /dev/null
+++ b/goformation/cloudformation/applicationinsights/aws-applicationinsights-application_windowsevent.go
@@ -0,0 +1,52 @@
+package applicationinsights
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_WindowsEvent AWS CloudFormation Resource (AWS::ApplicationInsights::Application.WindowsEvent)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html
+type Application_WindowsEvent struct {
+
+ // EventLevels AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html#cfn-applicationinsights-application-windowsevent-eventlevels
+ EventLevels *types.Value `json:"EventLevels,omitempty"`
+
+ // EventName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html#cfn-applicationinsights-application-windowsevent-eventname
+ EventName *types.Value `json:"EventName,omitempty"`
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html#cfn-applicationinsights-application-windowsevent-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // PatternSet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationinsights-application-windowsevent.html#cfn-applicationinsights-application-windowsevent-patternset
+ PatternSet *types.Value `json:"PatternSet,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_WindowsEvent) AWSCloudFormationType() string {
+ return "AWS::ApplicationInsights::Application.WindowsEvent"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute.go
new file mode 100644
index 0000000000..0e20d64867
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute.go
@@ -0,0 +1,134 @@
+package appmesh
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html
+type GatewayRoute struct {
+
+ // GatewayRouteName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html#cfn-appmesh-gatewayroute-gatewayroutename
+ GatewayRouteName *types.Value `json:"GatewayRouteName,omitempty"`
+
+ // MeshName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html#cfn-appmesh-gatewayroute-meshname
+ MeshName *types.Value `json:"MeshName,omitempty"`
+
+ // MeshOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html#cfn-appmesh-gatewayroute-meshowner
+ MeshOwner *types.Value `json:"MeshOwner,omitempty"`
+
+ // Spec AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html#cfn-appmesh-gatewayroute-spec
+ Spec *GatewayRoute_GatewayRouteSpec `json:"Spec,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html#cfn-appmesh-gatewayroute-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VirtualGatewayName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html#cfn-appmesh-gatewayroute-virtualgatewayname
+ VirtualGatewayName *types.Value `json:"VirtualGatewayName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GatewayRoute) MarshalJSON() ([]byte, error) {
+ type Properties GatewayRoute
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GatewayRoute) UnmarshalJSON(b []byte) error {
+ type Properties GatewayRoute
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GatewayRoute(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutehostnamematch.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutehostnamematch.go
new file mode 100644
index 0000000000..be0d97e048
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutehostnamematch.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GatewayRouteHostnameMatch AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html
+type GatewayRoute_GatewayRouteHostnameMatch struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html#cfn-appmesh-gatewayroute-gatewayroutehostnamematch-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // Suffix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html#cfn-appmesh-gatewayroute-gatewayroutehostnamematch-suffix
+ Suffix *types.Value `json:"Suffix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GatewayRouteHostnameMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutehostnamerewrite.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutehostnamerewrite.go
new file mode 100644
index 0000000000..96421e16db
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutehostnamerewrite.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GatewayRouteHostnameRewrite AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html
+type GatewayRoute_GatewayRouteHostnameRewrite struct {
+
+ // DefaultTargetHostname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html#cfn-appmesh-gatewayroute-gatewayroutehostnamerewrite-defaulttargethostname
+ DefaultTargetHostname *types.Value `json:"DefaultTargetHostname,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GatewayRouteHostnameRewrite) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutemetadatamatch.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutemetadatamatch.go
new file mode 100644
index 0000000000..65c542822f
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutemetadatamatch.go
@@ -0,0 +1,57 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GatewayRouteMetadataMatch AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html
+type GatewayRoute_GatewayRouteMetadataMatch struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html#cfn-appmesh-gatewayroute-gatewayroutemetadatamatch-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html#cfn-appmesh-gatewayroute-gatewayroutemetadatamatch-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // Range AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html#cfn-appmesh-gatewayroute-gatewayroutemetadatamatch-range
+ Range *GatewayRoute_GatewayRouteRangeMatch `json:"Range,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html#cfn-appmesh-gatewayroute-gatewayroutemetadatamatch-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // Suffix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html#cfn-appmesh-gatewayroute-gatewayroutemetadatamatch-suffix
+ Suffix *types.Value `json:"Suffix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GatewayRouteMetadataMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayrouterangematch.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayrouterangematch.go
new file mode 100644
index 0000000000..c76ea87a48
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayrouterangematch.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GatewayRouteRangeMatch AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html
+type GatewayRoute_GatewayRouteRangeMatch struct {
+
+ // End AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html#cfn-appmesh-gatewayroute-gatewayrouterangematch-end
+ End *types.Value `json:"End"`
+
+ // Start AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html#cfn-appmesh-gatewayroute-gatewayrouterangematch-start
+ Start *types.Value `json:"Start"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GatewayRouteRangeMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutespec.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutespec.go
new file mode 100644
index 0000000000..cffc818fa8
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutespec.go
@@ -0,0 +1,52 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GatewayRouteSpec AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GatewayRouteSpec)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html
+type GatewayRoute_GatewayRouteSpec struct {
+
+ // GrpcRoute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html#cfn-appmesh-gatewayroute-gatewayroutespec-grpcroute
+ GrpcRoute *GatewayRoute_GrpcGatewayRoute `json:"GrpcRoute,omitempty"`
+
+ // Http2Route AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html#cfn-appmesh-gatewayroute-gatewayroutespec-http2route
+ Http2Route *GatewayRoute_HttpGatewayRoute `json:"Http2Route,omitempty"`
+
+ // HttpRoute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html#cfn-appmesh-gatewayroute-gatewayroutespec-httproute
+ HttpRoute *GatewayRoute_HttpGatewayRoute `json:"HttpRoute,omitempty"`
+
+ // Priority AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html#cfn-appmesh-gatewayroute-gatewayroutespec-priority
+ Priority *types.Value `json:"Priority,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GatewayRouteSpec) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GatewayRouteSpec"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutetarget.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutetarget.go
new file mode 100644
index 0000000000..8640f1299c
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutetarget.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GatewayRouteTarget AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GatewayRouteTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html
+type GatewayRoute_GatewayRouteTarget struct {
+
+ // VirtualService AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html#cfn-appmesh-gatewayroute-gatewayroutetarget-virtualservice
+ VirtualService *GatewayRoute_GatewayRouteVirtualService `json:"VirtualService,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GatewayRouteTarget) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GatewayRouteTarget"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutevirtualservice.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutevirtualservice.go
new file mode 100644
index 0000000000..f8eb2c7eef
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_gatewayroutevirtualservice.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GatewayRouteVirtualService AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutevirtualservice.html
+type GatewayRoute_GatewayRouteVirtualService struct {
+
+ // VirtualServiceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutevirtualservice.html#cfn-appmesh-gatewayroute-gatewayroutevirtualservice-virtualservicename
+ VirtualServiceName *types.Value `json:"VirtualServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GatewayRouteVirtualService) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroute.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroute.go
new file mode 100644
index 0000000000..5dbda44ea4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroute.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GrpcGatewayRoute AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GrpcGatewayRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroute.html
+type GatewayRoute_GrpcGatewayRoute struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroute.html#cfn-appmesh-gatewayroute-grpcgatewayroute-action
+ Action *GatewayRoute_GrpcGatewayRouteAction `json:"Action,omitempty"`
+
+ // Match AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroute.html#cfn-appmesh-gatewayroute-grpcgatewayroute-match
+ Match *GatewayRoute_GrpcGatewayRouteMatch `json:"Match,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GrpcGatewayRoute) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GrpcGatewayRoute"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayrouteaction.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayrouteaction.go
new file mode 100644
index 0000000000..4f873915c7
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayrouteaction.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GrpcGatewayRouteAction AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouteaction.html
+type GatewayRoute_GrpcGatewayRouteAction struct {
+
+ // Rewrite AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouteaction.html#cfn-appmesh-gatewayroute-grpcgatewayrouteaction-rewrite
+ Rewrite *GatewayRoute_GrpcGatewayRouteRewrite `json:"Rewrite,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouteaction.html#cfn-appmesh-gatewayroute-grpcgatewayrouteaction-target
+ Target *GatewayRoute_GatewayRouteTarget `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GrpcGatewayRouteAction) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutematch.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutematch.go
new file mode 100644
index 0000000000..b7b8c65848
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutematch.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GrpcGatewayRouteMatch AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html
+type GatewayRoute_GrpcGatewayRouteMatch struct {
+
+ // Hostname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html#cfn-appmesh-gatewayroute-grpcgatewayroutematch-hostname
+ Hostname *GatewayRoute_GatewayRouteHostnameMatch `json:"Hostname,omitempty"`
+
+ // Metadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html#cfn-appmesh-gatewayroute-grpcgatewayroutematch-metadata
+ Metadata []GatewayRoute_GrpcGatewayRouteMetadata `json:"Metadata,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html#cfn-appmesh-gatewayroute-grpcgatewayroutematch-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GrpcGatewayRouteMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutemetadata.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutemetadata.go
new file mode 100644
index 0000000000..2f43774ebb
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayroutemetadata.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GrpcGatewayRouteMetadata AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutemetadata.html
+type GatewayRoute_GrpcGatewayRouteMetadata struct {
+
+ // Invert AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutemetadata.html#cfn-appmesh-gatewayroute-grpcgatewayroutemetadata-invert
+ Invert *types.Value `json:"Invert,omitempty"`
+
+ // Match AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutemetadata.html#cfn-appmesh-gatewayroute-grpcgatewayroutemetadata-match
+ Match *GatewayRoute_GatewayRouteMetadataMatch `json:"Match,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutemetadata.html#cfn-appmesh-gatewayroute-grpcgatewayroutemetadata-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GrpcGatewayRouteMetadata) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayrouterewrite.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayrouterewrite.go
new file mode 100644
index 0000000000..5d577f95be
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_grpcgatewayrouterewrite.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_GrpcGatewayRouteRewrite AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouterewrite.html
+type GatewayRoute_GrpcGatewayRouteRewrite struct {
+
+ // Hostname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouterewrite.html#cfn-appmesh-gatewayroute-grpcgatewayrouterewrite-hostname
+ Hostname *GatewayRoute_GatewayRouteHostnameRewrite `json:"Hostname,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_GrpcGatewayRouteRewrite) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroute.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroute.go
new file mode 100644
index 0000000000..a6f53cb1db
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroute.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpGatewayRoute AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpGatewayRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html
+type GatewayRoute_HttpGatewayRoute struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html#cfn-appmesh-gatewayroute-httpgatewayroute-action
+ Action *GatewayRoute_HttpGatewayRouteAction `json:"Action,omitempty"`
+
+ // Match AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html#cfn-appmesh-gatewayroute-httpgatewayroute-match
+ Match *GatewayRoute_HttpGatewayRouteMatch `json:"Match,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpGatewayRoute) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpGatewayRoute"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteaction.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteaction.go
new file mode 100644
index 0000000000..cd6dc25071
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteaction.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpGatewayRouteAction AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteaction.html
+type GatewayRoute_HttpGatewayRouteAction struct {
+
+ // Rewrite AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteaction.html#cfn-appmesh-gatewayroute-httpgatewayrouteaction-rewrite
+ Rewrite *GatewayRoute_HttpGatewayRouteRewrite `json:"Rewrite,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteaction.html#cfn-appmesh-gatewayroute-httpgatewayrouteaction-target
+ Target *GatewayRoute_GatewayRouteTarget `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpGatewayRouteAction) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteheader.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteheader.go
new file mode 100644
index 0000000000..2936dbc1df
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteheader.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpGatewayRouteHeader AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheader.html
+type GatewayRoute_HttpGatewayRouteHeader struct {
+
+ // Invert AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheader.html#cfn-appmesh-gatewayroute-httpgatewayrouteheader-invert
+ Invert *types.Value `json:"Invert,omitempty"`
+
+ // Match AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheader.html#cfn-appmesh-gatewayroute-httpgatewayrouteheader-match
+ Match *GatewayRoute_HttpGatewayRouteHeaderMatch `json:"Match,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheader.html#cfn-appmesh-gatewayroute-httpgatewayrouteheader-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpGatewayRouteHeader) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteheadermatch.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteheadermatch.go
new file mode 100644
index 0000000000..70374bde74
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteheadermatch.go
@@ -0,0 +1,57 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpGatewayRouteHeaderMatch AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html
+type GatewayRoute_HttpGatewayRouteHeaderMatch struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html#cfn-appmesh-gatewayroute-httpgatewayrouteheadermatch-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html#cfn-appmesh-gatewayroute-httpgatewayrouteheadermatch-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // Range AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html#cfn-appmesh-gatewayroute-httpgatewayrouteheadermatch-range
+ Range *GatewayRoute_GatewayRouteRangeMatch `json:"Range,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html#cfn-appmesh-gatewayroute-httpgatewayrouteheadermatch-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // Suffix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html#cfn-appmesh-gatewayroute-httpgatewayrouteheadermatch-suffix
+ Suffix *types.Value `json:"Suffix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpGatewayRouteHeaderMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutematch.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutematch.go
new file mode 100644
index 0000000000..dd1516ce3d
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutematch.go
@@ -0,0 +1,62 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpGatewayRouteMatch AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html
+type GatewayRoute_HttpGatewayRouteMatch struct {
+
+ // Headers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-headers
+ Headers []GatewayRoute_HttpGatewayRouteHeader `json:"Headers,omitempty"`
+
+ // Hostname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-hostname
+ Hostname *GatewayRoute_GatewayRouteHostnameMatch `json:"Hostname,omitempty"`
+
+ // Method AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-method
+ Method *types.Value `json:"Method,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-path
+ Path *GatewayRoute_HttpPathMatch `json:"Path,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // QueryParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html#cfn-appmesh-gatewayroute-httpgatewayroutematch-queryparameters
+ QueryParameters []GatewayRoute_QueryParameter `json:"QueryParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpGatewayRouteMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutepathrewrite.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutepathrewrite.go
new file mode 100644
index 0000000000..71f84154af
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayroutepathrewrite.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpGatewayRoutePathRewrite AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutepathrewrite.html
+type GatewayRoute_HttpGatewayRoutePathRewrite struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutepathrewrite.html#cfn-appmesh-gatewayroute-httpgatewayroutepathrewrite-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpGatewayRoutePathRewrite) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteprefixrewrite.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteprefixrewrite.go
new file mode 100644
index 0000000000..66342d4349
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouteprefixrewrite.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpGatewayRoutePrefixRewrite AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteprefixrewrite.html
+type GatewayRoute_HttpGatewayRoutePrefixRewrite struct {
+
+ // DefaultPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteprefixrewrite.html#cfn-appmesh-gatewayroute-httpgatewayrouteprefixrewrite-defaultprefix
+ DefaultPrefix *types.Value `json:"DefaultPrefix,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteprefixrewrite.html#cfn-appmesh-gatewayroute-httpgatewayrouteprefixrewrite-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpGatewayRoutePrefixRewrite) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouterewrite.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouterewrite.go
new file mode 100644
index 0000000000..f1f57fc4d3
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpgatewayrouterewrite.go
@@ -0,0 +1,45 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpGatewayRouteRewrite AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouterewrite.html
+type GatewayRoute_HttpGatewayRouteRewrite struct {
+
+ // Hostname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouterewrite.html#cfn-appmesh-gatewayroute-httpgatewayrouterewrite-hostname
+ Hostname *GatewayRoute_GatewayRouteHostnameRewrite `json:"Hostname,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouterewrite.html#cfn-appmesh-gatewayroute-httpgatewayrouterewrite-path
+ Path *GatewayRoute_HttpGatewayRoutePathRewrite `json:"Path,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouterewrite.html#cfn-appmesh-gatewayroute-httpgatewayrouterewrite-prefix
+ Prefix *GatewayRoute_HttpGatewayRoutePrefixRewrite `json:"Prefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpGatewayRouteRewrite) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httppathmatch.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httppathmatch.go
new file mode 100644
index 0000000000..c4f561d68c
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httppathmatch.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpPathMatch AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpPathMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httppathmatch.html
+type GatewayRoute_HttpPathMatch struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httppathmatch.html#cfn-appmesh-gatewayroute-httppathmatch-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httppathmatch.html#cfn-appmesh-gatewayroute-httppathmatch-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpPathMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpPathMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpqueryparametermatch.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpqueryparametermatch.go
new file mode 100644
index 0000000000..9c7dd73d45
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_httpqueryparametermatch.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_HttpQueryParameterMatch AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpqueryparametermatch.html
+type GatewayRoute_HttpQueryParameterMatch struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpqueryparametermatch.html#cfn-appmesh-gatewayroute-httpqueryparametermatch-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_HttpQueryParameterMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_queryparameter.go b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_queryparameter.go
new file mode 100644
index 0000000000..03257cbe8d
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-gatewayroute_queryparameter.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRoute_QueryParameter AWS CloudFormation Resource (AWS::AppMesh::GatewayRoute.QueryParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-queryparameter.html
+type GatewayRoute_QueryParameter struct {
+
+ // Match AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-queryparameter.html#cfn-appmesh-gatewayroute-queryparameter-match
+ Match *GatewayRoute_HttpQueryParameterMatch `json:"Match,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-queryparameter.html#cfn-appmesh-gatewayroute-queryparameter-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRoute_QueryParameter) AWSCloudFormationType() string {
+ return "AWS::AppMesh::GatewayRoute.QueryParameter"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-mesh.go b/goformation/cloudformation/appmesh/aws-appmesh-mesh.go
new file mode 100644
index 0000000000..c188d3b79e
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-mesh.go
@@ -0,0 +1,119 @@
+package appmesh
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Mesh AWS CloudFormation Resource (AWS::AppMesh::Mesh)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html
+type Mesh struct {
+
+ // MeshName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html#cfn-appmesh-mesh-meshname
+ MeshName *types.Value `json:"MeshName,omitempty"`
+
+ // Spec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html#cfn-appmesh-mesh-spec
+ Spec *Mesh_MeshSpec `json:"Spec,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html#cfn-appmesh-mesh-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Mesh) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Mesh"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Mesh) MarshalJSON() ([]byte, error) {
+ type Properties Mesh
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Mesh) UnmarshalJSON(b []byte) error {
+ type Properties Mesh
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Mesh(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-mesh_egressfilter.go b/goformation/cloudformation/appmesh/aws-appmesh-mesh_egressfilter.go
new file mode 100644
index 0000000000..c6074d7032
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-mesh_egressfilter.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Mesh_EgressFilter AWS CloudFormation Resource (AWS::AppMesh::Mesh.EgressFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-egressfilter.html
+type Mesh_EgressFilter struct {
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-egressfilter.html#cfn-appmesh-mesh-egressfilter-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Mesh_EgressFilter) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Mesh.EgressFilter"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-mesh_meshspec.go b/goformation/cloudformation/appmesh/aws-appmesh-mesh_meshspec.go
new file mode 100644
index 0000000000..726e0d68b8
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-mesh_meshspec.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Mesh_MeshSpec AWS CloudFormation Resource (AWS::AppMesh::Mesh.MeshSpec)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-meshspec.html
+type Mesh_MeshSpec struct {
+
+ // EgressFilter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-meshspec.html#cfn-appmesh-mesh-meshspec-egressfilter
+ EgressFilter *Mesh_EgressFilter `json:"EgressFilter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Mesh_MeshSpec) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Mesh.MeshSpec"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route.go b/goformation/cloudformation/appmesh/aws-appmesh-route.go
new file mode 100644
index 0000000000..a193e36e69
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route.go
@@ -0,0 +1,134 @@
+package appmesh
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route AWS CloudFormation Resource (AWS::AppMesh::Route)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html
+type Route struct {
+
+ // MeshName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-meshname
+ MeshName *types.Value `json:"MeshName,omitempty"`
+
+ // MeshOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-meshowner
+ MeshOwner *types.Value `json:"MeshOwner,omitempty"`
+
+ // RouteName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-routename
+ RouteName *types.Value `json:"RouteName,omitempty"`
+
+ // Spec AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-spec
+ Spec *Route_RouteSpec `json:"Spec,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VirtualRouterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html#cfn-appmesh-route-virtualroutername
+ VirtualRouterName *types.Value `json:"VirtualRouterName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Route) MarshalJSON() ([]byte, error) {
+ type Properties Route
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Route) UnmarshalJSON(b []byte) error {
+ type Properties Route
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Route(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_duration.go b/goformation/cloudformation/appmesh/aws-appmesh-route_duration.go
new file mode 100644
index 0000000000..36881b46d3
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_duration.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_Duration AWS CloudFormation Resource (AWS::AppMesh::Route.Duration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html
+type Route_Duration struct {
+
+ // Unit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html#cfn-appmesh-route-duration-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-duration.html#cfn-appmesh-route-duration-value
+ Value *types.Value `json:"Value"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_Duration) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.Duration"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_grpcretrypolicy.go b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcretrypolicy.go
new file mode 100644
index 0000000000..c1f919d88f
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcretrypolicy.go
@@ -0,0 +1,57 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_GrpcRetryPolicy AWS CloudFormation Resource (AWS::AppMesh::Route.GrpcRetryPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html
+type Route_GrpcRetryPolicy struct {
+
+ // GrpcRetryEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html#cfn-appmesh-route-grpcretrypolicy-grpcretryevents
+ GrpcRetryEvents *types.Value `json:"GrpcRetryEvents,omitempty"`
+
+ // HttpRetryEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html#cfn-appmesh-route-grpcretrypolicy-httpretryevents
+ HttpRetryEvents *types.Value `json:"HttpRetryEvents,omitempty"`
+
+ // MaxRetries AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html#cfn-appmesh-route-grpcretrypolicy-maxretries
+ MaxRetries *types.Value `json:"MaxRetries"`
+
+ // PerRetryTimeout AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html#cfn-appmesh-route-grpcretrypolicy-perretrytimeout
+ PerRetryTimeout *Route_Duration `json:"PerRetryTimeout,omitempty"`
+
+ // TcpRetryEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html#cfn-appmesh-route-grpcretrypolicy-tcpretryevents
+ TcpRetryEvents *types.Value `json:"TcpRetryEvents,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_GrpcRetryPolicy) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.GrpcRetryPolicy"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroute.go b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroute.go
new file mode 100644
index 0000000000..df01c806ba
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroute.go
@@ -0,0 +1,50 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_GrpcRoute AWS CloudFormation Resource (AWS::AppMesh::Route.GrpcRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html
+type Route_GrpcRoute struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-action
+ Action *Route_GrpcRouteAction `json:"Action,omitempty"`
+
+ // Match AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-match
+ Match *Route_GrpcRouteMatch `json:"Match,omitempty"`
+
+ // RetryPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-retrypolicy
+ RetryPolicy *Route_GrpcRetryPolicy `json:"RetryPolicy,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html#cfn-appmesh-route-grpcroute-timeout
+ Timeout *Route_GrpcTimeout `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_GrpcRoute) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.GrpcRoute"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_grpcrouteaction.go b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcrouteaction.go
new file mode 100644
index 0000000000..dbe6d970a6
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcrouteaction.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_GrpcRouteAction AWS CloudFormation Resource (AWS::AppMesh::Route.GrpcRouteAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcrouteaction.html
+type Route_GrpcRouteAction struct {
+
+ // WeightedTargets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcrouteaction.html#cfn-appmesh-route-grpcrouteaction-weightedtargets
+ WeightedTargets []Route_WeightedTarget `json:"WeightedTargets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_GrpcRouteAction) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.GrpcRouteAction"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutematch.go b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutematch.go
new file mode 100644
index 0000000000..cc2f48ead3
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutematch.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_GrpcRouteMatch AWS CloudFormation Resource (AWS::AppMesh::Route.GrpcRouteMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html
+type Route_GrpcRouteMatch struct {
+
+ // Metadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html#cfn-appmesh-route-grpcroutematch-metadata
+ Metadata []Route_GrpcRouteMetadata `json:"Metadata,omitempty"`
+
+ // MethodName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html#cfn-appmesh-route-grpcroutematch-methodname
+ MethodName *types.Value `json:"MethodName,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html#cfn-appmesh-route-grpcroutematch-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_GrpcRouteMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.GrpcRouteMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutemetadata.go b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutemetadata.go
new file mode 100644
index 0000000000..0b0391debf
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutemetadata.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_GrpcRouteMetadata AWS CloudFormation Resource (AWS::AppMesh::Route.GrpcRouteMetadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadata.html
+type Route_GrpcRouteMetadata struct {
+
+ // Invert AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadata.html#cfn-appmesh-route-grpcroutemetadata-invert
+ Invert *types.Value `json:"Invert,omitempty"`
+
+ // Match AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadata.html#cfn-appmesh-route-grpcroutemetadata-match
+ Match *Route_GrpcRouteMetadataMatchMethod `json:"Match,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadata.html#cfn-appmesh-route-grpcroutemetadata-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_GrpcRouteMetadata) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.GrpcRouteMetadata"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutemetadatamatchmethod.go b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutemetadatamatchmethod.go
new file mode 100644
index 0000000000..9b54323f54
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_grpcroutemetadatamatchmethod.go
@@ -0,0 +1,57 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_GrpcRouteMetadataMatchMethod AWS CloudFormation Resource (AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html
+type Route_GrpcRouteMetadataMatchMethod struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html#cfn-appmesh-route-grpcroutemetadatamatchmethod-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html#cfn-appmesh-route-grpcroutemetadatamatchmethod-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // Range AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html#cfn-appmesh-route-grpcroutemetadatamatchmethod-range
+ Range *Route_MatchRange `json:"Range,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html#cfn-appmesh-route-grpcroutemetadatamatchmethod-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // Suffix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html#cfn-appmesh-route-grpcroutemetadatamatchmethod-suffix
+ Suffix *types.Value `json:"Suffix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_GrpcRouteMetadataMatchMethod) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_grpctimeout.go b/goformation/cloudformation/appmesh/aws-appmesh-route_grpctimeout.go
new file mode 100644
index 0000000000..707bd1a1f8
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_grpctimeout.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_GrpcTimeout AWS CloudFormation Resource (AWS::AppMesh::Route.GrpcTimeout)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html
+type Route_GrpcTimeout struct {
+
+ // Idle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html#cfn-appmesh-route-grpctimeout-idle
+ Idle *Route_Duration `json:"Idle,omitempty"`
+
+ // PerRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpctimeout.html#cfn-appmesh-route-grpctimeout-perrequest
+ PerRequest *Route_Duration `json:"PerRequest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_GrpcTimeout) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.GrpcTimeout"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_headermatchmethod.go b/goformation/cloudformation/appmesh/aws-appmesh-route_headermatchmethod.go
new file mode 100644
index 0000000000..5d062b05f2
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_headermatchmethod.go
@@ -0,0 +1,57 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HeaderMatchMethod AWS CloudFormation Resource (AWS::AppMesh::Route.HeaderMatchMethod)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html
+type Route_HeaderMatchMethod struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // Range AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-range
+ Range *Route_MatchRange `json:"Range,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // Suffix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html#cfn-appmesh-route-headermatchmethod-suffix
+ Suffix *types.Value `json:"Suffix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HeaderMatchMethod) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HeaderMatchMethod"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_httppathmatch.go b/goformation/cloudformation/appmesh/aws-appmesh-route_httppathmatch.go
new file mode 100644
index 0000000000..6dc1c54265
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_httppathmatch.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HttpPathMatch AWS CloudFormation Resource (AWS::AppMesh::Route.HttpPathMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httppathmatch.html
+type Route_HttpPathMatch struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httppathmatch.html#cfn-appmesh-route-httppathmatch-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httppathmatch.html#cfn-appmesh-route-httppathmatch-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HttpPathMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HttpPathMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_httpqueryparametermatch.go b/goformation/cloudformation/appmesh/aws-appmesh-route_httpqueryparametermatch.go
new file mode 100644
index 0000000000..dd7fec6675
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_httpqueryparametermatch.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HttpQueryParameterMatch AWS CloudFormation Resource (AWS::AppMesh::Route.HttpQueryParameterMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpqueryparametermatch.html
+type Route_HttpQueryParameterMatch struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpqueryparametermatch.html#cfn-appmesh-route-httpqueryparametermatch-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HttpQueryParameterMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HttpQueryParameterMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_httpretrypolicy.go b/goformation/cloudformation/appmesh/aws-appmesh-route_httpretrypolicy.go
new file mode 100644
index 0000000000..584143efa7
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_httpretrypolicy.go
@@ -0,0 +1,52 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HttpRetryPolicy AWS CloudFormation Resource (AWS::AppMesh::Route.HttpRetryPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html
+type Route_HttpRetryPolicy struct {
+
+ // HttpRetryEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html#cfn-appmesh-route-httpretrypolicy-httpretryevents
+ HttpRetryEvents *types.Value `json:"HttpRetryEvents,omitempty"`
+
+ // MaxRetries AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html#cfn-appmesh-route-httpretrypolicy-maxretries
+ MaxRetries *types.Value `json:"MaxRetries"`
+
+ // PerRetryTimeout AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html#cfn-appmesh-route-httpretrypolicy-perretrytimeout
+ PerRetryTimeout *Route_Duration `json:"PerRetryTimeout,omitempty"`
+
+ // TcpRetryEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html#cfn-appmesh-route-httpretrypolicy-tcpretryevents
+ TcpRetryEvents *types.Value `json:"TcpRetryEvents,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HttpRetryPolicy) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HttpRetryPolicy"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_httproute.go b/goformation/cloudformation/appmesh/aws-appmesh-route_httproute.go
new file mode 100644
index 0000000000..40306a4bf5
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_httproute.go
@@ -0,0 +1,50 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HttpRoute AWS CloudFormation Resource (AWS::AppMesh::Route.HttpRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html
+type Route_HttpRoute struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html#cfn-appmesh-route-httproute-action
+ Action *Route_HttpRouteAction `json:"Action,omitempty"`
+
+ // Match AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html#cfn-appmesh-route-httproute-match
+ Match *Route_HttpRouteMatch `json:"Match,omitempty"`
+
+ // RetryPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html#cfn-appmesh-route-httproute-retrypolicy
+ RetryPolicy *Route_HttpRetryPolicy `json:"RetryPolicy,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html#cfn-appmesh-route-httproute-timeout
+ Timeout *Route_HttpTimeout `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HttpRoute) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HttpRoute"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_httprouteaction.go b/goformation/cloudformation/appmesh/aws-appmesh-route_httprouteaction.go
new file mode 100644
index 0000000000..b56daaf807
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_httprouteaction.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HttpRouteAction AWS CloudFormation Resource (AWS::AppMesh::Route.HttpRouteAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteaction.html
+type Route_HttpRouteAction struct {
+
+ // WeightedTargets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteaction.html#cfn-appmesh-route-httprouteaction-weightedtargets
+ WeightedTargets []Route_WeightedTarget `json:"WeightedTargets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HttpRouteAction) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HttpRouteAction"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_httprouteheader.go b/goformation/cloudformation/appmesh/aws-appmesh-route_httprouteheader.go
new file mode 100644
index 0000000000..22098547fb
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_httprouteheader.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HttpRouteHeader AWS CloudFormation Resource (AWS::AppMesh::Route.HttpRouteHeader)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteheader.html
+type Route_HttpRouteHeader struct {
+
+ // Invert AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteheader.html#cfn-appmesh-route-httprouteheader-invert
+ Invert *types.Value `json:"Invert,omitempty"`
+
+ // Match AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteheader.html#cfn-appmesh-route-httprouteheader-match
+ Match *Route_HeaderMatchMethod `json:"Match,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteheader.html#cfn-appmesh-route-httprouteheader-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HttpRouteHeader) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HttpRouteHeader"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_httproutematch.go b/goformation/cloudformation/appmesh/aws-appmesh-route_httproutematch.go
new file mode 100644
index 0000000000..5dbeac021e
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_httproutematch.go
@@ -0,0 +1,62 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HttpRouteMatch AWS CloudFormation Resource (AWS::AppMesh::Route.HttpRouteMatch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html
+type Route_HttpRouteMatch struct {
+
+ // Headers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-headers
+ Headers []Route_HttpRouteHeader `json:"Headers,omitempty"`
+
+ // Method AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-method
+ Method *types.Value `json:"Method,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-path
+ Path *Route_HttpPathMatch `json:"Path,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // QueryParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-queryparameters
+ QueryParameters []Route_QueryParameter `json:"QueryParameters,omitempty"`
+
+ // Scheme AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html#cfn-appmesh-route-httproutematch-scheme
+ Scheme *types.Value `json:"Scheme,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HttpRouteMatch) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HttpRouteMatch"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_httptimeout.go b/goformation/cloudformation/appmesh/aws-appmesh-route_httptimeout.go
new file mode 100644
index 0000000000..084c23ce3e
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_httptimeout.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_HttpTimeout AWS CloudFormation Resource (AWS::AppMesh::Route.HttpTimeout)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html
+type Route_HttpTimeout struct {
+
+ // Idle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html#cfn-appmesh-route-httptimeout-idle
+ Idle *Route_Duration `json:"Idle,omitempty"`
+
+ // PerRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httptimeout.html#cfn-appmesh-route-httptimeout-perrequest
+ PerRequest *Route_Duration `json:"PerRequest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_HttpTimeout) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.HttpTimeout"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_matchrange.go b/goformation/cloudformation/appmesh/aws-appmesh-route_matchrange.go
new file mode 100644
index 0000000000..cd4e632a45
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_matchrange.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_MatchRange AWS CloudFormation Resource (AWS::AppMesh::Route.MatchRange)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html
+type Route_MatchRange struct {
+
+ // End AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html#cfn-appmesh-route-matchrange-end
+ End *types.Value `json:"End"`
+
+ // Start AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html#cfn-appmesh-route-matchrange-start
+ Start *types.Value `json:"Start"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_MatchRange) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.MatchRange"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_queryparameter.go b/goformation/cloudformation/appmesh/aws-appmesh-route_queryparameter.go
new file mode 100644
index 0000000000..ab736682fe
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_queryparameter.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_QueryParameter AWS CloudFormation Resource (AWS::AppMesh::Route.QueryParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-queryparameter.html
+type Route_QueryParameter struct {
+
+ // Match AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-queryparameter.html#cfn-appmesh-route-queryparameter-match
+ Match *Route_HttpQueryParameterMatch `json:"Match,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-queryparameter.html#cfn-appmesh-route-queryparameter-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_QueryParameter) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.QueryParameter"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_routespec.go b/goformation/cloudformation/appmesh/aws-appmesh-route_routespec.go
new file mode 100644
index 0000000000..5d16df4495
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_routespec.go
@@ -0,0 +1,57 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_RouteSpec AWS CloudFormation Resource (AWS::AppMesh::Route.RouteSpec)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html
+type Route_RouteSpec struct {
+
+ // GrpcRoute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html#cfn-appmesh-route-routespec-grpcroute
+ GrpcRoute *Route_GrpcRoute `json:"GrpcRoute,omitempty"`
+
+ // Http2Route AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html#cfn-appmesh-route-routespec-http2route
+ Http2Route *Route_HttpRoute `json:"Http2Route,omitempty"`
+
+ // HttpRoute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html#cfn-appmesh-route-routespec-httproute
+ HttpRoute *Route_HttpRoute `json:"HttpRoute,omitempty"`
+
+ // Priority AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html#cfn-appmesh-route-routespec-priority
+ Priority *types.Value `json:"Priority,omitempty"`
+
+ // TcpRoute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html#cfn-appmesh-route-routespec-tcproute
+ TcpRoute *Route_TcpRoute `json:"TcpRoute,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_RouteSpec) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.RouteSpec"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_tcproute.go b/goformation/cloudformation/appmesh/aws-appmesh-route_tcproute.go
new file mode 100644
index 0000000000..300a39ce1f
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_tcproute.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_TcpRoute AWS CloudFormation Resource (AWS::AppMesh::Route.TcpRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html
+type Route_TcpRoute struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html#cfn-appmesh-route-tcproute-action
+ Action *Route_TcpRouteAction `json:"Action,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html#cfn-appmesh-route-tcproute-timeout
+ Timeout *Route_TcpTimeout `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_TcpRoute) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.TcpRoute"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_tcprouteaction.go b/goformation/cloudformation/appmesh/aws-appmesh-route_tcprouteaction.go
new file mode 100644
index 0000000000..c2d2e24b31
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_tcprouteaction.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_TcpRouteAction AWS CloudFormation Resource (AWS::AppMesh::Route.TcpRouteAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcprouteaction.html
+type Route_TcpRouteAction struct {
+
+ // WeightedTargets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcprouteaction.html#cfn-appmesh-route-tcprouteaction-weightedtargets
+ WeightedTargets []Route_WeightedTarget `json:"WeightedTargets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_TcpRouteAction) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.TcpRouteAction"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_tcptimeout.go b/goformation/cloudformation/appmesh/aws-appmesh-route_tcptimeout.go
new file mode 100644
index 0000000000..e320991d7a
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_tcptimeout.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_TcpTimeout AWS CloudFormation Resource (AWS::AppMesh::Route.TcpTimeout)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcptimeout.html
+type Route_TcpTimeout struct {
+
+ // Idle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcptimeout.html#cfn-appmesh-route-tcptimeout-idle
+ Idle *Route_Duration `json:"Idle,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_TcpTimeout) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.TcpTimeout"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-route_weightedtarget.go b/goformation/cloudformation/appmesh/aws-appmesh-route_weightedtarget.go
new file mode 100644
index 0000000000..538f2ade9e
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-route_weightedtarget.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route_WeightedTarget AWS CloudFormation Resource (AWS::AppMesh::Route.WeightedTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html
+type Route_WeightedTarget struct {
+
+ // VirtualNode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html#cfn-appmesh-route-weightedtarget-virtualnode
+ VirtualNode *types.Value `json:"VirtualNode,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html#cfn-appmesh-route-weightedtarget-weight
+ Weight *types.Value `json:"Weight"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route_WeightedTarget) AWSCloudFormationType() string {
+ return "AWS::AppMesh::Route.WeightedTarget"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway.go
new file mode 100644
index 0000000000..34bbe21855
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway.go
@@ -0,0 +1,129 @@
+package appmesh
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html
+type VirtualGateway struct {
+
+ // MeshName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html#cfn-appmesh-virtualgateway-meshname
+ MeshName *types.Value `json:"MeshName,omitempty"`
+
+ // MeshOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html#cfn-appmesh-virtualgateway-meshowner
+ MeshOwner *types.Value `json:"MeshOwner,omitempty"`
+
+ // Spec AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html#cfn-appmesh-virtualgateway-spec
+ Spec *VirtualGateway_VirtualGatewaySpec `json:"Spec,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html#cfn-appmesh-virtualgateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VirtualGatewayName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html#cfn-appmesh-virtualgateway-virtualgatewayname
+ VirtualGatewayName *types.Value `json:"VirtualGatewayName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VirtualGateway) MarshalJSON() ([]byte, error) {
+ type Properties VirtualGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VirtualGateway) UnmarshalJSON(b []byte) error {
+ type Properties VirtualGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VirtualGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_subjectalternativenamematchers.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_subjectalternativenamematchers.go
new file mode 100644
index 0000000000..fae2b0eb16
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_subjectalternativenamematchers.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_SubjectAlternativeNameMatchers AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenamematchers.html
+type VirtualGateway_SubjectAlternativeNameMatchers struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenamematchers.html#cfn-appmesh-virtualgateway-subjectalternativenamematchers-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_SubjectAlternativeNameMatchers) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_subjectalternativenames.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_subjectalternativenames.go
new file mode 100644
index 0000000000..5fa4ff1ca7
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_subjectalternativenames.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_SubjectAlternativeNames AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.SubjectAlternativeNames)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenames.html
+type VirtualGateway_SubjectAlternativeNames struct {
+
+ // Match AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-subjectalternativenames.html#cfn-appmesh-virtualgateway-subjectalternativenames-match
+ Match *VirtualGateway_SubjectAlternativeNameMatchers `json:"Match,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_SubjectAlternativeNames) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.SubjectAlternativeNames"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayaccesslog.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayaccesslog.go
new file mode 100644
index 0000000000..b99e2932b2
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayaccesslog.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayAccessLog AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayaccesslog.html
+type VirtualGateway_VirtualGatewayAccessLog struct {
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayaccesslog.html#cfn-appmesh-virtualgateway-virtualgatewayaccesslog-file
+ File *VirtualGateway_VirtualGatewayFileAccessLog `json:"File,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayAccessLog) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaybackenddefaults.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaybackenddefaults.go
new file mode 100644
index 0000000000..e498a42227
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaybackenddefaults.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayBackendDefaults AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaybackenddefaults.html
+type VirtualGateway_VirtualGatewayBackendDefaults struct {
+
+ // ClientPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaybackenddefaults.html#cfn-appmesh-virtualgateway-virtualgatewaybackenddefaults-clientpolicy
+ ClientPolicy *VirtualGateway_VirtualGatewayClientPolicy `json:"ClientPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayBackendDefaults) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclientpolicy.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclientpolicy.go
new file mode 100644
index 0000000000..a50a07d74b
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclientpolicy.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayClientPolicy AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicy.html
+type VirtualGateway_VirtualGatewayClientPolicy struct {
+
+ // TLS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayclientpolicy-tls
+ TLS *VirtualGateway_VirtualGatewayClientPolicyTls `json:"TLS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayClientPolicy) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclientpolicytls.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclientpolicytls.go
new file mode 100644
index 0000000000..e73d21ec49
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclientpolicytls.go
@@ -0,0 +1,52 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayClientPolicyTls AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html
+type VirtualGateway_VirtualGatewayClientPolicyTls struct {
+
+ // Certificate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html#cfn-appmesh-virtualgateway-virtualgatewayclientpolicytls-certificate
+ Certificate *VirtualGateway_VirtualGatewayClientTlsCertificate `json:"Certificate,omitempty"`
+
+ // Enforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html#cfn-appmesh-virtualgateway-virtualgatewayclientpolicytls-enforce
+ Enforce *types.Value `json:"Enforce,omitempty"`
+
+ // Ports AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html#cfn-appmesh-virtualgateway-virtualgatewayclientpolicytls-ports
+ Ports *types.Value `json:"Ports,omitempty"`
+
+ // Validation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html#cfn-appmesh-virtualgateway-virtualgatewayclientpolicytls-validation
+ Validation *VirtualGateway_VirtualGatewayTlsValidationContext `json:"Validation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayClientPolicyTls) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclienttlscertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclienttlscertificate.go
new file mode 100644
index 0000000000..df4bc0a57b
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayclienttlscertificate.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayClientTlsCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclienttlscertificate.html
+type VirtualGateway_VirtualGatewayClientTlsCertificate struct {
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclienttlscertificate.html#cfn-appmesh-virtualgateway-virtualgatewayclienttlscertificate-file
+ File *VirtualGateway_VirtualGatewayListenerTlsFileCertificate `json:"File,omitempty"`
+
+ // SDS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclienttlscertificate.html#cfn-appmesh-virtualgateway-virtualgatewayclienttlscertificate-sds
+ SDS *VirtualGateway_VirtualGatewayListenerTlsSdsCertificate `json:"SDS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayClientTlsCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayconnectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayconnectionpool.go
new file mode 100644
index 0000000000..6fc3eafab0
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayconnectionpool.go
@@ -0,0 +1,45 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html
+type VirtualGateway_VirtualGatewayConnectionPool struct {
+
+ // GRPC AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-grpc
+ GRPC *VirtualGateway_VirtualGatewayGrpcConnectionPool `json:"GRPC,omitempty"`
+
+ // HTTP AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-http
+ HTTP *VirtualGateway_VirtualGatewayHttpConnectionPool `json:"HTTP,omitempty"`
+
+ // HTTP2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayconnectionpool-http2
+ HTTP2 *VirtualGateway_VirtualGatewayHttp2ConnectionPool `json:"HTTP2,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayfileaccesslog.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayfileaccesslog.go
new file mode 100644
index 0000000000..ad0d393e92
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayfileaccesslog.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayFileAccessLog AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html
+type VirtualGateway_VirtualGatewayFileAccessLog struct {
+
+ // Path AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html#cfn-appmesh-virtualgateway-virtualgatewayfileaccesslog-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayFileAccessLog) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaygrpcconnectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaygrpcconnectionpool.go
new file mode 100644
index 0000000000..430d868d5e
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaygrpcconnectionpool.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayGrpcConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool.html
+type VirtualGateway_VirtualGatewayGrpcConnectionPool struct {
+
+ // MaxRequests AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool-maxrequests
+ MaxRequests *types.Value `json:"MaxRequests"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayGrpcConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhealthcheckpolicy.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhealthcheckpolicy.go
new file mode 100644
index 0000000000..dcd9c0c0e1
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhealthcheckpolicy.go
@@ -0,0 +1,67 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayHealthCheckPolicy AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html
+type VirtualGateway_VirtualGatewayHealthCheckPolicy struct {
+
+ // HealthyThreshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-healthythreshold
+ HealthyThreshold *types.Value `json:"HealthyThreshold"`
+
+ // IntervalMillis AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-intervalmillis
+ IntervalMillis *types.Value `json:"IntervalMillis"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // TimeoutMillis AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-timeoutmillis
+ TimeoutMillis *types.Value `json:"TimeoutMillis"`
+
+ // UnhealthyThreshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html#cfn-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy-unhealthythreshold
+ UnhealthyThreshold *types.Value `json:"UnhealthyThreshold"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayHealthCheckPolicy) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttp2connectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttp2connectionpool.go
new file mode 100644
index 0000000000..d9166fbb4d
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttp2connectionpool.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayHttp2ConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttp2connectionpool.html
+type VirtualGateway_VirtualGatewayHttp2ConnectionPool struct {
+
+ // MaxRequests AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttp2connectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayhttp2connectionpool-maxrequests
+ MaxRequests *types.Value `json:"MaxRequests"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayHttp2ConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttpconnectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttpconnectionpool.go
new file mode 100644
index 0000000000..76423e0b2d
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayhttpconnectionpool.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayHttpConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html
+type VirtualGateway_VirtualGatewayHttpConnectionPool struct {
+
+ // MaxConnections AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayhttpconnectionpool-maxconnections
+ MaxConnections *types.Value `json:"MaxConnections"`
+
+ // MaxPendingRequests AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html#cfn-appmesh-virtualgateway-virtualgatewayhttpconnectionpool-maxpendingrequests
+ MaxPendingRequests *types.Value `json:"MaxPendingRequests,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayHttpConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistener.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistener.go
new file mode 100644
index 0000000000..45bfb80e13
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistener.go
@@ -0,0 +1,50 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayListener AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayListener)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html
+type VirtualGateway_VirtualGatewayListener struct {
+
+ // ConnectionPool AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html#cfn-appmesh-virtualgateway-virtualgatewaylistener-connectionpool
+ ConnectionPool *VirtualGateway_VirtualGatewayConnectionPool `json:"ConnectionPool,omitempty"`
+
+ // HealthCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html#cfn-appmesh-virtualgateway-virtualgatewaylistener-healthcheck
+ HealthCheck *VirtualGateway_VirtualGatewayHealthCheckPolicy `json:"HealthCheck,omitempty"`
+
+ // PortMapping AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html#cfn-appmesh-virtualgateway-virtualgatewaylistener-portmapping
+ PortMapping *VirtualGateway_VirtualGatewayPortMapping `json:"PortMapping,omitempty"`
+
+ // TLS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html#cfn-appmesh-virtualgateway-virtualgatewaylistener-tls
+ TLS *VirtualGateway_VirtualGatewayListenerTls `json:"TLS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayListener) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayListener"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertls.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertls.go
new file mode 100644
index 0000000000..9e3fe9aa37
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertls.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayListenerTls AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertls.html
+type VirtualGateway_VirtualGatewayListenerTls struct {
+
+ // Certificate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertls.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertls-certificate
+ Certificate *VirtualGateway_VirtualGatewayListenerTlsCertificate `json:"Certificate,omitempty"`
+
+ // Mode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertls.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertls-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // Validation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertls.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertls-validation
+ Validation *VirtualGateway_VirtualGatewayListenerTlsValidationContext `json:"Validation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayListenerTls) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsacmcertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsacmcertificate.go
new file mode 100644
index 0000000000..7c7470adb3
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsacmcertificate.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayListenerTlsAcmCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsacmcertificate.html
+type VirtualGateway_VirtualGatewayListenerTlsAcmCertificate struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsacmcertificate.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlsacmcertificate-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayListenerTlsAcmCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlscertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlscertificate.go
new file mode 100644
index 0000000000..6149447ee2
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlscertificate.go
@@ -0,0 +1,45 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayListenerTlsCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlscertificate.html
+type VirtualGateway_VirtualGatewayListenerTlsCertificate struct {
+
+ // ACM AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlscertificate.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlscertificate-acm
+ ACM *VirtualGateway_VirtualGatewayListenerTlsAcmCertificate `json:"ACM,omitempty"`
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlscertificate.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlscertificate-file
+ File *VirtualGateway_VirtualGatewayListenerTlsFileCertificate `json:"File,omitempty"`
+
+ // SDS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlscertificate.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlscertificate-sds
+ SDS *VirtualGateway_VirtualGatewayListenerTlsSdsCertificate `json:"SDS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayListenerTlsCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsfilecertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsfilecertificate.go
new file mode 100644
index 0000000000..4eea07e707
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsfilecertificate.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayListenerTlsFileCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html
+type VirtualGateway_VirtualGatewayListenerTlsFileCertificate struct {
+
+ // CertificateChain AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate-certificatechain
+ CertificateChain *types.Value `json:"CertificateChain,omitempty"`
+
+ // PrivateKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate-privatekey
+ PrivateKey *types.Value `json:"PrivateKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayListenerTlsFileCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlssdscertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlssdscertificate.go
new file mode 100644
index 0000000000..dcb3bef153
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlssdscertificate.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayListenerTlsSdsCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html
+type VirtualGateway_VirtualGatewayListenerTlsSdsCertificate struct {
+
+ // SecretName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate-secretname
+ SecretName *types.Value `json:"SecretName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayListenerTlsSdsCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsvalidationcontext.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsvalidationcontext.go
new file mode 100644
index 0000000000..da2fc6f79e
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsvalidationcontext.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayListenerTlsValidationContext AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext.html
+type VirtualGateway_VirtualGatewayListenerTlsValidationContext struct {
+
+ // SubjectAlternativeNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext-subjectalternativenames
+ SubjectAlternativeNames *VirtualGateway_SubjectAlternativeNames `json:"SubjectAlternativeNames,omitempty"`
+
+ // Trust AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext-trust
+ Trust *VirtualGateway_VirtualGatewayListenerTlsValidationContextTrust `json:"Trust,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayListenerTlsValidationContext) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsvalidationcontexttrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsvalidationcontexttrust.go
new file mode 100644
index 0000000000..ffa57f9adb
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylistenertlsvalidationcontexttrust.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayListenerTlsValidationContextTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust.html
+type VirtualGateway_VirtualGatewayListenerTlsValidationContextTrust struct {
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust-file
+ File *VirtualGateway_VirtualGatewayTlsValidationContextFileTrust `json:"File,omitempty"`
+
+ // SDS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust.html#cfn-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust-sds
+ SDS *VirtualGateway_VirtualGatewayTlsValidationContextSdsTrust `json:"SDS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayListenerTlsValidationContextTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylogging.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylogging.go
new file mode 100644
index 0000000000..cc6068c7f1
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaylogging.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayLogging AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayLogging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylogging.html
+type VirtualGateway_VirtualGatewayLogging struct {
+
+ // AccessLog AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylogging.html#cfn-appmesh-virtualgateway-virtualgatewaylogging-accesslog
+ AccessLog *VirtualGateway_VirtualGatewayAccessLog `json:"AccessLog,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayLogging) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayLogging"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayportmapping.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayportmapping.go
new file mode 100644
index 0000000000..7b8bccf896
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayportmapping.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayPortMapping AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayportmapping.html
+type VirtualGateway_VirtualGatewayPortMapping struct {
+
+ // Port AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayportmapping.html#cfn-appmesh-virtualgateway-virtualgatewayportmapping-port
+ Port *types.Value `json:"Port"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayportmapping.html#cfn-appmesh-virtualgateway-virtualgatewayportmapping-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayPortMapping) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayspec.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayspec.go
new file mode 100644
index 0000000000..292690a7d0
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewayspec.go
@@ -0,0 +1,45 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewaySpec AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewaySpec)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html
+type VirtualGateway_VirtualGatewaySpec struct {
+
+ // BackendDefaults AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html#cfn-appmesh-virtualgateway-virtualgatewayspec-backenddefaults
+ BackendDefaults *VirtualGateway_VirtualGatewayBackendDefaults `json:"BackendDefaults,omitempty"`
+
+ // Listeners AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html#cfn-appmesh-virtualgateway-virtualgatewayspec-listeners
+ Listeners []VirtualGateway_VirtualGatewayListener `json:"Listeners,omitempty"`
+
+ // Logging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html#cfn-appmesh-virtualgateway-virtualgatewayspec-logging
+ Logging *VirtualGateway_VirtualGatewayLogging `json:"Logging,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewaySpec) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewaySpec"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontext.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontext.go
new file mode 100644
index 0000000000..702c33013e
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontext.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayTlsValidationContext AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext.html
+type VirtualGateway_VirtualGatewayTlsValidationContext struct {
+
+ // SubjectAlternativeNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext.html#cfn-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext-subjectalternativenames
+ SubjectAlternativeNames *VirtualGateway_SubjectAlternativeNames `json:"SubjectAlternativeNames,omitempty"`
+
+ // Trust AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext.html#cfn-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext-trust
+ Trust *VirtualGateway_VirtualGatewayTlsValidationContextTrust `json:"Trust,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayTlsValidationContext) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextacmtrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextacmtrust.go
new file mode 100644
index 0000000000..457ffda52c
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextacmtrust.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayTlsValidationContextAcmTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextacmtrust.html
+type VirtualGateway_VirtualGatewayTlsValidationContextAcmTrust struct {
+
+ // CertificateAuthorityArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextacmtrust.html#cfn-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextacmtrust-certificateauthorityarns
+ CertificateAuthorityArns *types.Value `json:"CertificateAuthorityArns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayTlsValidationContextAcmTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextfiletrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextfiletrust.go
new file mode 100644
index 0000000000..0ab20c5a8d
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextfiletrust.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayTlsValidationContextFileTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html
+type VirtualGateway_VirtualGatewayTlsValidationContextFileTrust struct {
+
+ // CertificateChain AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html#cfn-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust-certificatechain
+ CertificateChain *types.Value `json:"CertificateChain,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayTlsValidationContextFileTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextsdstrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextsdstrust.go
new file mode 100644
index 0000000000..653c5c43a9
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontextsdstrust.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayTlsValidationContextSdsTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html
+type VirtualGateway_VirtualGatewayTlsValidationContextSdsTrust struct {
+
+ // SecretName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html#cfn-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust-secretname
+ SecretName *types.Value `json:"SecretName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayTlsValidationContextSdsTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontexttrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontexttrust.go
new file mode 100644
index 0000000000..f5a3c72025
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualgateway_virtualgatewaytlsvalidationcontexttrust.go
@@ -0,0 +1,45 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualGateway_VirtualGatewayTlsValidationContextTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust.html
+type VirtualGateway_VirtualGatewayTlsValidationContextTrust struct {
+
+ // ACM AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust.html#cfn-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust-acm
+ ACM *VirtualGateway_VirtualGatewayTlsValidationContextAcmTrust `json:"ACM,omitempty"`
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust.html#cfn-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust-file
+ File *VirtualGateway_VirtualGatewayTlsValidationContextFileTrust `json:"File,omitempty"`
+
+ // SDS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust.html#cfn-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust-sds
+ SDS *VirtualGateway_VirtualGatewayTlsValidationContextSdsTrust `json:"SDS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualGateway_VirtualGatewayTlsValidationContextTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode.go
new file mode 100644
index 0000000000..822dbe8b0b
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode.go
@@ -0,0 +1,129 @@
+package appmesh
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode AWS CloudFormation Resource (AWS::AppMesh::VirtualNode)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html
+type VirtualNode struct {
+
+ // MeshName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-meshname
+ MeshName *types.Value `json:"MeshName,omitempty"`
+
+ // MeshOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-meshowner
+ MeshOwner *types.Value `json:"MeshOwner,omitempty"`
+
+ // Spec AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-spec
+ Spec *VirtualNode_VirtualNodeSpec `json:"Spec,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VirtualNodeName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html#cfn-appmesh-virtualnode-virtualnodename
+ VirtualNodeName *types.Value `json:"VirtualNodeName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VirtualNode) MarshalJSON() ([]byte, error) {
+ type Properties VirtualNode
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VirtualNode) UnmarshalJSON(b []byte) error {
+ type Properties VirtualNode
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VirtualNode(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_accesslog.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_accesslog.go
new file mode 100644
index 0000000000..cef9b077b9
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_accesslog.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_AccessLog AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.AccessLog)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-accesslog.html
+type VirtualNode_AccessLog struct {
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-accesslog.html#cfn-appmesh-virtualnode-accesslog-file
+ File *VirtualNode_FileAccessLog `json:"File,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_AccessLog) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.AccessLog"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_awscloudmapinstanceattribute.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_awscloudmapinstanceattribute.go
new file mode 100644
index 0000000000..1299145110
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_awscloudmapinstanceattribute.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_AwsCloudMapInstanceAttribute AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html
+type VirtualNode_AwsCloudMapInstanceAttribute struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html#cfn-appmesh-virtualnode-awscloudmapinstanceattribute-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html#cfn-appmesh-virtualnode-awscloudmapinstanceattribute-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_AwsCloudMapInstanceAttribute) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_awscloudmapservicediscovery.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_awscloudmapservicediscovery.go
new file mode 100644
index 0000000000..31d925bae5
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_awscloudmapservicediscovery.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_AwsCloudMapServiceDiscovery AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html
+type VirtualNode_AwsCloudMapServiceDiscovery struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html#cfn-appmesh-virtualnode-awscloudmapservicediscovery-attributes
+ Attributes []VirtualNode_AwsCloudMapInstanceAttribute `json:"Attributes,omitempty"`
+
+ // NamespaceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html#cfn-appmesh-virtualnode-awscloudmapservicediscovery-namespacename
+ NamespaceName *types.Value `json:"NamespaceName,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html#cfn-appmesh-virtualnode-awscloudmapservicediscovery-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_AwsCloudMapServiceDiscovery) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_backend.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_backend.go
new file mode 100644
index 0000000000..3241333f27
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_backend.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_Backend AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.Backend)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backend.html
+type VirtualNode_Backend struct {
+
+ // VirtualService AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backend.html#cfn-appmesh-virtualnode-backend-virtualservice
+ VirtualService *VirtualNode_VirtualServiceBackend `json:"VirtualService,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_Backend) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.Backend"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_backenddefaults.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_backenddefaults.go
new file mode 100644
index 0000000000..04c595c231
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_backenddefaults.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_BackendDefaults AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.BackendDefaults)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backenddefaults.html
+type VirtualNode_BackendDefaults struct {
+
+ // ClientPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backenddefaults.html#cfn-appmesh-virtualnode-backenddefaults-clientpolicy
+ ClientPolicy *VirtualNode_ClientPolicy `json:"ClientPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_BackendDefaults) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.BackendDefaults"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clientpolicy.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clientpolicy.go
new file mode 100644
index 0000000000..b12a859c39
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clientpolicy.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ClientPolicy AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ClientPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html
+type VirtualNode_ClientPolicy struct {
+
+ // TLS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html#cfn-appmesh-virtualnode-clientpolicy-tls
+ TLS *VirtualNode_ClientPolicyTls `json:"TLS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ClientPolicy) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ClientPolicy"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clientpolicytls.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clientpolicytls.go
new file mode 100644
index 0000000000..a74049cf4a
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clientpolicytls.go
@@ -0,0 +1,52 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ClientPolicyTls AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ClientPolicyTls)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html
+type VirtualNode_ClientPolicyTls struct {
+
+ // Certificate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html#cfn-appmesh-virtualnode-clientpolicytls-certificate
+ Certificate *VirtualNode_ClientTlsCertificate `json:"Certificate,omitempty"`
+
+ // Enforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html#cfn-appmesh-virtualnode-clientpolicytls-enforce
+ Enforce *types.Value `json:"Enforce,omitempty"`
+
+ // Ports AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html#cfn-appmesh-virtualnode-clientpolicytls-ports
+ Ports *types.Value `json:"Ports,omitempty"`
+
+ // Validation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html#cfn-appmesh-virtualnode-clientpolicytls-validation
+ Validation *VirtualNode_TlsValidationContext `json:"Validation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ClientPolicyTls) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ClientPolicyTls"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clienttlscertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clienttlscertificate.go
new file mode 100644
index 0000000000..06d382492b
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_clienttlscertificate.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ClientTlsCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ClientTlsCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clienttlscertificate.html
+type VirtualNode_ClientTlsCertificate struct {
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clienttlscertificate.html#cfn-appmesh-virtualnode-clienttlscertificate-file
+ File *VirtualNode_ListenerTlsFileCertificate `json:"File,omitempty"`
+
+ // SDS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clienttlscertificate.html#cfn-appmesh-virtualnode-clienttlscertificate-sds
+ SDS *VirtualNode_ListenerTlsSdsCertificate `json:"SDS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ClientTlsCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ClientTlsCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_dnsservicediscovery.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_dnsservicediscovery.go
new file mode 100644
index 0000000000..a934ecf8fb
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_dnsservicediscovery.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_DnsServiceDiscovery AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.DnsServiceDiscovery)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-dnsservicediscovery.html
+type VirtualNode_DnsServiceDiscovery struct {
+
+ // Hostname AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-dnsservicediscovery.html#cfn-appmesh-virtualnode-dnsservicediscovery-hostname
+ Hostname *types.Value `json:"Hostname,omitempty"`
+
+ // ResponseType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-dnsservicediscovery.html#cfn-appmesh-virtualnode-dnsservicediscovery-responsetype
+ ResponseType *types.Value `json:"ResponseType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_DnsServiceDiscovery) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.DnsServiceDiscovery"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_duration.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_duration.go
new file mode 100644
index 0000000000..8712860e0b
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_duration.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_Duration AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.Duration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html
+type VirtualNode_Duration struct {
+
+ // Unit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html#cfn-appmesh-virtualnode-duration-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html#cfn-appmesh-virtualnode-duration-value
+ Value *types.Value `json:"Value"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_Duration) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.Duration"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_fileaccesslog.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_fileaccesslog.go
new file mode 100644
index 0000000000..2f6ba9f3bb
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_fileaccesslog.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_FileAccessLog AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.FileAccessLog)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html
+type VirtualNode_FileAccessLog struct {
+
+ // Path AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html#cfn-appmesh-virtualnode-fileaccesslog-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_FileAccessLog) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.FileAccessLog"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_grpctimeout.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_grpctimeout.go
new file mode 100644
index 0000000000..5bf627305a
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_grpctimeout.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_GrpcTimeout AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.GrpcTimeout)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html
+type VirtualNode_GrpcTimeout struct {
+
+ // Idle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html#cfn-appmesh-virtualnode-grpctimeout-idle
+ Idle *VirtualNode_Duration `json:"Idle,omitempty"`
+
+ // PerRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html#cfn-appmesh-virtualnode-grpctimeout-perrequest
+ PerRequest *VirtualNode_Duration `json:"PerRequest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_GrpcTimeout) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.GrpcTimeout"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_healthcheck.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_healthcheck.go
new file mode 100644
index 0000000000..a007a261f4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_healthcheck.go
@@ -0,0 +1,67 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_HealthCheck AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.HealthCheck)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html
+type VirtualNode_HealthCheck struct {
+
+ // HealthyThreshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html#cfn-appmesh-virtualnode-healthcheck-healthythreshold
+ HealthyThreshold *types.Value `json:"HealthyThreshold"`
+
+ // IntervalMillis AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html#cfn-appmesh-virtualnode-healthcheck-intervalmillis
+ IntervalMillis *types.Value `json:"IntervalMillis"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html#cfn-appmesh-virtualnode-healthcheck-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html#cfn-appmesh-virtualnode-healthcheck-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html#cfn-appmesh-virtualnode-healthcheck-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // TimeoutMillis AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html#cfn-appmesh-virtualnode-healthcheck-timeoutmillis
+ TimeoutMillis *types.Value `json:"TimeoutMillis"`
+
+ // UnhealthyThreshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html#cfn-appmesh-virtualnode-healthcheck-unhealthythreshold
+ UnhealthyThreshold *types.Value `json:"UnhealthyThreshold"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_HealthCheck) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.HealthCheck"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_httptimeout.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_httptimeout.go
new file mode 100644
index 0000000000..42797d61f4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_httptimeout.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_HttpTimeout AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.HttpTimeout)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html
+type VirtualNode_HttpTimeout struct {
+
+ // Idle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html#cfn-appmesh-virtualnode-httptimeout-idle
+ Idle *VirtualNode_Duration `json:"Idle,omitempty"`
+
+ // PerRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html#cfn-appmesh-virtualnode-httptimeout-perrequest
+ PerRequest *VirtualNode_Duration `json:"PerRequest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_HttpTimeout) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.HttpTimeout"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listener.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listener.go
new file mode 100644
index 0000000000..92574a7fcb
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listener.go
@@ -0,0 +1,60 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_Listener AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.Listener)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html
+type VirtualNode_Listener struct {
+
+ // ConnectionPool AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-connectionpool
+ ConnectionPool *VirtualNode_VirtualNodeConnectionPool `json:"ConnectionPool,omitempty"`
+
+ // HealthCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-healthcheck
+ HealthCheck *VirtualNode_HealthCheck `json:"HealthCheck,omitempty"`
+
+ // OutlierDetection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-outlierdetection
+ OutlierDetection *VirtualNode_OutlierDetection `json:"OutlierDetection,omitempty"`
+
+ // PortMapping AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-portmapping
+ PortMapping *VirtualNode_PortMapping `json:"PortMapping,omitempty"`
+
+ // TLS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-tls
+ TLS *VirtualNode_ListenerTls `json:"TLS,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html#cfn-appmesh-virtualnode-listener-timeout
+ Timeout *VirtualNode_ListenerTimeout `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_Listener) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.Listener"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertimeout.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertimeout.go
new file mode 100644
index 0000000000..adbf1a92af
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertimeout.go
@@ -0,0 +1,50 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ListenerTimeout AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ListenerTimeout)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html
+type VirtualNode_ListenerTimeout struct {
+
+ // GRPC AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html#cfn-appmesh-virtualnode-listenertimeout-grpc
+ GRPC *VirtualNode_GrpcTimeout `json:"GRPC,omitempty"`
+
+ // HTTP AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html#cfn-appmesh-virtualnode-listenertimeout-http
+ HTTP *VirtualNode_HttpTimeout `json:"HTTP,omitempty"`
+
+ // HTTP2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html#cfn-appmesh-virtualnode-listenertimeout-http2
+ HTTP2 *VirtualNode_HttpTimeout `json:"HTTP2,omitempty"`
+
+ // TCP AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html#cfn-appmesh-virtualnode-listenertimeout-tcp
+ TCP *VirtualNode_TcpTimeout `json:"TCP,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ListenerTimeout) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ListenerTimeout"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertls.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertls.go
new file mode 100644
index 0000000000..c624fa0703
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertls.go
@@ -0,0 +1,47 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ListenerTls AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ListenerTls)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertls.html
+type VirtualNode_ListenerTls struct {
+
+ // Certificate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertls.html#cfn-appmesh-virtualnode-listenertls-certificate
+ Certificate *VirtualNode_ListenerTlsCertificate `json:"Certificate,omitempty"`
+
+ // Mode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertls.html#cfn-appmesh-virtualnode-listenertls-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // Validation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertls.html#cfn-appmesh-virtualnode-listenertls-validation
+ Validation *VirtualNode_ListenerTlsValidationContext `json:"Validation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ListenerTls) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ListenerTls"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsacmcertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsacmcertificate.go
new file mode 100644
index 0000000000..a33c2a4c00
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsacmcertificate.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ListenerTlsAcmCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsacmcertificate.html
+type VirtualNode_ListenerTlsAcmCertificate struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsacmcertificate.html#cfn-appmesh-virtualnode-listenertlsacmcertificate-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ListenerTlsAcmCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlscertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlscertificate.go
new file mode 100644
index 0000000000..f4ad632834
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlscertificate.go
@@ -0,0 +1,45 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ListenerTlsCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ListenerTlsCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlscertificate.html
+type VirtualNode_ListenerTlsCertificate struct {
+
+ // ACM AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlscertificate.html#cfn-appmesh-virtualnode-listenertlscertificate-acm
+ ACM *VirtualNode_ListenerTlsAcmCertificate `json:"ACM,omitempty"`
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlscertificate.html#cfn-appmesh-virtualnode-listenertlscertificate-file
+ File *VirtualNode_ListenerTlsFileCertificate `json:"File,omitempty"`
+
+ // SDS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlscertificate.html#cfn-appmesh-virtualnode-listenertlscertificate-sds
+ SDS *VirtualNode_ListenerTlsSdsCertificate `json:"SDS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ListenerTlsCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ListenerTlsCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsfilecertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsfilecertificate.go
new file mode 100644
index 0000000000..6ecbd31684
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsfilecertificate.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ListenerTlsFileCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html
+type VirtualNode_ListenerTlsFileCertificate struct {
+
+ // CertificateChain AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html#cfn-appmesh-virtualnode-listenertlsfilecertificate-certificatechain
+ CertificateChain *types.Value `json:"CertificateChain,omitempty"`
+
+ // PrivateKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html#cfn-appmesh-virtualnode-listenertlsfilecertificate-privatekey
+ PrivateKey *types.Value `json:"PrivateKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ListenerTlsFileCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlssdscertificate.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlssdscertificate.go
new file mode 100644
index 0000000000..bfc4340183
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlssdscertificate.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ListenerTlsSdsCertificate AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html
+type VirtualNode_ListenerTlsSdsCertificate struct {
+
+ // SecretName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html#cfn-appmesh-virtualnode-listenertlssdscertificate-secretname
+ SecretName *types.Value `json:"SecretName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ListenerTlsSdsCertificate) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsvalidationcontext.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsvalidationcontext.go
new file mode 100644
index 0000000000..0f6bbecdd5
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsvalidationcontext.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ListenerTlsValidationContext AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ListenerTlsValidationContext)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontext.html
+type VirtualNode_ListenerTlsValidationContext struct {
+
+ // SubjectAlternativeNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontext.html#cfn-appmesh-virtualnode-listenertlsvalidationcontext-subjectalternativenames
+ SubjectAlternativeNames *VirtualNode_SubjectAlternativeNames `json:"SubjectAlternativeNames,omitempty"`
+
+ // Trust AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontext.html#cfn-appmesh-virtualnode-listenertlsvalidationcontext-trust
+ Trust *VirtualNode_ListenerTlsValidationContextTrust `json:"Trust,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ListenerTlsValidationContext) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ListenerTlsValidationContext"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsvalidationcontexttrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsvalidationcontexttrust.go
new file mode 100644
index 0000000000..7656c889c4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_listenertlsvalidationcontexttrust.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ListenerTlsValidationContextTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontexttrust.html
+type VirtualNode_ListenerTlsValidationContextTrust struct {
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontexttrust.html#cfn-appmesh-virtualnode-listenertlsvalidationcontexttrust-file
+ File *VirtualNode_TlsValidationContextFileTrust `json:"File,omitempty"`
+
+ // SDS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontexttrust.html#cfn-appmesh-virtualnode-listenertlsvalidationcontexttrust-sds
+ SDS *VirtualNode_TlsValidationContextSdsTrust `json:"SDS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ListenerTlsValidationContextTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_logging.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_logging.go
new file mode 100644
index 0000000000..159876459c
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_logging.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_Logging AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.Logging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-logging.html
+type VirtualNode_Logging struct {
+
+ // AccessLog AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-logging.html#cfn-appmesh-virtualnode-logging-accesslog
+ AccessLog *VirtualNode_AccessLog `json:"AccessLog,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_Logging) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.Logging"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_outlierdetection.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_outlierdetection.go
new file mode 100644
index 0000000000..10d3787ee4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_outlierdetection.go
@@ -0,0 +1,52 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_OutlierDetection AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.OutlierDetection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html
+type VirtualNode_OutlierDetection struct {
+
+ // BaseEjectionDuration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-baseejectionduration
+ BaseEjectionDuration *VirtualNode_Duration `json:"BaseEjectionDuration,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-interval
+ Interval *VirtualNode_Duration `json:"Interval,omitempty"`
+
+ // MaxEjectionPercent AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-maxejectionpercent
+ MaxEjectionPercent *types.Value `json:"MaxEjectionPercent"`
+
+ // MaxServerErrors AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html#cfn-appmesh-virtualnode-outlierdetection-maxservererrors
+ MaxServerErrors *types.Value `json:"MaxServerErrors"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_OutlierDetection) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.OutlierDetection"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_portmapping.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_portmapping.go
new file mode 100644
index 0000000000..c5aad60dc2
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_portmapping.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_PortMapping AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.PortMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-portmapping.html
+type VirtualNode_PortMapping struct {
+
+ // Port AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-portmapping.html#cfn-appmesh-virtualnode-portmapping-port
+ Port *types.Value `json:"Port"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-portmapping.html#cfn-appmesh-virtualnode-portmapping-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_PortMapping) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.PortMapping"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_servicediscovery.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_servicediscovery.go
new file mode 100644
index 0000000000..f901282c83
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_servicediscovery.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_ServiceDiscovery AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.ServiceDiscovery)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html
+type VirtualNode_ServiceDiscovery struct {
+
+ // AWSCloudMap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html#cfn-appmesh-virtualnode-servicediscovery-awscloudmap
+ AWSCloudMap *VirtualNode_AwsCloudMapServiceDiscovery `json:"AWSCloudMap,omitempty"`
+
+ // DNS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html#cfn-appmesh-virtualnode-servicediscovery-dns
+ DNS *VirtualNode_DnsServiceDiscovery `json:"DNS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_ServiceDiscovery) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.ServiceDiscovery"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_subjectalternativenamematchers.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_subjectalternativenamematchers.go
new file mode 100644
index 0000000000..bb4beeee6b
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_subjectalternativenamematchers.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_SubjectAlternativeNameMatchers AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenamematchers.html
+type VirtualNode_SubjectAlternativeNameMatchers struct {
+
+ // Exact AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenamematchers.html#cfn-appmesh-virtualnode-subjectalternativenamematchers-exact
+ Exact *types.Value `json:"Exact,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_SubjectAlternativeNameMatchers) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_subjectalternativenames.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_subjectalternativenames.go
new file mode 100644
index 0000000000..d3432d6e67
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_subjectalternativenames.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_SubjectAlternativeNames AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.SubjectAlternativeNames)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html
+type VirtualNode_SubjectAlternativeNames struct {
+
+ // Match AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html#cfn-appmesh-virtualnode-subjectalternativenames-match
+ Match *VirtualNode_SubjectAlternativeNameMatchers `json:"Match,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_SubjectAlternativeNames) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.SubjectAlternativeNames"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tcptimeout.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tcptimeout.go
new file mode 100644
index 0000000000..788bea23b4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tcptimeout.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_TcpTimeout AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.TcpTimeout)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tcptimeout.html
+type VirtualNode_TcpTimeout struct {
+
+ // Idle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tcptimeout.html#cfn-appmesh-virtualnode-tcptimeout-idle
+ Idle *VirtualNode_Duration `json:"Idle,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_TcpTimeout) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.TcpTimeout"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontext.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontext.go
new file mode 100644
index 0000000000..5b9317d6ba
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontext.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_TlsValidationContext AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.TlsValidationContext)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontext.html
+type VirtualNode_TlsValidationContext struct {
+
+ // SubjectAlternativeNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontext.html#cfn-appmesh-virtualnode-tlsvalidationcontext-subjectalternativenames
+ SubjectAlternativeNames *VirtualNode_SubjectAlternativeNames `json:"SubjectAlternativeNames,omitempty"`
+
+ // Trust AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontext.html#cfn-appmesh-virtualnode-tlsvalidationcontext-trust
+ Trust *VirtualNode_TlsValidationContextTrust `json:"Trust,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_TlsValidationContext) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.TlsValidationContext"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextacmtrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextacmtrust.go
new file mode 100644
index 0000000000..c791235bdd
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextacmtrust.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_TlsValidationContextAcmTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextacmtrust.html
+type VirtualNode_TlsValidationContextAcmTrust struct {
+
+ // CertificateAuthorityArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextacmtrust.html#cfn-appmesh-virtualnode-tlsvalidationcontextacmtrust-certificateauthorityarns
+ CertificateAuthorityArns *types.Value `json:"CertificateAuthorityArns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_TlsValidationContextAcmTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextfiletrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextfiletrust.go
new file mode 100644
index 0000000000..7118a83657
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextfiletrust.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_TlsValidationContextFileTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html
+type VirtualNode_TlsValidationContextFileTrust struct {
+
+ // CertificateChain AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html#cfn-appmesh-virtualnode-tlsvalidationcontextfiletrust-certificatechain
+ CertificateChain *types.Value `json:"CertificateChain,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_TlsValidationContextFileTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextsdstrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextsdstrust.go
new file mode 100644
index 0000000000..cd7051b7cb
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontextsdstrust.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_TlsValidationContextSdsTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html
+type VirtualNode_TlsValidationContextSdsTrust struct {
+
+ // SecretName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html#cfn-appmesh-virtualnode-tlsvalidationcontextsdstrust-secretname
+ SecretName *types.Value `json:"SecretName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_TlsValidationContextSdsTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontexttrust.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontexttrust.go
new file mode 100644
index 0000000000..c2f93fe1d3
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_tlsvalidationcontexttrust.go
@@ -0,0 +1,45 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_TlsValidationContextTrust AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.TlsValidationContextTrust)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontexttrust.html
+type VirtualNode_TlsValidationContextTrust struct {
+
+ // ACM AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontexttrust.html#cfn-appmesh-virtualnode-tlsvalidationcontexttrust-acm
+ ACM *VirtualNode_TlsValidationContextAcmTrust `json:"ACM,omitempty"`
+
+ // File AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontexttrust.html#cfn-appmesh-virtualnode-tlsvalidationcontexttrust-file
+ File *VirtualNode_TlsValidationContextFileTrust `json:"File,omitempty"`
+
+ // SDS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontexttrust.html#cfn-appmesh-virtualnode-tlsvalidationcontexttrust-sds
+ SDS *VirtualNode_TlsValidationContextSdsTrust `json:"SDS,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_TlsValidationContextTrust) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.TlsValidationContextTrust"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodeconnectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodeconnectionpool.go
new file mode 100644
index 0000000000..16c8faf9c0
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodeconnectionpool.go
@@ -0,0 +1,50 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_VirtualNodeConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html
+type VirtualNode_VirtualNodeConnectionPool struct {
+
+ // GRPC AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html#cfn-appmesh-virtualnode-virtualnodeconnectionpool-grpc
+ GRPC *VirtualNode_VirtualNodeGrpcConnectionPool `json:"GRPC,omitempty"`
+
+ // HTTP AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html#cfn-appmesh-virtualnode-virtualnodeconnectionpool-http
+ HTTP *VirtualNode_VirtualNodeHttpConnectionPool `json:"HTTP,omitempty"`
+
+ // HTTP2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html#cfn-appmesh-virtualnode-virtualnodeconnectionpool-http2
+ HTTP2 *VirtualNode_VirtualNodeHttp2ConnectionPool `json:"HTTP2,omitempty"`
+
+ // TCP AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html#cfn-appmesh-virtualnode-virtualnodeconnectionpool-tcp
+ TCP *VirtualNode_VirtualNodeTcpConnectionPool `json:"TCP,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_VirtualNodeConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodegrpcconnectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodegrpcconnectionpool.go
new file mode 100644
index 0000000000..4e6dc460d4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodegrpcconnectionpool.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_VirtualNodeGrpcConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodegrpcconnectionpool.html
+type VirtualNode_VirtualNodeGrpcConnectionPool struct {
+
+ // MaxRequests AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodegrpcconnectionpool.html#cfn-appmesh-virtualnode-virtualnodegrpcconnectionpool-maxrequests
+ MaxRequests *types.Value `json:"MaxRequests"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_VirtualNodeGrpcConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttp2connectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttp2connectionpool.go
new file mode 100644
index 0000000000..54ac2a2ed5
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttp2connectionpool.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_VirtualNodeHttp2ConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttp2connectionpool.html
+type VirtualNode_VirtualNodeHttp2ConnectionPool struct {
+
+ // MaxRequests AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttp2connectionpool.html#cfn-appmesh-virtualnode-virtualnodehttp2connectionpool-maxrequests
+ MaxRequests *types.Value `json:"MaxRequests"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_VirtualNodeHttp2ConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttpconnectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttpconnectionpool.go
new file mode 100644
index 0000000000..9e1cdcb03f
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodehttpconnectionpool.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_VirtualNodeHttpConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html
+type VirtualNode_VirtualNodeHttpConnectionPool struct {
+
+ // MaxConnections AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html#cfn-appmesh-virtualnode-virtualnodehttpconnectionpool-maxconnections
+ MaxConnections *types.Value `json:"MaxConnections"`
+
+ // MaxPendingRequests AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html#cfn-appmesh-virtualnode-virtualnodehttpconnectionpool-maxpendingrequests
+ MaxPendingRequests *types.Value `json:"MaxPendingRequests,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_VirtualNodeHttpConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodespec.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodespec.go
new file mode 100644
index 0000000000..64d571c7b4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodespec.go
@@ -0,0 +1,55 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_VirtualNodeSpec AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeSpec)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html
+type VirtualNode_VirtualNodeSpec struct {
+
+ // BackendDefaults AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-backenddefaults
+ BackendDefaults *VirtualNode_BackendDefaults `json:"BackendDefaults,omitempty"`
+
+ // Backends AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-backends
+ Backends []VirtualNode_Backend `json:"Backends,omitempty"`
+
+ // Listeners AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-listeners
+ Listeners []VirtualNode_Listener `json:"Listeners,omitempty"`
+
+ // Logging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-logging
+ Logging *VirtualNode_Logging `json:"Logging,omitempty"`
+
+ // ServiceDiscovery AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html#cfn-appmesh-virtualnode-virtualnodespec-servicediscovery
+ ServiceDiscovery *VirtualNode_ServiceDiscovery `json:"ServiceDiscovery,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_VirtualNodeSpec) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.VirtualNodeSpec"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodetcpconnectionpool.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodetcpconnectionpool.go
new file mode 100644
index 0000000000..aa89797dc2
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualnodetcpconnectionpool.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_VirtualNodeTcpConnectionPool AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodetcpconnectionpool.html
+type VirtualNode_VirtualNodeTcpConnectionPool struct {
+
+ // MaxConnections AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodetcpconnectionpool.html#cfn-appmesh-virtualnode-virtualnodetcpconnectionpool-maxconnections
+ MaxConnections *types.Value `json:"MaxConnections"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_VirtualNodeTcpConnectionPool) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualservicebackend.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualservicebackend.go
new file mode 100644
index 0000000000..9c0891a90f
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualnode_virtualservicebackend.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualNode_VirtualServiceBackend AWS CloudFormation Resource (AWS::AppMesh::VirtualNode.VirtualServiceBackend)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html
+type VirtualNode_VirtualServiceBackend struct {
+
+ // ClientPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html#cfn-appmesh-virtualnode-virtualservicebackend-clientpolicy
+ ClientPolicy *VirtualNode_ClientPolicy `json:"ClientPolicy,omitempty"`
+
+ // VirtualServiceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html#cfn-appmesh-virtualnode-virtualservicebackend-virtualservicename
+ VirtualServiceName *types.Value `json:"VirtualServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualNode_VirtualServiceBackend) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualNode.VirtualServiceBackend"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter.go
new file mode 100644
index 0000000000..ab4614506c
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter.go
@@ -0,0 +1,129 @@
+package appmesh
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualRouter AWS CloudFormation Resource (AWS::AppMesh::VirtualRouter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html
+type VirtualRouter struct {
+
+ // MeshName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-meshname
+ MeshName *types.Value `json:"MeshName,omitempty"`
+
+ // MeshOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-meshowner
+ MeshOwner *types.Value `json:"MeshOwner,omitempty"`
+
+ // Spec AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-spec
+ Spec *VirtualRouter_VirtualRouterSpec `json:"Spec,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VirtualRouterName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html#cfn-appmesh-virtualrouter-virtualroutername
+ VirtualRouterName *types.Value `json:"VirtualRouterName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualRouter) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualRouter"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VirtualRouter) MarshalJSON() ([]byte, error) {
+ type Properties VirtualRouter
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VirtualRouter) UnmarshalJSON(b []byte) error {
+ type Properties VirtualRouter
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VirtualRouter(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_portmapping.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_portmapping.go
new file mode 100644
index 0000000000..52eeb5faf4
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_portmapping.go
@@ -0,0 +1,42 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualRouter_PortMapping AWS CloudFormation Resource (AWS::AppMesh::VirtualRouter.PortMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html
+type VirtualRouter_PortMapping struct {
+
+ // Port AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html#cfn-appmesh-virtualrouter-portmapping-port
+ Port *types.Value `json:"Port"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html#cfn-appmesh-virtualrouter-portmapping-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualRouter_PortMapping) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualRouter.PortMapping"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_virtualrouterlistener.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_virtualrouterlistener.go
new file mode 100644
index 0000000000..a2291cbf18
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_virtualrouterlistener.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualRouter_VirtualRouterListener AWS CloudFormation Resource (AWS::AppMesh::VirtualRouter.VirtualRouterListener)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterlistener.html
+type VirtualRouter_VirtualRouterListener struct {
+
+ // PortMapping AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterlistener.html#cfn-appmesh-virtualrouter-virtualrouterlistener-portmapping
+ PortMapping *VirtualRouter_PortMapping `json:"PortMapping,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualRouter_VirtualRouterListener) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualRouter.VirtualRouterListener"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_virtualrouterspec.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_virtualrouterspec.go
new file mode 100644
index 0000000000..13a4f678f6
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualrouter_virtualrouterspec.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualRouter_VirtualRouterSpec AWS CloudFormation Resource (AWS::AppMesh::VirtualRouter.VirtualRouterSpec)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html
+type VirtualRouter_VirtualRouterSpec struct {
+
+ // Listeners AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html#cfn-appmesh-virtualrouter-virtualrouterspec-listeners
+ Listeners []VirtualRouter_VirtualRouterListener `json:"Listeners,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualRouter_VirtualRouterSpec) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualRouter.VirtualRouterSpec"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualservice.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice.go
new file mode 100644
index 0000000000..d1b0204579
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice.go
@@ -0,0 +1,129 @@
+package appmesh
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualService AWS CloudFormation Resource (AWS::AppMesh::VirtualService)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html
+type VirtualService struct {
+
+ // MeshName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-meshname
+ MeshName *types.Value `json:"MeshName,omitempty"`
+
+ // MeshOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-meshowner
+ MeshOwner *types.Value `json:"MeshOwner,omitempty"`
+
+ // Spec AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-spec
+ Spec *VirtualService_VirtualServiceSpec `json:"Spec,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VirtualServiceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html#cfn-appmesh-virtualservice-virtualservicename
+ VirtualServiceName *types.Value `json:"VirtualServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualService) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualService"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VirtualService) MarshalJSON() ([]byte, error) {
+ type Properties VirtualService
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VirtualService) UnmarshalJSON(b []byte) error {
+ type Properties VirtualService
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VirtualService(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualnodeserviceprovider.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualnodeserviceprovider.go
new file mode 100644
index 0000000000..3fc6c4cbe9
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualnodeserviceprovider.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualService_VirtualNodeServiceProvider AWS CloudFormation Resource (AWS::AppMesh::VirtualService.VirtualNodeServiceProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualnodeserviceprovider.html
+type VirtualService_VirtualNodeServiceProvider struct {
+
+ // VirtualNodeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualnodeserviceprovider.html#cfn-appmesh-virtualservice-virtualnodeserviceprovider-virtualnodename
+ VirtualNodeName *types.Value `json:"VirtualNodeName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualService_VirtualNodeServiceProvider) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualService.VirtualNodeServiceProvider"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualrouterserviceprovider.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualrouterserviceprovider.go
new file mode 100644
index 0000000000..450b121ca1
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualrouterserviceprovider.go
@@ -0,0 +1,37 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualService_VirtualRouterServiceProvider AWS CloudFormation Resource (AWS::AppMesh::VirtualService.VirtualRouterServiceProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualrouterserviceprovider.html
+type VirtualService_VirtualRouterServiceProvider struct {
+
+ // VirtualRouterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualrouterserviceprovider.html#cfn-appmesh-virtualservice-virtualrouterserviceprovider-virtualroutername
+ VirtualRouterName *types.Value `json:"VirtualRouterName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualService_VirtualRouterServiceProvider) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualService.VirtualRouterServiceProvider"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualserviceprovider.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualserviceprovider.go
new file mode 100644
index 0000000000..7db1b669cb
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualserviceprovider.go
@@ -0,0 +1,40 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualService_VirtualServiceProvider AWS CloudFormation Resource (AWS::AppMesh::VirtualService.VirtualServiceProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualserviceprovider.html
+type VirtualService_VirtualServiceProvider struct {
+
+ // VirtualNode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualserviceprovider.html#cfn-appmesh-virtualservice-virtualserviceprovider-virtualnode
+ VirtualNode *VirtualService_VirtualNodeServiceProvider `json:"VirtualNode,omitempty"`
+
+ // VirtualRouter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualserviceprovider.html#cfn-appmesh-virtualservice-virtualserviceprovider-virtualrouter
+ VirtualRouter *VirtualService_VirtualRouterServiceProvider `json:"VirtualRouter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualService_VirtualServiceProvider) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualService.VirtualServiceProvider"
+}
diff --git a/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualservicespec.go b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualservicespec.go
new file mode 100644
index 0000000000..a38af7f93e
--- /dev/null
+++ b/goformation/cloudformation/appmesh/aws-appmesh-virtualservice_virtualservicespec.go
@@ -0,0 +1,35 @@
+package appmesh
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualService_VirtualServiceSpec AWS CloudFormation Resource (AWS::AppMesh::VirtualService.VirtualServiceSpec)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualservicespec.html
+type VirtualService_VirtualServiceSpec struct {
+
+ // Provider AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualservicespec.html#cfn-appmesh-virtualservice-virtualservicespec-provider
+ Provider *VirtualService_VirtualServiceProvider `json:"Provider,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualService_VirtualServiceSpec) AWSCloudFormationType() string {
+ return "AWS::AppMesh::VirtualService.VirtualServiceSpec"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service.go b/goformation/cloudformation/apprunner/aws-apprunner-service.go
new file mode 100644
index 0000000000..94be3e2ac5
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service.go
@@ -0,0 +1,139 @@
+package apprunner
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service AWS CloudFormation Resource (AWS::AppRunner::Service)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html
+type Service struct {
+
+ // AutoScalingConfigurationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-autoscalingconfigurationarn
+ AutoScalingConfigurationArn *types.Value `json:"AutoScalingConfigurationArn,omitempty"`
+
+ // EncryptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-encryptionconfiguration
+ EncryptionConfiguration *Service_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"`
+
+ // HealthCheckConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-healthcheckconfiguration
+ HealthCheckConfiguration *Service_HealthCheckConfiguration `json:"HealthCheckConfiguration,omitempty"`
+
+ // InstanceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-instanceconfiguration
+ InstanceConfiguration *Service_InstanceConfiguration `json:"InstanceConfiguration,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // SourceConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-sourceconfiguration
+ SourceConfiguration *Service_SourceConfiguration `json:"SourceConfiguration,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apprunner-service.html#cfn-apprunner-service-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Service) MarshalJSON() ([]byte, error) {
+ type Properties Service
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Service) UnmarshalJSON(b []byte) error {
+ type Properties Service
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Service(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_authenticationconfiguration.go b/goformation/cloudformation/apprunner/aws-apprunner-service_authenticationconfiguration.go
new file mode 100644
index 0000000000..4c34acdc0e
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_authenticationconfiguration.go
@@ -0,0 +1,42 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_AuthenticationConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.AuthenticationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-authenticationconfiguration.html
+type Service_AuthenticationConfiguration struct {
+
+ // AccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-authenticationconfiguration.html#cfn-apprunner-service-authenticationconfiguration-accessrolearn
+ AccessRoleArn *types.Value `json:"AccessRoleArn,omitempty"`
+
+ // ConnectionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-authenticationconfiguration.html#cfn-apprunner-service-authenticationconfiguration-connectionarn
+ ConnectionArn *types.Value `json:"ConnectionArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_AuthenticationConfiguration) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.AuthenticationConfiguration"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_codeconfiguration.go b/goformation/cloudformation/apprunner/aws-apprunner-service_codeconfiguration.go
new file mode 100644
index 0000000000..2a535c8e59
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_codeconfiguration.go
@@ -0,0 +1,42 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_CodeConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.CodeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfiguration.html
+type Service_CodeConfiguration struct {
+
+ // CodeConfigurationValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfiguration.html#cfn-apprunner-service-codeconfiguration-codeconfigurationvalues
+ CodeConfigurationValues *Service_CodeConfigurationValues `json:"CodeConfigurationValues,omitempty"`
+
+ // ConfigurationSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfiguration.html#cfn-apprunner-service-codeconfiguration-configurationsource
+ ConfigurationSource *types.Value `json:"ConfigurationSource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_CodeConfiguration) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.CodeConfiguration"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_codeconfigurationvalues.go b/goformation/cloudformation/apprunner/aws-apprunner-service_codeconfigurationvalues.go
new file mode 100644
index 0000000000..8bc9fa2239
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_codeconfigurationvalues.go
@@ -0,0 +1,57 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_CodeConfigurationValues AWS CloudFormation Resource (AWS::AppRunner::Service.CodeConfigurationValues)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html
+type Service_CodeConfigurationValues struct {
+
+ // BuildCommand AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html#cfn-apprunner-service-codeconfigurationvalues-buildcommand
+ BuildCommand *types.Value `json:"BuildCommand,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html#cfn-apprunner-service-codeconfigurationvalues-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // Runtime AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html#cfn-apprunner-service-codeconfigurationvalues-runtime
+ Runtime *types.Value `json:"Runtime,omitempty"`
+
+ // RuntimeEnvironmentVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html#cfn-apprunner-service-codeconfigurationvalues-runtimeenvironmentvariables
+ RuntimeEnvironmentVariables []Service_KeyValuePair `json:"RuntimeEnvironmentVariables,omitempty"`
+
+ // StartCommand AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-codeconfigurationvalues.html#cfn-apprunner-service-codeconfigurationvalues-startcommand
+ StartCommand *types.Value `json:"StartCommand,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_CodeConfigurationValues) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.CodeConfigurationValues"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_coderepository.go b/goformation/cloudformation/apprunner/aws-apprunner-service_coderepository.go
new file mode 100644
index 0000000000..4ac70b529b
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_coderepository.go
@@ -0,0 +1,47 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_CodeRepository AWS CloudFormation Resource (AWS::AppRunner::Service.CodeRepository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-coderepository.html
+type Service_CodeRepository struct {
+
+ // CodeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-coderepository.html#cfn-apprunner-service-coderepository-codeconfiguration
+ CodeConfiguration *Service_CodeConfiguration `json:"CodeConfiguration,omitempty"`
+
+ // RepositoryUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-coderepository.html#cfn-apprunner-service-coderepository-repositoryurl
+ RepositoryUrl *types.Value `json:"RepositoryUrl,omitempty"`
+
+ // SourceCodeVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-coderepository.html#cfn-apprunner-service-coderepository-sourcecodeversion
+ SourceCodeVersion *Service_SourceCodeVersion `json:"SourceCodeVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_CodeRepository) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.CodeRepository"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_encryptionconfiguration.go b/goformation/cloudformation/apprunner/aws-apprunner-service_encryptionconfiguration.go
new file mode 100644
index 0000000000..5ec34472b3
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_encryptionconfiguration.go
@@ -0,0 +1,37 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_EncryptionConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.EncryptionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-encryptionconfiguration.html
+type Service_EncryptionConfiguration struct {
+
+ // KmsKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-encryptionconfiguration.html#cfn-apprunner-service-encryptionconfiguration-kmskey
+ KmsKey *types.Value `json:"KmsKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_EncryptionConfiguration) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.EncryptionConfiguration"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_healthcheckconfiguration.go b/goformation/cloudformation/apprunner/aws-apprunner-service_healthcheckconfiguration.go
new file mode 100644
index 0000000000..1e3607d5ff
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_healthcheckconfiguration.go
@@ -0,0 +1,62 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_HealthCheckConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.HealthCheckConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html
+type Service_HealthCheckConfiguration struct {
+
+ // HealthyThreshold AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html#cfn-apprunner-service-healthcheckconfiguration-healthythreshold
+ HealthyThreshold *types.Value `json:"HealthyThreshold,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html#cfn-apprunner-service-healthcheckconfiguration-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html#cfn-apprunner-service-healthcheckconfiguration-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html#cfn-apprunner-service-healthcheckconfiguration-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html#cfn-apprunner-service-healthcheckconfiguration-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // UnhealthyThreshold AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-healthcheckconfiguration.html#cfn-apprunner-service-healthcheckconfiguration-unhealthythreshold
+ UnhealthyThreshold *types.Value `json:"UnhealthyThreshold,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_HealthCheckConfiguration) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.HealthCheckConfiguration"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_imageconfiguration.go b/goformation/cloudformation/apprunner/aws-apprunner-service_imageconfiguration.go
new file mode 100644
index 0000000000..0d2e42041a
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_imageconfiguration.go
@@ -0,0 +1,47 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_ImageConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.ImageConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imageconfiguration.html
+type Service_ImageConfiguration struct {
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imageconfiguration.html#cfn-apprunner-service-imageconfiguration-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // RuntimeEnvironmentVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imageconfiguration.html#cfn-apprunner-service-imageconfiguration-runtimeenvironmentvariables
+ RuntimeEnvironmentVariables []Service_KeyValuePair `json:"RuntimeEnvironmentVariables,omitempty"`
+
+ // StartCommand AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imageconfiguration.html#cfn-apprunner-service-imageconfiguration-startcommand
+ StartCommand *types.Value `json:"StartCommand,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_ImageConfiguration) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.ImageConfiguration"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_imagerepository.go b/goformation/cloudformation/apprunner/aws-apprunner-service_imagerepository.go
new file mode 100644
index 0000000000..9870a4de04
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_imagerepository.go
@@ -0,0 +1,47 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_ImageRepository AWS CloudFormation Resource (AWS::AppRunner::Service.ImageRepository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imagerepository.html
+type Service_ImageRepository struct {
+
+ // ImageConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imagerepository.html#cfn-apprunner-service-imagerepository-imageconfiguration
+ ImageConfiguration *Service_ImageConfiguration `json:"ImageConfiguration,omitempty"`
+
+ // ImageIdentifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imagerepository.html#cfn-apprunner-service-imagerepository-imageidentifier
+ ImageIdentifier *types.Value `json:"ImageIdentifier,omitempty"`
+
+ // ImageRepositoryType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-imagerepository.html#cfn-apprunner-service-imagerepository-imagerepositorytype
+ ImageRepositoryType *types.Value `json:"ImageRepositoryType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_ImageRepository) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.ImageRepository"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_instanceconfiguration.go b/goformation/cloudformation/apprunner/aws-apprunner-service_instanceconfiguration.go
new file mode 100644
index 0000000000..d0c1557785
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_instanceconfiguration.go
@@ -0,0 +1,47 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_InstanceConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.InstanceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-instanceconfiguration.html
+type Service_InstanceConfiguration struct {
+
+ // Cpu AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-instanceconfiguration.html#cfn-apprunner-service-instanceconfiguration-cpu
+ Cpu *types.Value `json:"Cpu,omitempty"`
+
+ // InstanceRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-instanceconfiguration.html#cfn-apprunner-service-instanceconfiguration-instancerolearn
+ InstanceRoleArn *types.Value `json:"InstanceRoleArn,omitempty"`
+
+ // Memory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-instanceconfiguration.html#cfn-apprunner-service-instanceconfiguration-memory
+ Memory *types.Value `json:"Memory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_InstanceConfiguration) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.InstanceConfiguration"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_keyvaluepair.go b/goformation/cloudformation/apprunner/aws-apprunner-service_keyvaluepair.go
new file mode 100644
index 0000000000..37d016fdb9
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_keyvaluepair.go
@@ -0,0 +1,42 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_KeyValuePair AWS CloudFormation Resource (AWS::AppRunner::Service.KeyValuePair)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html
+type Service_KeyValuePair struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html#cfn-apprunner-service-keyvaluepair-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-keyvaluepair.html#cfn-apprunner-service-keyvaluepair-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_KeyValuePair) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.KeyValuePair"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_sourcecodeversion.go b/goformation/cloudformation/apprunner/aws-apprunner-service_sourcecodeversion.go
new file mode 100644
index 0000000000..57480eb192
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_sourcecodeversion.go
@@ -0,0 +1,42 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_SourceCodeVersion AWS CloudFormation Resource (AWS::AppRunner::Service.SourceCodeVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourcecodeversion.html
+type Service_SourceCodeVersion struct {
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourcecodeversion.html#cfn-apprunner-service-sourcecodeversion-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourcecodeversion.html#cfn-apprunner-service-sourcecodeversion-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_SourceCodeVersion) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.SourceCodeVersion"
+}
diff --git a/goformation/cloudformation/apprunner/aws-apprunner-service_sourceconfiguration.go b/goformation/cloudformation/apprunner/aws-apprunner-service_sourceconfiguration.go
new file mode 100644
index 0000000000..a1e67591b0
--- /dev/null
+++ b/goformation/cloudformation/apprunner/aws-apprunner-service_sourceconfiguration.go
@@ -0,0 +1,52 @@
+package apprunner
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_SourceConfiguration AWS CloudFormation Resource (AWS::AppRunner::Service.SourceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourceconfiguration.html
+type Service_SourceConfiguration struct {
+
+ // AuthenticationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourceconfiguration.html#cfn-apprunner-service-sourceconfiguration-authenticationconfiguration
+ AuthenticationConfiguration *Service_AuthenticationConfiguration `json:"AuthenticationConfiguration,omitempty"`
+
+ // AutoDeploymentsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourceconfiguration.html#cfn-apprunner-service-sourceconfiguration-autodeploymentsenabled
+ AutoDeploymentsEnabled *types.Value `json:"AutoDeploymentsEnabled,omitempty"`
+
+ // CodeRepository AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourceconfiguration.html#cfn-apprunner-service-sourceconfiguration-coderepository
+ CodeRepository *Service_CodeRepository `json:"CodeRepository,omitempty"`
+
+ // ImageRepository AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apprunner-service-sourceconfiguration.html#cfn-apprunner-service-sourceconfiguration-imagerepository
+ ImageRepository *Service_ImageRepository `json:"ImageRepository,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_SourceConfiguration) AWSCloudFormationType() string {
+ return "AWS::AppRunner::Service.SourceConfiguration"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-appblock.go b/goformation/cloudformation/appstream/aws-appstream-appblock.go
new file mode 100644
index 0000000000..d93ce45571
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-appblock.go
@@ -0,0 +1,134 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// AppBlock AWS CloudFormation Resource (AWS::AppStream::AppBlock)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html
+type AppBlock struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisplayName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-displayname
+ DisplayName *types.Value `json:"DisplayName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SetupScriptDetails AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-setupscriptdetails
+ SetupScriptDetails *AppBlock_ScriptDetails `json:"SetupScriptDetails,omitempty"`
+
+ // SourceS3Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-sources3location
+ SourceS3Location *AppBlock_S3Location `json:"SourceS3Location,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-appblock.html#cfn-appstream-appblock-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AppBlock) AWSCloudFormationType() string {
+ return "AWS::AppStream::AppBlock"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AppBlock) MarshalJSON() ([]byte, error) {
+ type Properties AppBlock
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AppBlock) UnmarshalJSON(b []byte) error {
+ type Properties AppBlock
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AppBlock(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-appblock_s3location.go b/goformation/cloudformation/appstream/aws-appstream-appblock_s3location.go
new file mode 100644
index 0000000000..d954526bf3
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-appblock_s3location.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AppBlock_S3Location AWS CloudFormation Resource (AWS::AppStream::AppBlock.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html
+type AppBlock_S3Location struct {
+
+ // S3Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html#cfn-appstream-appblock-s3location-s3bucket
+ S3Bucket *types.Value `json:"S3Bucket,omitempty"`
+
+ // S3Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-s3location.html#cfn-appstream-appblock-s3location-s3key
+ S3Key *types.Value `json:"S3Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AppBlock_S3Location) AWSCloudFormationType() string {
+ return "AWS::AppStream::AppBlock.S3Location"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-appblock_scriptdetails.go b/goformation/cloudformation/appstream/aws-appstream-appblock_scriptdetails.go
new file mode 100644
index 0000000000..aad90030c9
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-appblock_scriptdetails.go
@@ -0,0 +1,52 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AppBlock_ScriptDetails AWS CloudFormation Resource (AWS::AppStream::AppBlock.ScriptDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html
+type AppBlock_ScriptDetails struct {
+
+ // ExecutableParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html#cfn-appstream-appblock-scriptdetails-executableparameters
+ ExecutableParameters *types.Value `json:"ExecutableParameters,omitempty"`
+
+ // ExecutablePath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html#cfn-appstream-appblock-scriptdetails-executablepath
+ ExecutablePath *types.Value `json:"ExecutablePath,omitempty"`
+
+ // ScriptS3Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html#cfn-appstream-appblock-scriptdetails-scripts3location
+ ScriptS3Location *AppBlock_S3Location `json:"ScriptS3Location,omitempty"`
+
+ // TimeoutInSeconds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-appblock-scriptdetails.html#cfn-appstream-appblock-scriptdetails-timeoutinseconds
+ TimeoutInSeconds *types.Value `json:"TimeoutInSeconds"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AppBlock_ScriptDetails) AWSCloudFormationType() string {
+ return "AWS::AppStream::AppBlock.ScriptDetails"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-application.go b/goformation/cloudformation/appstream/aws-appstream-application.go
new file mode 100644
index 0000000000..8a71c83adb
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-application.go
@@ -0,0 +1,164 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application AWS CloudFormation Resource (AWS::AppStream::Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html
+type Application struct {
+
+ // AppBlockArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-appblockarn
+ AppBlockArn *types.Value `json:"AppBlockArn,omitempty"`
+
+ // AttributesToDelete AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-attributestodelete
+ AttributesToDelete *types.Value `json:"AttributesToDelete,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisplayName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-displayname
+ DisplayName *types.Value `json:"DisplayName,omitempty"`
+
+ // IconS3Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-icons3location
+ IconS3Location *Application_S3Location `json:"IconS3Location,omitempty"`
+
+ // InstanceFamilies AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-instancefamilies
+ InstanceFamilies *types.Value `json:"InstanceFamilies,omitempty"`
+
+ // LaunchParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-launchparameters
+ LaunchParameters *types.Value `json:"LaunchParameters,omitempty"`
+
+ // LaunchPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-launchpath
+ LaunchPath *types.Value `json:"LaunchPath,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Platforms AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-platforms
+ Platforms *types.Value `json:"Platforms,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // WorkingDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-application.html#cfn-appstream-application-workingdirectory
+ WorkingDirectory *types.Value `json:"WorkingDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application) AWSCloudFormationType() string {
+ return "AWS::AppStream::Application"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Application) MarshalJSON() ([]byte, error) {
+ type Properties Application
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Application) UnmarshalJSON(b []byte) error {
+ type Properties Application
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Application(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-application_s3location.go b/goformation/cloudformation/appstream/aws-appstream-application_s3location.go
new file mode 100644
index 0000000000..fdd7f78442
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-application_s3location.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_S3Location AWS CloudFormation Resource (AWS::AppStream::Application.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-application-s3location.html
+type Application_S3Location struct {
+
+ // S3Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-application-s3location.html#cfn-appstream-application-s3location-s3bucket
+ S3Bucket *types.Value `json:"S3Bucket,omitempty"`
+
+ // S3Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-application-s3location.html#cfn-appstream-application-s3location-s3key
+ S3Key *types.Value `json:"S3Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_S3Location) AWSCloudFormationType() string {
+ return "AWS::AppStream::Application.S3Location"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-applicationfleetassociation.go b/goformation/cloudformation/appstream/aws-appstream-applicationfleetassociation.go
new file mode 100644
index 0000000000..7c26bee120
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-applicationfleetassociation.go
@@ -0,0 +1,113 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationFleetAssociation AWS CloudFormation Resource (AWS::AppStream::ApplicationFleetAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationfleetassociation.html
+type ApplicationFleetAssociation struct {
+
+ // ApplicationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationfleetassociation.html#cfn-appstream-applicationfleetassociation-applicationarn
+ ApplicationArn *types.Value `json:"ApplicationArn,omitempty"`
+
+ // FleetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-applicationfleetassociation.html#cfn-appstream-applicationfleetassociation-fleetname
+ FleetName *types.Value `json:"FleetName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationFleetAssociation) AWSCloudFormationType() string {
+ return "AWS::AppStream::ApplicationFleetAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApplicationFleetAssociation) MarshalJSON() ([]byte, error) {
+ type Properties ApplicationFleetAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApplicationFleetAssociation) UnmarshalJSON(b []byte) error {
+ type Properties ApplicationFleetAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApplicationFleetAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-directoryconfig.go b/goformation/cloudformation/appstream/aws-appstream-directoryconfig.go
new file mode 100644
index 0000000000..15029557a6
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-directoryconfig.go
@@ -0,0 +1,118 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DirectoryConfig AWS CloudFormation Resource (AWS::AppStream::DirectoryConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-directoryconfig.html
+type DirectoryConfig struct {
+
+ // DirectoryName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-directoryconfig.html#cfn-appstream-directoryconfig-directoryname
+ DirectoryName *types.Value `json:"DirectoryName,omitempty"`
+
+ // OrganizationalUnitDistinguishedNames AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-directoryconfig.html#cfn-appstream-directoryconfig-organizationalunitdistinguishednames
+ OrganizationalUnitDistinguishedNames *types.Value `json:"OrganizationalUnitDistinguishedNames,omitempty"`
+
+ // ServiceAccountCredentials AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-directoryconfig.html#cfn-appstream-directoryconfig-serviceaccountcredentials
+ ServiceAccountCredentials *DirectoryConfig_ServiceAccountCredentials `json:"ServiceAccountCredentials,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DirectoryConfig) AWSCloudFormationType() string {
+ return "AWS::AppStream::DirectoryConfig"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DirectoryConfig) MarshalJSON() ([]byte, error) {
+ type Properties DirectoryConfig
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DirectoryConfig) UnmarshalJSON(b []byte) error {
+ type Properties DirectoryConfig
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DirectoryConfig(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-directoryconfig_serviceaccountcredentials.go b/goformation/cloudformation/appstream/aws-appstream-directoryconfig_serviceaccountcredentials.go
new file mode 100644
index 0000000000..870171a693
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-directoryconfig_serviceaccountcredentials.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DirectoryConfig_ServiceAccountCredentials AWS CloudFormation Resource (AWS::AppStream::DirectoryConfig.ServiceAccountCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-directoryconfig-serviceaccountcredentials.html
+type DirectoryConfig_ServiceAccountCredentials struct {
+
+ // AccountName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-directoryconfig-serviceaccountcredentials.html#cfn-appstream-directoryconfig-serviceaccountcredentials-accountname
+ AccountName *types.Value `json:"AccountName,omitempty"`
+
+ // AccountPassword AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-directoryconfig-serviceaccountcredentials.html#cfn-appstream-directoryconfig-serviceaccountcredentials-accountpassword
+ AccountPassword *types.Value `json:"AccountPassword,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DirectoryConfig_ServiceAccountCredentials) AWSCloudFormationType() string {
+ return "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-fleet.go b/goformation/cloudformation/appstream/aws-appstream-fleet.go
new file mode 100644
index 0000000000..9b868f3725
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-fleet.go
@@ -0,0 +1,204 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet AWS CloudFormation Resource (AWS::AppStream::Fleet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html
+type Fleet struct {
+
+ // ComputeCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-computecapacity
+ ComputeCapacity *Fleet_ComputeCapacity `json:"ComputeCapacity,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisconnectTimeoutInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-disconnecttimeoutinseconds
+ DisconnectTimeoutInSeconds *types.Value `json:"DisconnectTimeoutInSeconds,omitempty"`
+
+ // DisplayName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-displayname
+ DisplayName *types.Value `json:"DisplayName,omitempty"`
+
+ // DomainJoinInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-domainjoininfo
+ DomainJoinInfo *Fleet_DomainJoinInfo `json:"DomainJoinInfo,omitempty"`
+
+ // EnableDefaultInternetAccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-enabledefaultinternetaccess
+ EnableDefaultInternetAccess *types.Value `json:"EnableDefaultInternetAccess,omitempty"`
+
+ // FleetType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-fleettype
+ FleetType *types.Value `json:"FleetType,omitempty"`
+
+ // IamRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-iamrolearn
+ IamRoleArn *types.Value `json:"IamRoleArn,omitempty"`
+
+ // IdleDisconnectTimeoutInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-idledisconnecttimeoutinseconds
+ IdleDisconnectTimeoutInSeconds *types.Value `json:"IdleDisconnectTimeoutInSeconds,omitempty"`
+
+ // ImageArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-imagearn
+ ImageArn *types.Value `json:"ImageArn,omitempty"`
+
+ // ImageName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-imagename
+ ImageName *types.Value `json:"ImageName,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // MaxConcurrentSessions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-maxconcurrentsessions
+ MaxConcurrentSessions *types.Value `json:"MaxConcurrentSessions,omitempty"`
+
+ // MaxUserDurationInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-maxuserdurationinseconds
+ MaxUserDurationInSeconds *types.Value `json:"MaxUserDurationInSeconds,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Platform AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-platform
+ Platform *types.Value `json:"Platform,omitempty"`
+
+ // StreamView AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-streamview
+ StreamView *types.Value `json:"StreamView,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // UsbDeviceFilterStrings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-usbdevicefilterstrings
+ UsbDeviceFilterStrings *types.Value `json:"UsbDeviceFilterStrings,omitempty"`
+
+ // VpcConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-fleet.html#cfn-appstream-fleet-vpcconfig
+ VpcConfig *Fleet_VpcConfig `json:"VpcConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet) AWSCloudFormationType() string {
+ return "AWS::AppStream::Fleet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Fleet) MarshalJSON() ([]byte, error) {
+ type Properties Fleet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Fleet) UnmarshalJSON(b []byte) error {
+ type Properties Fleet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Fleet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-fleet_computecapacity.go b/goformation/cloudformation/appstream/aws-appstream-fleet_computecapacity.go
new file mode 100644
index 0000000000..0b3570091f
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-fleet_computecapacity.go
@@ -0,0 +1,37 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_ComputeCapacity AWS CloudFormation Resource (AWS::AppStream::Fleet.ComputeCapacity)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-computecapacity.html
+type Fleet_ComputeCapacity struct {
+
+ // DesiredInstances AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-computecapacity.html#cfn-appstream-fleet-computecapacity-desiredinstances
+ DesiredInstances *types.Value `json:"DesiredInstances"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_ComputeCapacity) AWSCloudFormationType() string {
+ return "AWS::AppStream::Fleet.ComputeCapacity"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-fleet_domainjoininfo.go b/goformation/cloudformation/appstream/aws-appstream-fleet_domainjoininfo.go
new file mode 100644
index 0000000000..83ac1d57ed
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-fleet_domainjoininfo.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_DomainJoinInfo AWS CloudFormation Resource (AWS::AppStream::Fleet.DomainJoinInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-domainjoininfo.html
+type Fleet_DomainJoinInfo struct {
+
+ // DirectoryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-domainjoininfo.html#cfn-appstream-fleet-domainjoininfo-directoryname
+ DirectoryName *types.Value `json:"DirectoryName,omitempty"`
+
+ // OrganizationalUnitDistinguishedName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-domainjoininfo.html#cfn-appstream-fleet-domainjoininfo-organizationalunitdistinguishedname
+ OrganizationalUnitDistinguishedName *types.Value `json:"OrganizationalUnitDistinguishedName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_DomainJoinInfo) AWSCloudFormationType() string {
+ return "AWS::AppStream::Fleet.DomainJoinInfo"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-fleet_vpcconfig.go b/goformation/cloudformation/appstream/aws-appstream-fleet_vpcconfig.go
new file mode 100644
index 0000000000..bbaf1004c8
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-fleet_vpcconfig.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_VpcConfig AWS CloudFormation Resource (AWS::AppStream::Fleet.VpcConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-vpcconfig.html
+type Fleet_VpcConfig struct {
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-vpcconfig.html#cfn-appstream-fleet-vpcconfig-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-fleet-vpcconfig.html#cfn-appstream-fleet-vpcconfig-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_VpcConfig) AWSCloudFormationType() string {
+ return "AWS::AppStream::Fleet.VpcConfig"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-imagebuilder.go b/goformation/cloudformation/appstream/aws-appstream-imagebuilder.go
new file mode 100644
index 0000000000..3e19162bc4
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-imagebuilder.go
@@ -0,0 +1,169 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageBuilder AWS CloudFormation Resource (AWS::AppStream::ImageBuilder)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html
+type ImageBuilder struct {
+
+ // AccessEndpoints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-accessendpoints
+ AccessEndpoints []ImageBuilder_AccessEndpoint `json:"AccessEndpoints,omitempty"`
+
+ // AppstreamAgentVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-appstreamagentversion
+ AppstreamAgentVersion *types.Value `json:"AppstreamAgentVersion,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisplayName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-displayname
+ DisplayName *types.Value `json:"DisplayName,omitempty"`
+
+ // DomainJoinInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-domainjoininfo
+ DomainJoinInfo *ImageBuilder_DomainJoinInfo `json:"DomainJoinInfo,omitempty"`
+
+ // EnableDefaultInternetAccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-enabledefaultinternetaccess
+ EnableDefaultInternetAccess *types.Value `json:"EnableDefaultInternetAccess,omitempty"`
+
+ // IamRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-iamrolearn
+ IamRoleArn *types.Value `json:"IamRoleArn,omitempty"`
+
+ // ImageArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-imagearn
+ ImageArn *types.Value `json:"ImageArn,omitempty"`
+
+ // ImageName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-imagename
+ ImageName *types.Value `json:"ImageName,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-imagebuilder.html#cfn-appstream-imagebuilder-vpcconfig
+ VpcConfig *ImageBuilder_VpcConfig `json:"VpcConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageBuilder) AWSCloudFormationType() string {
+ return "AWS::AppStream::ImageBuilder"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ImageBuilder) MarshalJSON() ([]byte, error) {
+ type Properties ImageBuilder
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ImageBuilder) UnmarshalJSON(b []byte) error {
+ type Properties ImageBuilder
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ImageBuilder(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-imagebuilder_accessendpoint.go b/goformation/cloudformation/appstream/aws-appstream-imagebuilder_accessendpoint.go
new file mode 100644
index 0000000000..97ba37a741
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-imagebuilder_accessendpoint.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageBuilder_AccessEndpoint AWS CloudFormation Resource (AWS::AppStream::ImageBuilder.AccessEndpoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-accessendpoint.html
+type ImageBuilder_AccessEndpoint struct {
+
+ // EndpointType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-accessendpoint.html#cfn-appstream-imagebuilder-accessendpoint-endpointtype
+ EndpointType *types.Value `json:"EndpointType,omitempty"`
+
+ // VpceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-accessendpoint.html#cfn-appstream-imagebuilder-accessendpoint-vpceid
+ VpceId *types.Value `json:"VpceId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageBuilder_AccessEndpoint) AWSCloudFormationType() string {
+ return "AWS::AppStream::ImageBuilder.AccessEndpoint"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-imagebuilder_domainjoininfo.go b/goformation/cloudformation/appstream/aws-appstream-imagebuilder_domainjoininfo.go
new file mode 100644
index 0000000000..95b78c3cec
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-imagebuilder_domainjoininfo.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageBuilder_DomainJoinInfo AWS CloudFormation Resource (AWS::AppStream::ImageBuilder.DomainJoinInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-domainjoininfo.html
+type ImageBuilder_DomainJoinInfo struct {
+
+ // DirectoryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-domainjoininfo.html#cfn-appstream-imagebuilder-domainjoininfo-directoryname
+ DirectoryName *types.Value `json:"DirectoryName,omitempty"`
+
+ // OrganizationalUnitDistinguishedName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-domainjoininfo.html#cfn-appstream-imagebuilder-domainjoininfo-organizationalunitdistinguishedname
+ OrganizationalUnitDistinguishedName *types.Value `json:"OrganizationalUnitDistinguishedName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageBuilder_DomainJoinInfo) AWSCloudFormationType() string {
+ return "AWS::AppStream::ImageBuilder.DomainJoinInfo"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-imagebuilder_vpcconfig.go b/goformation/cloudformation/appstream/aws-appstream-imagebuilder_vpcconfig.go
new file mode 100644
index 0000000000..3b58ae63f8
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-imagebuilder_vpcconfig.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageBuilder_VpcConfig AWS CloudFormation Resource (AWS::AppStream::ImageBuilder.VpcConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-vpcconfig.html
+type ImageBuilder_VpcConfig struct {
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-vpcconfig.html#cfn-appstream-imagebuilder-vpcconfig-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-imagebuilder-vpcconfig.html#cfn-appstream-imagebuilder-vpcconfig-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageBuilder_VpcConfig) AWSCloudFormationType() string {
+ return "AWS::AppStream::ImageBuilder.VpcConfig"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-stack.go b/goformation/cloudformation/appstream/aws-appstream-stack.go
new file mode 100644
index 0000000000..26930699fc
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-stack.go
@@ -0,0 +1,169 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stack AWS CloudFormation Resource (AWS::AppStream::Stack)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html
+type Stack struct {
+
+ // AccessEndpoints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-accessendpoints
+ AccessEndpoints []Stack_AccessEndpoint `json:"AccessEndpoints,omitempty"`
+
+ // ApplicationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-applicationsettings
+ ApplicationSettings *Stack_ApplicationSettings `json:"ApplicationSettings,omitempty"`
+
+ // AttributesToDelete AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-attributestodelete
+ AttributesToDelete *types.Value `json:"AttributesToDelete,omitempty"`
+
+ // DeleteStorageConnectors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-deletestorageconnectors
+ DeleteStorageConnectors *types.Value `json:"DeleteStorageConnectors,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisplayName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-displayname
+ DisplayName *types.Value `json:"DisplayName,omitempty"`
+
+ // EmbedHostDomains AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-embedhostdomains
+ EmbedHostDomains *types.Value `json:"EmbedHostDomains,omitempty"`
+
+ // FeedbackURL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-feedbackurl
+ FeedbackURL *types.Value `json:"FeedbackURL,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RedirectURL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-redirecturl
+ RedirectURL *types.Value `json:"RedirectURL,omitempty"`
+
+ // StorageConnectors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-storageconnectors
+ StorageConnectors []Stack_StorageConnector `json:"StorageConnectors,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // UserSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stack.html#cfn-appstream-stack-usersettings
+ UserSettings []Stack_UserSetting `json:"UserSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stack) AWSCloudFormationType() string {
+ return "AWS::AppStream::Stack"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Stack) MarshalJSON() ([]byte, error) {
+ type Properties Stack
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Stack) UnmarshalJSON(b []byte) error {
+ type Properties Stack
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Stack(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-stack_accessendpoint.go b/goformation/cloudformation/appstream/aws-appstream-stack_accessendpoint.go
new file mode 100644
index 0000000000..e300ffce21
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-stack_accessendpoint.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stack_AccessEndpoint AWS CloudFormation Resource (AWS::AppStream::Stack.AccessEndpoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-accessendpoint.html
+type Stack_AccessEndpoint struct {
+
+ // EndpointType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-accessendpoint.html#cfn-appstream-stack-accessendpoint-endpointtype
+ EndpointType *types.Value `json:"EndpointType,omitempty"`
+
+ // VpceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-accessendpoint.html#cfn-appstream-stack-accessendpoint-vpceid
+ VpceId *types.Value `json:"VpceId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stack_AccessEndpoint) AWSCloudFormationType() string {
+ return "AWS::AppStream::Stack.AccessEndpoint"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-stack_applicationsettings.go b/goformation/cloudformation/appstream/aws-appstream-stack_applicationsettings.go
new file mode 100644
index 0000000000..2c3e881d9c
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-stack_applicationsettings.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stack_ApplicationSettings AWS CloudFormation Resource (AWS::AppStream::Stack.ApplicationSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-applicationsettings.html
+type Stack_ApplicationSettings struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-applicationsettings.html#cfn-appstream-stack-applicationsettings-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // SettingsGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-applicationsettings.html#cfn-appstream-stack-applicationsettings-settingsgroup
+ SettingsGroup *types.Value `json:"SettingsGroup,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stack_ApplicationSettings) AWSCloudFormationType() string {
+ return "AWS::AppStream::Stack.ApplicationSettings"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-stack_storageconnector.go b/goformation/cloudformation/appstream/aws-appstream-stack_storageconnector.go
new file mode 100644
index 0000000000..b6ac5220e8
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-stack_storageconnector.go
@@ -0,0 +1,47 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stack_StorageConnector AWS CloudFormation Resource (AWS::AppStream::Stack.StorageConnector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-storageconnector.html
+type Stack_StorageConnector struct {
+
+ // ConnectorType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-storageconnector.html#cfn-appstream-stack-storageconnector-connectortype
+ ConnectorType *types.Value `json:"ConnectorType,omitempty"`
+
+ // Domains AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-storageconnector.html#cfn-appstream-stack-storageconnector-domains
+ Domains *types.Value `json:"Domains,omitempty"`
+
+ // ResourceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-storageconnector.html#cfn-appstream-stack-storageconnector-resourceidentifier
+ ResourceIdentifier *types.Value `json:"ResourceIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stack_StorageConnector) AWSCloudFormationType() string {
+ return "AWS::AppStream::Stack.StorageConnector"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-stack_usersetting.go b/goformation/cloudformation/appstream/aws-appstream-stack_usersetting.go
new file mode 100644
index 0000000000..2f3e2185d9
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-stack_usersetting.go
@@ -0,0 +1,42 @@
+package appstream
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stack_UserSetting AWS CloudFormation Resource (AWS::AppStream::Stack.UserSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-usersetting.html
+type Stack_UserSetting struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-usersetting.html#cfn-appstream-stack-usersetting-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // Permission AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appstream-stack-usersetting.html#cfn-appstream-stack-usersetting-permission
+ Permission *types.Value `json:"Permission,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stack_UserSetting) AWSCloudFormationType() string {
+ return "AWS::AppStream::Stack.UserSetting"
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-stackfleetassociation.go b/goformation/cloudformation/appstream/aws-appstream-stackfleetassociation.go
new file mode 100644
index 0000000000..7218293234
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-stackfleetassociation.go
@@ -0,0 +1,113 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StackFleetAssociation AWS CloudFormation Resource (AWS::AppStream::StackFleetAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html
+type StackFleetAssociation struct {
+
+ // FleetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html#cfn-appstream-stackfleetassociation-fleetname
+ FleetName *types.Value `json:"FleetName,omitempty"`
+
+ // StackName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackfleetassociation.html#cfn-appstream-stackfleetassociation-stackname
+ StackName *types.Value `json:"StackName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StackFleetAssociation) AWSCloudFormationType() string {
+ return "AWS::AppStream::StackFleetAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StackFleetAssociation) MarshalJSON() ([]byte, error) {
+ type Properties StackFleetAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StackFleetAssociation) UnmarshalJSON(b []byte) error {
+ type Properties StackFleetAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StackFleetAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-stackuserassociation.go b/goformation/cloudformation/appstream/aws-appstream-stackuserassociation.go
new file mode 100644
index 0000000000..3b1959f7ca
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-stackuserassociation.go
@@ -0,0 +1,123 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StackUserAssociation AWS CloudFormation Resource (AWS::AppStream::StackUserAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html
+type StackUserAssociation struct {
+
+ // AuthenticationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html#cfn-appstream-stackuserassociation-authenticationtype
+ AuthenticationType *types.Value `json:"AuthenticationType,omitempty"`
+
+ // SendEmailNotification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html#cfn-appstream-stackuserassociation-sendemailnotification
+ SendEmailNotification *types.Value `json:"SendEmailNotification,omitempty"`
+
+ // StackName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html#cfn-appstream-stackuserassociation-stackname
+ StackName *types.Value `json:"StackName,omitempty"`
+
+ // UserName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-stackuserassociation.html#cfn-appstream-stackuserassociation-username
+ UserName *types.Value `json:"UserName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StackUserAssociation) AWSCloudFormationType() string {
+ return "AWS::AppStream::StackUserAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StackUserAssociation) MarshalJSON() ([]byte, error) {
+ type Properties StackUserAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StackUserAssociation) UnmarshalJSON(b []byte) error {
+ type Properties StackUserAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StackUserAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appstream/aws-appstream-user.go b/goformation/cloudformation/appstream/aws-appstream-user.go
new file mode 100644
index 0000000000..03ef001c60
--- /dev/null
+++ b/goformation/cloudformation/appstream/aws-appstream-user.go
@@ -0,0 +1,128 @@
+package appstream
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// User AWS CloudFormation Resource (AWS::AppStream::User)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html
+type User struct {
+
+ // AuthenticationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html#cfn-appstream-user-authenticationtype
+ AuthenticationType *types.Value `json:"AuthenticationType,omitempty"`
+
+ // FirstName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html#cfn-appstream-user-firstname
+ FirstName *types.Value `json:"FirstName,omitempty"`
+
+ // LastName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html#cfn-appstream-user-lastname
+ LastName *types.Value `json:"LastName,omitempty"`
+
+ // MessageAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html#cfn-appstream-user-messageaction
+ MessageAction *types.Value `json:"MessageAction,omitempty"`
+
+ // UserName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appstream-user.html#cfn-appstream-user-username
+ UserName *types.Value `json:"UserName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *User) AWSCloudFormationType() string {
+ return "AWS::AppStream::User"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r User) MarshalJSON() ([]byte, error) {
+ type Properties User
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *User) UnmarshalJSON(b []byte) error {
+ type Properties User
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = User(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-apicache.go b/goformation/cloudformation/appsync/aws-appsync-apicache.go
new file mode 100644
index 0000000000..c1a891972b
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-apicache.go
@@ -0,0 +1,133 @@
+package appsync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiCache AWS CloudFormation Resource (AWS::AppSync::ApiCache)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html
+type ApiCache struct {
+
+ // ApiCachingBehavior AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-apicachingbehavior
+ ApiCachingBehavior *types.Value `json:"ApiCachingBehavior,omitempty"`
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // AtRestEncryptionEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-atrestencryptionenabled
+ AtRestEncryptionEnabled *types.Value `json:"AtRestEncryptionEnabled,omitempty"`
+
+ // TransitEncryptionEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-transitencryptionenabled
+ TransitEncryptionEnabled *types.Value `json:"TransitEncryptionEnabled,omitempty"`
+
+ // Ttl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-ttl
+ Ttl *types.Value `json:"Ttl"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html#cfn-appsync-apicache-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiCache) AWSCloudFormationType() string {
+ return "AWS::AppSync::ApiCache"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApiCache) MarshalJSON() ([]byte, error) {
+ type Properties ApiCache
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApiCache) UnmarshalJSON(b []byte) error {
+ type Properties ApiCache
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApiCache(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-apikey.go b/goformation/cloudformation/appsync/aws-appsync-apikey.go
new file mode 100644
index 0000000000..1334d1ead6
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-apikey.go
@@ -0,0 +1,123 @@
+package appsync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiKey AWS CloudFormation Resource (AWS::AppSync::ApiKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html
+type ApiKey struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // ApiKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-apikeyid
+ ApiKeyId *types.Value `json:"ApiKeyId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Expires AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html#cfn-appsync-apikey-expires
+ Expires *types.Value `json:"Expires,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiKey) AWSCloudFormationType() string {
+ return "AWS::AppSync::ApiKey"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApiKey) MarshalJSON() ([]byte, error) {
+ type Properties ApiKey
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApiKey) UnmarshalJSON(b []byte) error {
+ type Properties ApiKey
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApiKey(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource.go b/goformation/cloudformation/appsync/aws-appsync-datasource.go
new file mode 100644
index 0000000000..9d543a9880
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource.go
@@ -0,0 +1,158 @@
+package appsync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource AWS CloudFormation Resource (AWS::AppSync::DataSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html
+type DataSource struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DynamoDBConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-dynamodbconfig
+ DynamoDBConfig *DataSource_DynamoDBConfig `json:"DynamoDBConfig,omitempty"`
+
+ // ElasticsearchConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-elasticsearchconfig
+ ElasticsearchConfig *DataSource_ElasticsearchConfig `json:"ElasticsearchConfig,omitempty"`
+
+ // HttpConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-httpconfig
+ HttpConfig *DataSource_HttpConfig `json:"HttpConfig,omitempty"`
+
+ // LambdaConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-lambdaconfig
+ LambdaConfig *DataSource_LambdaConfig `json:"LambdaConfig,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OpenSearchServiceConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-opensearchserviceconfig
+ OpenSearchServiceConfig *DataSource_OpenSearchServiceConfig `json:"OpenSearchServiceConfig,omitempty"`
+
+ // RelationalDatabaseConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-relationaldatabaseconfig
+ RelationalDatabaseConfig *DataSource_RelationalDatabaseConfig `json:"RelationalDatabaseConfig,omitempty"`
+
+ // ServiceRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-servicerolearn
+ ServiceRoleArn *types.Value `json:"ServiceRoleArn,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html#cfn-appsync-datasource-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DataSource) MarshalJSON() ([]byte, error) {
+ type Properties DataSource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DataSource) UnmarshalJSON(b []byte) error {
+ type Properties DataSource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DataSource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_authorizationconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_authorizationconfig.go
new file mode 100644
index 0000000000..9546a31a85
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_authorizationconfig.go
@@ -0,0 +1,42 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_AuthorizationConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.AuthorizationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-authorizationconfig.html
+type DataSource_AuthorizationConfig struct {
+
+ // AuthorizationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-authorizationconfig.html#cfn-appsync-datasource-authorizationconfig-authorizationtype
+ AuthorizationType *types.Value `json:"AuthorizationType,omitempty"`
+
+ // AwsIamConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-authorizationconfig.html#cfn-appsync-datasource-authorizationconfig-awsiamconfig
+ AwsIamConfig *DataSource_AwsIamConfig `json:"AwsIamConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_AuthorizationConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.AuthorizationConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_awsiamconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_awsiamconfig.go
new file mode 100644
index 0000000000..44361149e2
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_awsiamconfig.go
@@ -0,0 +1,42 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_AwsIamConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.AwsIamConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-awsiamconfig.html
+type DataSource_AwsIamConfig struct {
+
+ // SigningRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-awsiamconfig.html#cfn-appsync-datasource-awsiamconfig-signingregion
+ SigningRegion *types.Value `json:"SigningRegion,omitempty"`
+
+ // SigningServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-awsiamconfig.html#cfn-appsync-datasource-awsiamconfig-signingservicename
+ SigningServiceName *types.Value `json:"SigningServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_AwsIamConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.AwsIamConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_deltasyncconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_deltasyncconfig.go
new file mode 100644
index 0000000000..92cf5c32b8
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_deltasyncconfig.go
@@ -0,0 +1,47 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DeltaSyncConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.DeltaSyncConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html
+type DataSource_DeltaSyncConfig struct {
+
+ // BaseTableTTL AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html#cfn-appsync-datasource-deltasyncconfig-basetablettl
+ BaseTableTTL *types.Value `json:"BaseTableTTL,omitempty"`
+
+ // DeltaSyncTableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html#cfn-appsync-datasource-deltasyncconfig-deltasynctablename
+ DeltaSyncTableName *types.Value `json:"DeltaSyncTableName,omitempty"`
+
+ // DeltaSyncTableTTL AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html#cfn-appsync-datasource-deltasyncconfig-deltasynctablettl
+ DeltaSyncTableTTL *types.Value `json:"DeltaSyncTableTTL,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DeltaSyncConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.DeltaSyncConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_dynamodbconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_dynamodbconfig.go
new file mode 100644
index 0000000000..a892973ab9
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_dynamodbconfig.go
@@ -0,0 +1,57 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DynamoDBConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.DynamoDBConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html
+type DataSource_DynamoDBConfig struct {
+
+ // AwsRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-awsregion
+ AwsRegion *types.Value `json:"AwsRegion,omitempty"`
+
+ // DeltaSyncConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-deltasyncconfig
+ DeltaSyncConfig *DataSource_DeltaSyncConfig `json:"DeltaSyncConfig,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // UseCallerCredentials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-usecallercredentials
+ UseCallerCredentials *types.Value `json:"UseCallerCredentials,omitempty"`
+
+ // Versioned AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html#cfn-appsync-datasource-dynamodbconfig-versioned
+ Versioned *types.Value `json:"Versioned,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DynamoDBConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.DynamoDBConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_elasticsearchconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_elasticsearchconfig.go
new file mode 100644
index 0000000000..59972afeca
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_elasticsearchconfig.go
@@ -0,0 +1,42 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ElasticsearchConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.ElasticsearchConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html
+type DataSource_ElasticsearchConfig struct {
+
+ // AwsRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html#cfn-appsync-datasource-elasticsearchconfig-awsregion
+ AwsRegion *types.Value `json:"AwsRegion,omitempty"`
+
+ // Endpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html#cfn-appsync-datasource-elasticsearchconfig-endpoint
+ Endpoint *types.Value `json:"Endpoint,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ElasticsearchConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.ElasticsearchConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_httpconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_httpconfig.go
new file mode 100644
index 0000000000..4d5ca8741e
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_httpconfig.go
@@ -0,0 +1,42 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_HttpConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.HttpConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-httpconfig.html
+type DataSource_HttpConfig struct {
+
+ // AuthorizationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-httpconfig.html#cfn-appsync-datasource-httpconfig-authorizationconfig
+ AuthorizationConfig *DataSource_AuthorizationConfig `json:"AuthorizationConfig,omitempty"`
+
+ // Endpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-httpconfig.html#cfn-appsync-datasource-httpconfig-endpoint
+ Endpoint *types.Value `json:"Endpoint,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_HttpConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.HttpConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_lambdaconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_lambdaconfig.go
new file mode 100644
index 0000000000..9ffe076576
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_lambdaconfig.go
@@ -0,0 +1,37 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_LambdaConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.LambdaConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html
+type DataSource_LambdaConfig struct {
+
+ // LambdaFunctionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html#cfn-appsync-datasource-lambdaconfig-lambdafunctionarn
+ LambdaFunctionArn *types.Value `json:"LambdaFunctionArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_LambdaConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.LambdaConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_opensearchserviceconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_opensearchserviceconfig.go
new file mode 100644
index 0000000000..55ead4ebf5
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_opensearchserviceconfig.go
@@ -0,0 +1,42 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_OpenSearchServiceConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.OpenSearchServiceConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html
+type DataSource_OpenSearchServiceConfig struct {
+
+ // AwsRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html#cfn-appsync-datasource-opensearchserviceconfig-awsregion
+ AwsRegion *types.Value `json:"AwsRegion,omitempty"`
+
+ // Endpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html#cfn-appsync-datasource-opensearchserviceconfig-endpoint
+ Endpoint *types.Value `json:"Endpoint,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_OpenSearchServiceConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.OpenSearchServiceConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_rdshttpendpointconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_rdshttpendpointconfig.go
new file mode 100644
index 0000000000..3db42fa0de
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_rdshttpendpointconfig.go
@@ -0,0 +1,57 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_RdsHttpEndpointConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.RdsHttpEndpointConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html
+type DataSource_RdsHttpEndpointConfig struct {
+
+ // AwsRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html#cfn-appsync-datasource-rdshttpendpointconfig-awsregion
+ AwsRegion *types.Value `json:"AwsRegion,omitempty"`
+
+ // AwsSecretStoreArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html#cfn-appsync-datasource-rdshttpendpointconfig-awssecretstorearn
+ AwsSecretStoreArn *types.Value `json:"AwsSecretStoreArn,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html#cfn-appsync-datasource-rdshttpendpointconfig-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // DbClusterIdentifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html#cfn-appsync-datasource-rdshttpendpointconfig-dbclusteridentifier
+ DbClusterIdentifier *types.Value `json:"DbClusterIdentifier,omitempty"`
+
+ // Schema AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html#cfn-appsync-datasource-rdshttpendpointconfig-schema
+ Schema *types.Value `json:"Schema,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_RdsHttpEndpointConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.RdsHttpEndpointConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-datasource_relationaldatabaseconfig.go b/goformation/cloudformation/appsync/aws-appsync-datasource_relationaldatabaseconfig.go
new file mode 100644
index 0000000000..071e048138
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-datasource_relationaldatabaseconfig.go
@@ -0,0 +1,42 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_RelationalDatabaseConfig AWS CloudFormation Resource (AWS::AppSync::DataSource.RelationalDatabaseConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-relationaldatabaseconfig.html
+type DataSource_RelationalDatabaseConfig struct {
+
+ // RdsHttpEndpointConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-relationaldatabaseconfig.html#cfn-appsync-datasource-relationaldatabaseconfig-rdshttpendpointconfig
+ RdsHttpEndpointConfig *DataSource_RdsHttpEndpointConfig `json:"RdsHttpEndpointConfig,omitempty"`
+
+ // RelationalDatabaseSourceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-relationaldatabaseconfig.html#cfn-appsync-datasource-relationaldatabaseconfig-relationaldatabasesourcetype
+ RelationalDatabaseSourceType *types.Value `json:"RelationalDatabaseSourceType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_RelationalDatabaseConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::DataSource.RelationalDatabaseConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-functionconfiguration.go b/goformation/cloudformation/appsync/aws-appsync-functionconfiguration.go
new file mode 100644
index 0000000000..cf02c45a69
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-functionconfiguration.go
@@ -0,0 +1,153 @@
+package appsync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionConfiguration AWS CloudFormation Resource (AWS::AppSync::FunctionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html
+type FunctionConfiguration struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // DataSourceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-datasourcename
+ DataSourceName *types.Value `json:"DataSourceName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FunctionVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-functionversion
+ FunctionVersion *types.Value `json:"FunctionVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RequestMappingTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-requestmappingtemplate
+ RequestMappingTemplate *types.Value `json:"RequestMappingTemplate,omitempty"`
+
+ // RequestMappingTemplateS3Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-requestmappingtemplates3location
+ RequestMappingTemplateS3Location *types.Value `json:"RequestMappingTemplateS3Location,omitempty"`
+
+ // ResponseMappingTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-responsemappingtemplate
+ ResponseMappingTemplate *types.Value `json:"ResponseMappingTemplate,omitempty"`
+
+ // ResponseMappingTemplateS3Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-responsemappingtemplates3location
+ ResponseMappingTemplateS3Location *types.Value `json:"ResponseMappingTemplateS3Location,omitempty"`
+
+ // SyncConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html#cfn-appsync-functionconfiguration-syncconfig
+ SyncConfig *FunctionConfiguration_SyncConfig `json:"SyncConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionConfiguration) AWSCloudFormationType() string {
+ return "AWS::AppSync::FunctionConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FunctionConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties FunctionConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FunctionConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties FunctionConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FunctionConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-functionconfiguration_lambdaconflicthandlerconfig.go b/goformation/cloudformation/appsync/aws-appsync-functionconfiguration_lambdaconflicthandlerconfig.go
new file mode 100644
index 0000000000..2515d8dcfe
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-functionconfiguration_lambdaconflicthandlerconfig.go
@@ -0,0 +1,37 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionConfiguration_LambdaConflictHandlerConfig AWS CloudFormation Resource (AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html
+type FunctionConfiguration_LambdaConflictHandlerConfig struct {
+
+ // LambdaConflictHandlerArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html#cfn-appsync-functionconfiguration-lambdaconflicthandlerconfig-lambdaconflicthandlerarn
+ LambdaConflictHandlerArn *types.Value `json:"LambdaConflictHandlerArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionConfiguration_LambdaConflictHandlerConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-functionconfiguration_syncconfig.go b/goformation/cloudformation/appsync/aws-appsync-functionconfiguration_syncconfig.go
new file mode 100644
index 0000000000..8ded863459
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-functionconfiguration_syncconfig.go
@@ -0,0 +1,47 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionConfiguration_SyncConfig AWS CloudFormation Resource (AWS::AppSync::FunctionConfiguration.SyncConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html
+type FunctionConfiguration_SyncConfig struct {
+
+ // ConflictDetection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-conflictdetection
+ ConflictDetection *types.Value `json:"ConflictDetection,omitempty"`
+
+ // ConflictHandler AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-conflicthandler
+ ConflictHandler *types.Value `json:"ConflictHandler,omitempty"`
+
+ // LambdaConflictHandlerConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html#cfn-appsync-functionconfiguration-syncconfig-lambdaconflicthandlerconfig
+ LambdaConflictHandlerConfig *FunctionConfiguration_LambdaConflictHandlerConfig `json:"LambdaConflictHandlerConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionConfiguration_SyncConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::FunctionConfiguration.SyncConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi.go
new file mode 100644
index 0000000000..f43d171fe6
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi.go
@@ -0,0 +1,148 @@
+package appsync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi AWS CloudFormation Resource (AWS::AppSync::GraphQLApi)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html
+type GraphQLApi struct {
+
+ // AdditionalAuthenticationProviders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-additionalauthenticationproviders
+ AdditionalAuthenticationProviders *GraphQLApi_AdditionalAuthenticationProviders `json:"AdditionalAuthenticationProviders,omitempty"`
+
+ // AuthenticationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-authenticationtype
+ AuthenticationType *types.Value `json:"AuthenticationType,omitempty"`
+
+ // LambdaAuthorizerConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig
+ LambdaAuthorizerConfig *GraphQLApi_LambdaAuthorizerConfig `json:"LambdaAuthorizerConfig,omitempty"`
+
+ // LogConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-logconfig
+ LogConfig *GraphQLApi_LogConfig `json:"LogConfig,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OpenIDConnectConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-openidconnectconfig
+ OpenIDConnectConfig *GraphQLApi_OpenIDConnectConfig `json:"OpenIDConnectConfig,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-tags
+ Tags *GraphQLApi_Tags `json:"Tags,omitempty"`
+
+ // UserPoolConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-userpoolconfig
+ UserPoolConfig *GraphQLApi_UserPoolConfig `json:"UserPoolConfig,omitempty"`
+
+ // XrayEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html#cfn-appsync-graphqlapi-xrayenabled
+ XrayEnabled *types.Value `json:"XrayEnabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GraphQLApi) MarshalJSON() ([]byte, error) {
+ type Properties GraphQLApi
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GraphQLApi) UnmarshalJSON(b []byte) error {
+ type Properties GraphQLApi
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GraphQLApi(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationprovider.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationprovider.go
new file mode 100644
index 0000000000..5864abb251
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationprovider.go
@@ -0,0 +1,52 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi_AdditionalAuthenticationProvider AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.AdditionalAuthenticationProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html
+type GraphQLApi_AdditionalAuthenticationProvider struct {
+
+ // AuthenticationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype
+ AuthenticationType *types.Value `json:"AuthenticationType,omitempty"`
+
+ // LambdaAuthorizerConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-lambdaauthorizerconfig
+ LambdaAuthorizerConfig *GraphQLApi_LambdaAuthorizerConfig `json:"LambdaAuthorizerConfig,omitempty"`
+
+ // OpenIDConnectConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-openidconnectconfig
+ OpenIDConnectConfig *GraphQLApi_OpenIDConnectConfig `json:"OpenIDConnectConfig,omitempty"`
+
+ // UserPoolConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-userpoolconfig
+ UserPoolConfig *GraphQLApi_CognitoUserPoolConfig `json:"UserPoolConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi_AdditionalAuthenticationProvider) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi.AdditionalAuthenticationProvider"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationproviders.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationproviders.go
new file mode 100644
index 0000000000..f80e2860bb
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_additionalauthenticationproviders.go
@@ -0,0 +1,30 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi_AdditionalAuthenticationProviders AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.AdditionalAuthenticationProviders)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationproviders.html
+type GraphQLApi_AdditionalAuthenticationProviders struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi_AdditionalAuthenticationProviders) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi.AdditionalAuthenticationProviders"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi_cognitouserpoolconfig.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_cognitouserpoolconfig.go
new file mode 100644
index 0000000000..f83e92501e
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_cognitouserpoolconfig.go
@@ -0,0 +1,47 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi_CognitoUserPoolConfig AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.CognitoUserPoolConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html
+type GraphQLApi_CognitoUserPoolConfig struct {
+
+ // AppIdClientRegex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html#cfn-appsync-graphqlapi-cognitouserpoolconfig-appidclientregex
+ AppIdClientRegex *types.Value `json:"AppIdClientRegex,omitempty"`
+
+ // AwsRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html#cfn-appsync-graphqlapi-cognitouserpoolconfig-awsregion
+ AwsRegion *types.Value `json:"AwsRegion,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html#cfn-appsync-graphqlapi-cognitouserpoolconfig-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi_CognitoUserPoolConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi.CognitoUserPoolConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi_lambdaauthorizerconfig.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_lambdaauthorizerconfig.go
new file mode 100644
index 0000000000..ce1277601c
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_lambdaauthorizerconfig.go
@@ -0,0 +1,47 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi_LambdaAuthorizerConfig AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html
+type GraphQLApi_LambdaAuthorizerConfig struct {
+
+ // AuthorizerResultTtlInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig-authorizerresultttlinseconds
+ AuthorizerResultTtlInSeconds *types.Value `json:"AuthorizerResultTtlInSeconds,omitempty"`
+
+ // AuthorizerUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig-authorizeruri
+ AuthorizerUri *types.Value `json:"AuthorizerUri,omitempty"`
+
+ // IdentityValidationExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html#cfn-appsync-graphqlapi-lambdaauthorizerconfig-identityvalidationexpression
+ IdentityValidationExpression *types.Value `json:"IdentityValidationExpression,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi_LambdaAuthorizerConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi_logconfig.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_logconfig.go
new file mode 100644
index 0000000000..b6eb292e87
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_logconfig.go
@@ -0,0 +1,47 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi_LogConfig AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.LogConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html
+type GraphQLApi_LogConfig struct {
+
+ // CloudWatchLogsRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html#cfn-appsync-graphqlapi-logconfig-cloudwatchlogsrolearn
+ CloudWatchLogsRoleArn *types.Value `json:"CloudWatchLogsRoleArn,omitempty"`
+
+ // ExcludeVerboseContent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html#cfn-appsync-graphqlapi-logconfig-excludeverbosecontent
+ ExcludeVerboseContent *types.Value `json:"ExcludeVerboseContent,omitempty"`
+
+ // FieldLogLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html#cfn-appsync-graphqlapi-logconfig-fieldloglevel
+ FieldLogLevel *types.Value `json:"FieldLogLevel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi_LogConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi.LogConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi_openidconnectconfig.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_openidconnectconfig.go
new file mode 100644
index 0000000000..e6814277ee
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_openidconnectconfig.go
@@ -0,0 +1,52 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi_OpenIDConnectConfig AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.OpenIDConnectConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html
+type GraphQLApi_OpenIDConnectConfig struct {
+
+ // AuthTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html#cfn-appsync-graphqlapi-openidconnectconfig-authttl
+ AuthTTL *types.Value `json:"AuthTTL,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html#cfn-appsync-graphqlapi-openidconnectconfig-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // IatTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html#cfn-appsync-graphqlapi-openidconnectconfig-iatttl
+ IatTTL *types.Value `json:"IatTTL,omitempty"`
+
+ // Issuer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html#cfn-appsync-graphqlapi-openidconnectconfig-issuer
+ Issuer *types.Value `json:"Issuer,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi_OpenIDConnectConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi.OpenIDConnectConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi_tags.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_tags.go
new file mode 100644
index 0000000000..b19417a4a7
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_tags.go
@@ -0,0 +1,30 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi_Tags AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-tags.html
+type GraphQLApi_Tags struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi_Tags) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi.Tags"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlapi_userpoolconfig.go b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_userpoolconfig.go
new file mode 100644
index 0000000000..85fa8939e7
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlapi_userpoolconfig.go
@@ -0,0 +1,52 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLApi_UserPoolConfig AWS CloudFormation Resource (AWS::AppSync::GraphQLApi.UserPoolConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html
+type GraphQLApi_UserPoolConfig struct {
+
+ // AppIdClientRegex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html#cfn-appsync-graphqlapi-userpoolconfig-appidclientregex
+ AppIdClientRegex *types.Value `json:"AppIdClientRegex,omitempty"`
+
+ // AwsRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html#cfn-appsync-graphqlapi-userpoolconfig-awsregion
+ AwsRegion *types.Value `json:"AwsRegion,omitempty"`
+
+ // DefaultAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html#cfn-appsync-graphqlapi-userpoolconfig-defaultaction
+ DefaultAction *types.Value `json:"DefaultAction,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html#cfn-appsync-graphqlapi-userpoolconfig-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLApi_UserPoolConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLApi.UserPoolConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-graphqlschema.go b/goformation/cloudformation/appsync/aws-appsync-graphqlschema.go
new file mode 100644
index 0000000000..e724eef3d1
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-graphqlschema.go
@@ -0,0 +1,118 @@
+package appsync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GraphQLSchema AWS CloudFormation Resource (AWS::AppSync::GraphQLSchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html
+type GraphQLSchema struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // Definition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definition
+ Definition *types.Value `json:"Definition,omitempty"`
+
+ // DefinitionS3Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html#cfn-appsync-graphqlschema-definitions3location
+ DefinitionS3Location *types.Value `json:"DefinitionS3Location,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GraphQLSchema) AWSCloudFormationType() string {
+ return "AWS::AppSync::GraphQLSchema"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GraphQLSchema) MarshalJSON() ([]byte, error) {
+ type Properties GraphQLSchema
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GraphQLSchema) UnmarshalJSON(b []byte) error {
+ type Properties GraphQLSchema
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GraphQLSchema(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-resolver.go b/goformation/cloudformation/appsync/aws-appsync-resolver.go
new file mode 100644
index 0000000000..5bf80cd563
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-resolver.go
@@ -0,0 +1,163 @@
+package appsync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Resolver AWS CloudFormation Resource (AWS::AppSync::Resolver)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html
+type Resolver struct {
+
+ // ApiId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-apiid
+ ApiId *types.Value `json:"ApiId,omitempty"`
+
+ // CachingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-cachingconfig
+ CachingConfig *Resolver_CachingConfig `json:"CachingConfig,omitempty"`
+
+ // DataSourceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-datasourcename
+ DataSourceName *types.Value `json:"DataSourceName,omitempty"`
+
+ // FieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-fieldname
+ FieldName *types.Value `json:"FieldName,omitempty"`
+
+ // Kind AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-kind
+ Kind *types.Value `json:"Kind,omitempty"`
+
+ // PipelineConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-pipelineconfig
+ PipelineConfig *Resolver_PipelineConfig `json:"PipelineConfig,omitempty"`
+
+ // RequestMappingTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-requestmappingtemplate
+ RequestMappingTemplate *types.Value `json:"RequestMappingTemplate,omitempty"`
+
+ // RequestMappingTemplateS3Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-requestmappingtemplates3location
+ RequestMappingTemplateS3Location *types.Value `json:"RequestMappingTemplateS3Location,omitempty"`
+
+ // ResponseMappingTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-responsemappingtemplate
+ ResponseMappingTemplate *types.Value `json:"ResponseMappingTemplate,omitempty"`
+
+ // ResponseMappingTemplateS3Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-responsemappingtemplates3location
+ ResponseMappingTemplateS3Location *types.Value `json:"ResponseMappingTemplateS3Location,omitempty"`
+
+ // SyncConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-syncconfig
+ SyncConfig *Resolver_SyncConfig `json:"SyncConfig,omitempty"`
+
+ // TypeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-typename
+ TypeName *types.Value `json:"TypeName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Resolver) AWSCloudFormationType() string {
+ return "AWS::AppSync::Resolver"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Resolver) MarshalJSON() ([]byte, error) {
+ type Properties Resolver
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Resolver) UnmarshalJSON(b []byte) error {
+ type Properties Resolver
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Resolver(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-resolver_cachingconfig.go b/goformation/cloudformation/appsync/aws-appsync-resolver_cachingconfig.go
new file mode 100644
index 0000000000..ee14579578
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-resolver_cachingconfig.go
@@ -0,0 +1,42 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Resolver_CachingConfig AWS CloudFormation Resource (AWS::AppSync::Resolver.CachingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html
+type Resolver_CachingConfig struct {
+
+ // CachingKeys AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html#cfn-appsync-resolver-cachingconfig-cachingkeys
+ CachingKeys *types.Value `json:"CachingKeys,omitempty"`
+
+ // Ttl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html#cfn-appsync-resolver-cachingconfig-ttl
+ Ttl *types.Value `json:"Ttl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Resolver_CachingConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::Resolver.CachingConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-resolver_lambdaconflicthandlerconfig.go b/goformation/cloudformation/appsync/aws-appsync-resolver_lambdaconflicthandlerconfig.go
new file mode 100644
index 0000000000..8b2af44b13
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-resolver_lambdaconflicthandlerconfig.go
@@ -0,0 +1,37 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Resolver_LambdaConflictHandlerConfig AWS CloudFormation Resource (AWS::AppSync::Resolver.LambdaConflictHandlerConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-lambdaconflicthandlerconfig.html
+type Resolver_LambdaConflictHandlerConfig struct {
+
+ // LambdaConflictHandlerArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-lambdaconflicthandlerconfig.html#cfn-appsync-resolver-lambdaconflicthandlerconfig-lambdaconflicthandlerarn
+ LambdaConflictHandlerArn *types.Value `json:"LambdaConflictHandlerArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Resolver_LambdaConflictHandlerConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::Resolver.LambdaConflictHandlerConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-resolver_pipelineconfig.go b/goformation/cloudformation/appsync/aws-appsync-resolver_pipelineconfig.go
new file mode 100644
index 0000000000..62edd8c7f4
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-resolver_pipelineconfig.go
@@ -0,0 +1,37 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Resolver_PipelineConfig AWS CloudFormation Resource (AWS::AppSync::Resolver.PipelineConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-pipelineconfig.html
+type Resolver_PipelineConfig struct {
+
+ // Functions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-pipelineconfig.html#cfn-appsync-resolver-pipelineconfig-functions
+ Functions *types.Value `json:"Functions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Resolver_PipelineConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::Resolver.PipelineConfig"
+}
diff --git a/goformation/cloudformation/appsync/aws-appsync-resolver_syncconfig.go b/goformation/cloudformation/appsync/aws-appsync-resolver_syncconfig.go
new file mode 100644
index 0000000000..bd55a37088
--- /dev/null
+++ b/goformation/cloudformation/appsync/aws-appsync-resolver_syncconfig.go
@@ -0,0 +1,47 @@
+package appsync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Resolver_SyncConfig AWS CloudFormation Resource (AWS::AppSync::Resolver.SyncConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html
+type Resolver_SyncConfig struct {
+
+ // ConflictDetection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html#cfn-appsync-resolver-syncconfig-conflictdetection
+ ConflictDetection *types.Value `json:"ConflictDetection,omitempty"`
+
+ // ConflictHandler AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html#cfn-appsync-resolver-syncconfig-conflicthandler
+ ConflictHandler *types.Value `json:"ConflictHandler,omitempty"`
+
+ // LambdaConflictHandlerConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html#cfn-appsync-resolver-syncconfig-lambdaconflicthandlerconfig
+ LambdaConflictHandlerConfig *Resolver_LambdaConflictHandlerConfig `json:"LambdaConflictHandlerConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Resolver_SyncConfig) AWSCloudFormationType() string {
+ return "AWS::AppSync::Resolver.SyncConfig"
+}
diff --git a/goformation/cloudformation/aps/aws-aps-rulegroupsnamespace.go b/goformation/cloudformation/aps/aws-aps-rulegroupsnamespace.go
new file mode 100644
index 0000000000..7634593c86
--- /dev/null
+++ b/goformation/cloudformation/aps/aws-aps-rulegroupsnamespace.go
@@ -0,0 +1,124 @@
+package aps
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// RuleGroupsNamespace AWS CloudFormation Resource (AWS::APS::RuleGroupsNamespace)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html
+type RuleGroupsNamespace struct {
+
+ // Data AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-data
+ Data *types.Value `json:"Data,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Workspace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-rulegroupsnamespace.html#cfn-aps-rulegroupsnamespace-workspace
+ Workspace *types.Value `json:"Workspace,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RuleGroupsNamespace) AWSCloudFormationType() string {
+ return "AWS::APS::RuleGroupsNamespace"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RuleGroupsNamespace) MarshalJSON() ([]byte, error) {
+ type Properties RuleGroupsNamespace
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RuleGroupsNamespace) UnmarshalJSON(b []byte) error {
+ type Properties RuleGroupsNamespace
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RuleGroupsNamespace(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/aps/aws-aps-workspace.go b/goformation/cloudformation/aps/aws-aps-workspace.go
new file mode 100644
index 0000000000..c0cd3c1d0b
--- /dev/null
+++ b/goformation/cloudformation/aps/aws-aps-workspace.go
@@ -0,0 +1,119 @@
+package aps
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Workspace AWS CloudFormation Resource (AWS::APS::Workspace)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html
+type Workspace struct {
+
+ // AlertManagerDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html#cfn-aps-workspace-alertmanagerdefinition
+ AlertManagerDefinition *types.Value `json:"AlertManagerDefinition,omitempty"`
+
+ // Alias AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html#cfn-aps-workspace-alias
+ Alias *types.Value `json:"Alias,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-aps-workspace.html#cfn-aps-workspace-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Workspace) AWSCloudFormationType() string {
+ return "AWS::APS::Workspace"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Workspace) MarshalJSON() ([]byte, error) {
+ type Properties Workspace
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Workspace) UnmarshalJSON(b []byte) error {
+ type Properties Workspace
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Workspace(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ask/alexa-ask-skill.go b/goformation/cloudformation/ask/alexa-ask-skill.go
new file mode 100644
index 0000000000..2592c6f4cc
--- /dev/null
+++ b/goformation/cloudformation/ask/alexa-ask-skill.go
@@ -0,0 +1,118 @@
+package ask
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Skill AWS CloudFormation Resource (Alexa::ASK::Skill)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ask-skill.html
+type Skill struct {
+
+ // AuthenticationConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ask-skill.html#cfn-ask-skill-authenticationconfiguration
+ AuthenticationConfiguration *Skill_AuthenticationConfiguration `json:"AuthenticationConfiguration,omitempty"`
+
+ // SkillPackage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ask-skill.html#cfn-ask-skill-skillpackage
+ SkillPackage *Skill_SkillPackage `json:"SkillPackage,omitempty"`
+
+ // VendorId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ask-skill.html#cfn-ask-skill-vendorid
+ VendorId *types.Value `json:"VendorId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Skill) AWSCloudFormationType() string {
+ return "Alexa::ASK::Skill"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Skill) MarshalJSON() ([]byte, error) {
+ type Properties Skill
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Skill) UnmarshalJSON(b []byte) error {
+ type Properties Skill
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Skill(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ask/alexa-ask-skill_authenticationconfiguration.go b/goformation/cloudformation/ask/alexa-ask-skill_authenticationconfiguration.go
new file mode 100644
index 0000000000..3011e5f616
--- /dev/null
+++ b/goformation/cloudformation/ask/alexa-ask-skill_authenticationconfiguration.go
@@ -0,0 +1,47 @@
+package ask
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Skill_AuthenticationConfiguration AWS CloudFormation Resource (Alexa::ASK::Skill.AuthenticationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-authenticationconfiguration.html
+type Skill_AuthenticationConfiguration struct {
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-authenticationconfiguration.html#cfn-ask-skill-authenticationconfiguration-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // ClientSecret AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-authenticationconfiguration.html#cfn-ask-skill-authenticationconfiguration-clientsecret
+ ClientSecret *types.Value `json:"ClientSecret,omitempty"`
+
+ // RefreshToken AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-authenticationconfiguration.html#cfn-ask-skill-authenticationconfiguration-refreshtoken
+ RefreshToken *types.Value `json:"RefreshToken,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Skill_AuthenticationConfiguration) AWSCloudFormationType() string {
+ return "Alexa::ASK::Skill.AuthenticationConfiguration"
+}
diff --git a/goformation/cloudformation/ask/alexa-ask-skill_overrides.go b/goformation/cloudformation/ask/alexa-ask-skill_overrides.go
new file mode 100644
index 0000000000..7a8bbcca7a
--- /dev/null
+++ b/goformation/cloudformation/ask/alexa-ask-skill_overrides.go
@@ -0,0 +1,35 @@
+package ask
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Skill_Overrides AWS CloudFormation Resource (Alexa::ASK::Skill.Overrides)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-overrides.html
+type Skill_Overrides struct {
+
+ // Manifest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-overrides.html#cfn-ask-skill-overrides-manifest
+ Manifest interface{} `json:"Manifest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Skill_Overrides) AWSCloudFormationType() string {
+ return "Alexa::ASK::Skill.Overrides"
+}
diff --git a/goformation/cloudformation/ask/alexa-ask-skill_skillpackage.go b/goformation/cloudformation/ask/alexa-ask-skill_skillpackage.go
new file mode 100644
index 0000000000..a27627ed76
--- /dev/null
+++ b/goformation/cloudformation/ask/alexa-ask-skill_skillpackage.go
@@ -0,0 +1,57 @@
+package ask
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Skill_SkillPackage AWS CloudFormation Resource (Alexa::ASK::Skill.SkillPackage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html
+type Skill_SkillPackage struct {
+
+ // Overrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html#cfn-ask-skill-skillpackage-overrides
+ Overrides *Skill_Overrides `json:"Overrides,omitempty"`
+
+ // S3Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html#cfn-ask-skill-skillpackage-s3bucket
+ S3Bucket *types.Value `json:"S3Bucket,omitempty"`
+
+ // S3BucketRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html#cfn-ask-skill-skillpackage-s3bucketrole
+ S3BucketRole *types.Value `json:"S3BucketRole,omitempty"`
+
+ // S3Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html#cfn-ask-skill-skillpackage-s3key
+ S3Key *types.Value `json:"S3Key,omitempty"`
+
+ // S3ObjectVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ask-skill-skillpackage.html#cfn-ask-skill-skillpackage-s3objectversion
+ S3ObjectVersion *types.Value `json:"S3ObjectVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Skill_SkillPackage) AWSCloudFormationType() string {
+ return "Alexa::ASK::Skill.SkillPackage"
+}
diff --git a/goformation/cloudformation/athena/aws-athena-datacatalog.go b/goformation/cloudformation/athena/aws-athena-datacatalog.go
new file mode 100644
index 0000000000..a070eea8e7
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-datacatalog.go
@@ -0,0 +1,129 @@
+package athena
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataCatalog AWS CloudFormation Resource (AWS::Athena::DataCatalog)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html
+type DataCatalog struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-parameters
+ Parameters map[string]*types.Value `json:"Parameters,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-datacatalog.html#cfn-athena-datacatalog-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataCatalog) AWSCloudFormationType() string {
+ return "AWS::Athena::DataCatalog"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DataCatalog) MarshalJSON() ([]byte, error) {
+ type Properties DataCatalog
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DataCatalog) UnmarshalJSON(b []byte) error {
+ type Properties DataCatalog
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DataCatalog(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/athena/aws-athena-datacatalog_tags.go b/goformation/cloudformation/athena/aws-athena-datacatalog_tags.go
new file mode 100644
index 0000000000..a216ef97c3
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-datacatalog_tags.go
@@ -0,0 +1,36 @@
+package athena
+
+import (
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataCatalog_Tags AWS CloudFormation Resource (AWS::Athena::DataCatalog.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-datacatalog-tags.html
+type DataCatalog_Tags struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-datacatalog-tags.html#cfn-athena-datacatalog-tags-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataCatalog_Tags) AWSCloudFormationType() string {
+ return "AWS::Athena::DataCatalog.Tags"
+}
diff --git a/goformation/cloudformation/athena/aws-athena-namedquery.go b/goformation/cloudformation/athena/aws-athena-namedquery.go
new file mode 100644
index 0000000000..f320b18b9a
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-namedquery.go
@@ -0,0 +1,128 @@
+package athena
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NamedQuery AWS CloudFormation Resource (AWS::Athena::NamedQuery)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html
+type NamedQuery struct {
+
+ // Database AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-database
+ Database *types.Value `json:"Database,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // QueryString AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-querystring
+ QueryString *types.Value `json:"QueryString,omitempty"`
+
+ // WorkGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-namedquery.html#cfn-athena-namedquery-workgroup
+ WorkGroup *types.Value `json:"WorkGroup,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NamedQuery) AWSCloudFormationType() string {
+ return "AWS::Athena::NamedQuery"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NamedQuery) MarshalJSON() ([]byte, error) {
+ type Properties NamedQuery
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NamedQuery) UnmarshalJSON(b []byte) error {
+ type Properties NamedQuery
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NamedQuery(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/athena/aws-athena-preparedstatement.go b/goformation/cloudformation/athena/aws-athena-preparedstatement.go
new file mode 100644
index 0000000000..13acf77c24
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-preparedstatement.go
@@ -0,0 +1,123 @@
+package athena
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PreparedStatement AWS CloudFormation Resource (AWS::Athena::PreparedStatement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html
+type PreparedStatement struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html#cfn-athena-preparedstatement-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // QueryStatement AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html#cfn-athena-preparedstatement-querystatement
+ QueryStatement *types.Value `json:"QueryStatement,omitempty"`
+
+ // StatementName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html#cfn-athena-preparedstatement-statementname
+ StatementName *types.Value `json:"StatementName,omitempty"`
+
+ // WorkGroup AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-preparedstatement.html#cfn-athena-preparedstatement-workgroup
+ WorkGroup *types.Value `json:"WorkGroup,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PreparedStatement) AWSCloudFormationType() string {
+ return "AWS::Athena::PreparedStatement"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PreparedStatement) MarshalJSON() ([]byte, error) {
+ type Properties PreparedStatement
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PreparedStatement) UnmarshalJSON(b []byte) error {
+ type Properties PreparedStatement
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PreparedStatement(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/athena/aws-athena-workgroup.go b/goformation/cloudformation/athena/aws-athena-workgroup.go
new file mode 100644
index 0000000000..ecb07fa001
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-workgroup.go
@@ -0,0 +1,139 @@
+package athena
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// WorkGroup AWS CloudFormation Resource (AWS::Athena::WorkGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html
+type WorkGroup struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html#cfn-athena-workgroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html#cfn-athena-workgroup-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RecursiveDeleteOption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html#cfn-athena-workgroup-recursivedeleteoption
+ RecursiveDeleteOption *types.Value `json:"RecursiveDeleteOption,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html#cfn-athena-workgroup-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html#cfn-athena-workgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // WorkGroupConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html#cfn-athena-workgroup-workgroupconfiguration
+ WorkGroupConfiguration *WorkGroup_WorkGroupConfiguration `json:"WorkGroupConfiguration,omitempty"`
+
+ // WorkGroupConfigurationUpdates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-athena-workgroup.html#cfn-athena-workgroup-workgroupconfigurationupdates
+ WorkGroupConfigurationUpdates *WorkGroup_WorkGroupConfigurationUpdates `json:"WorkGroupConfigurationUpdates,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WorkGroup) AWSCloudFormationType() string {
+ return "AWS::Athena::WorkGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r WorkGroup) MarshalJSON() ([]byte, error) {
+ type Properties WorkGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *WorkGroup) UnmarshalJSON(b []byte) error {
+ type Properties WorkGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = WorkGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/athena/aws-athena-workgroup_encryptionconfiguration.go b/goformation/cloudformation/athena/aws-athena-workgroup_encryptionconfiguration.go
new file mode 100644
index 0000000000..c0690ecf34
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-workgroup_encryptionconfiguration.go
@@ -0,0 +1,42 @@
+package athena
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WorkGroup_EncryptionConfiguration AWS CloudFormation Resource (AWS::Athena::WorkGroup.EncryptionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-encryptionconfiguration.html
+type WorkGroup_EncryptionConfiguration struct {
+
+ // EncryptionOption AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-encryptionconfiguration.html#cfn-athena-workgroup-encryptionconfiguration-encryptionoption
+ EncryptionOption *types.Value `json:"EncryptionOption,omitempty"`
+
+ // KmsKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-encryptionconfiguration.html#cfn-athena-workgroup-encryptionconfiguration-kmskey
+ KmsKey *types.Value `json:"KmsKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WorkGroup_EncryptionConfiguration) AWSCloudFormationType() string {
+ return "AWS::Athena::WorkGroup.EncryptionConfiguration"
+}
diff --git a/goformation/cloudformation/athena/aws-athena-workgroup_engineversion.go b/goformation/cloudformation/athena/aws-athena-workgroup_engineversion.go
new file mode 100644
index 0000000000..f4823c83de
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-workgroup_engineversion.go
@@ -0,0 +1,42 @@
+package athena
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WorkGroup_EngineVersion AWS CloudFormation Resource (AWS::Athena::WorkGroup.EngineVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html
+type WorkGroup_EngineVersion struct {
+
+ // EffectiveEngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html#cfn-athena-workgroup-engineversion-effectiveengineversion
+ EffectiveEngineVersion *types.Value `json:"EffectiveEngineVersion,omitempty"`
+
+ // SelectedEngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-engineversion.html#cfn-athena-workgroup-engineversion-selectedengineversion
+ SelectedEngineVersion *types.Value `json:"SelectedEngineVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WorkGroup_EngineVersion) AWSCloudFormationType() string {
+ return "AWS::Athena::WorkGroup.EngineVersion"
+}
diff --git a/goformation/cloudformation/athena/aws-athena-workgroup_resultconfiguration.go b/goformation/cloudformation/athena/aws-athena-workgroup_resultconfiguration.go
new file mode 100644
index 0000000000..61dfb7839e
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-workgroup_resultconfiguration.go
@@ -0,0 +1,42 @@
+package athena
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WorkGroup_ResultConfiguration AWS CloudFormation Resource (AWS::Athena::WorkGroup.ResultConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfiguration.html
+type WorkGroup_ResultConfiguration struct {
+
+ // EncryptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfiguration.html#cfn-athena-workgroup-resultconfiguration-encryptionconfiguration
+ EncryptionConfiguration *WorkGroup_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"`
+
+ // OutputLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfiguration.html#cfn-athena-workgroup-resultconfiguration-outputlocation
+ OutputLocation *types.Value `json:"OutputLocation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WorkGroup_ResultConfiguration) AWSCloudFormationType() string {
+ return "AWS::Athena::WorkGroup.ResultConfiguration"
+}
diff --git a/goformation/cloudformation/athena/aws-athena-workgroup_resultconfigurationupdates.go b/goformation/cloudformation/athena/aws-athena-workgroup_resultconfigurationupdates.go
new file mode 100644
index 0000000000..b6d07a5df9
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-workgroup_resultconfigurationupdates.go
@@ -0,0 +1,52 @@
+package athena
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WorkGroup_ResultConfigurationUpdates AWS CloudFormation Resource (AWS::Athena::WorkGroup.ResultConfigurationUpdates)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfigurationupdates.html
+type WorkGroup_ResultConfigurationUpdates struct {
+
+ // EncryptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfigurationupdates.html#cfn-athena-workgroup-resultconfigurationupdates-encryptionconfiguration
+ EncryptionConfiguration *WorkGroup_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"`
+
+ // OutputLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfigurationupdates.html#cfn-athena-workgroup-resultconfigurationupdates-outputlocation
+ OutputLocation *types.Value `json:"OutputLocation,omitempty"`
+
+ // RemoveEncryptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfigurationupdates.html#cfn-athena-workgroup-resultconfigurationupdates-removeencryptionconfiguration
+ RemoveEncryptionConfiguration *types.Value `json:"RemoveEncryptionConfiguration,omitempty"`
+
+ // RemoveOutputLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-resultconfigurationupdates.html#cfn-athena-workgroup-resultconfigurationupdates-removeoutputlocation
+ RemoveOutputLocation *types.Value `json:"RemoveOutputLocation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WorkGroup_ResultConfigurationUpdates) AWSCloudFormationType() string {
+ return "AWS::Athena::WorkGroup.ResultConfigurationUpdates"
+}
diff --git a/goformation/cloudformation/athena/aws-athena-workgroup_tags.go b/goformation/cloudformation/athena/aws-athena-workgroup_tags.go
new file mode 100644
index 0000000000..fe496b5558
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-workgroup_tags.go
@@ -0,0 +1,36 @@
+package athena
+
+import (
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// WorkGroup_Tags AWS CloudFormation Resource (AWS::Athena::WorkGroup.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-tags.html
+type WorkGroup_Tags struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-tags.html#cfn-athena-workgroup-tags-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WorkGroup_Tags) AWSCloudFormationType() string {
+ return "AWS::Athena::WorkGroup.Tags"
+}
diff --git a/goformation/cloudformation/athena/aws-athena-workgroup_workgroupconfiguration.go b/goformation/cloudformation/athena/aws-athena-workgroup_workgroupconfiguration.go
new file mode 100644
index 0000000000..deadba9335
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-workgroup_workgroupconfiguration.go
@@ -0,0 +1,62 @@
+package athena
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WorkGroup_WorkGroupConfiguration AWS CloudFormation Resource (AWS::Athena::WorkGroup.WorkGroupConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html
+type WorkGroup_WorkGroupConfiguration struct {
+
+ // BytesScannedCutoffPerQuery AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-bytesscannedcutoffperquery
+ BytesScannedCutoffPerQuery *types.Value `json:"BytesScannedCutoffPerQuery,omitempty"`
+
+ // EnforceWorkGroupConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-enforceworkgroupconfiguration
+ EnforceWorkGroupConfiguration *types.Value `json:"EnforceWorkGroupConfiguration,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-engineversion
+ EngineVersion *WorkGroup_EngineVersion `json:"EngineVersion,omitempty"`
+
+ // PublishCloudWatchMetricsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-publishcloudwatchmetricsenabled
+ PublishCloudWatchMetricsEnabled *types.Value `json:"PublishCloudWatchMetricsEnabled,omitempty"`
+
+ // RequesterPaysEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-requesterpaysenabled
+ RequesterPaysEnabled *types.Value `json:"RequesterPaysEnabled,omitempty"`
+
+ // ResultConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfiguration.html#cfn-athena-workgroup-workgroupconfiguration-resultconfiguration
+ ResultConfiguration *WorkGroup_ResultConfiguration `json:"ResultConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WorkGroup_WorkGroupConfiguration) AWSCloudFormationType() string {
+ return "AWS::Athena::WorkGroup.WorkGroupConfiguration"
+}
diff --git a/goformation/cloudformation/athena/aws-athena-workgroup_workgroupconfigurationupdates.go b/goformation/cloudformation/athena/aws-athena-workgroup_workgroupconfigurationupdates.go
new file mode 100644
index 0000000000..e2f7ba814d
--- /dev/null
+++ b/goformation/cloudformation/athena/aws-athena-workgroup_workgroupconfigurationupdates.go
@@ -0,0 +1,67 @@
+package athena
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WorkGroup_WorkGroupConfigurationUpdates AWS CloudFormation Resource (AWS::Athena::WorkGroup.WorkGroupConfigurationUpdates)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html
+type WorkGroup_WorkGroupConfigurationUpdates struct {
+
+ // BytesScannedCutoffPerQuery AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-bytesscannedcutoffperquery
+ BytesScannedCutoffPerQuery *types.Value `json:"BytesScannedCutoffPerQuery,omitempty"`
+
+ // EnforceWorkGroupConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-enforceworkgroupconfiguration
+ EnforceWorkGroupConfiguration *types.Value `json:"EnforceWorkGroupConfiguration,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-engineversion
+ EngineVersion *WorkGroup_EngineVersion `json:"EngineVersion,omitempty"`
+
+ // PublishCloudWatchMetricsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-publishcloudwatchmetricsenabled
+ PublishCloudWatchMetricsEnabled *types.Value `json:"PublishCloudWatchMetricsEnabled,omitempty"`
+
+ // RemoveBytesScannedCutoffPerQuery AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-removebytesscannedcutoffperquery
+ RemoveBytesScannedCutoffPerQuery *types.Value `json:"RemoveBytesScannedCutoffPerQuery,omitempty"`
+
+ // RequesterPaysEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-requesterpaysenabled
+ RequesterPaysEnabled *types.Value `json:"RequesterPaysEnabled,omitempty"`
+
+ // ResultConfigurationUpdates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-workgroupconfigurationupdates.html#cfn-athena-workgroup-workgroupconfigurationupdates-resultconfigurationupdates
+ ResultConfigurationUpdates *WorkGroup_ResultConfigurationUpdates `json:"ResultConfigurationUpdates,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WorkGroup_WorkGroupConfigurationUpdates) AWSCloudFormationType() string {
+ return "AWS::Athena::WorkGroup.WorkGroupConfigurationUpdates"
+}
diff --git a/goformation/cloudformation/auditmanager/aws-auditmanager-assessment.go b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment.go
new file mode 100644
index 0000000000..7f30330e14
--- /dev/null
+++ b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment.go
@@ -0,0 +1,149 @@
+package auditmanager
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Assessment AWS CloudFormation Resource (AWS::AuditManager::Assessment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html
+type Assessment struct {
+
+ // AssessmentReportsDestination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-assessmentreportsdestination
+ AssessmentReportsDestination *Assessment_AssessmentReportsDestination `json:"AssessmentReportsDestination,omitempty"`
+
+ // AwsAccount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-awsaccount
+ AwsAccount *Assessment_AWSAccount `json:"AwsAccount,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FrameworkId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-frameworkid
+ FrameworkId *types.Value `json:"FrameworkId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Roles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-roles
+ Roles []Assessment_Role `json:"Roles,omitempty"`
+
+ // Scope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-scope
+ Scope *Assessment_Scope `json:"Scope,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-auditmanager-assessment.html#cfn-auditmanager-assessment-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Assessment) AWSCloudFormationType() string {
+ return "AWS::AuditManager::Assessment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Assessment) MarshalJSON() ([]byte, error) {
+ type Properties Assessment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Assessment) UnmarshalJSON(b []byte) error {
+ type Properties Assessment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Assessment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_assessmentreportsdestination.go b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_assessmentreportsdestination.go
new file mode 100644
index 0000000000..d098a19131
--- /dev/null
+++ b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_assessmentreportsdestination.go
@@ -0,0 +1,42 @@
+package auditmanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Assessment_AssessmentReportsDestination AWS CloudFormation Resource (AWS::AuditManager::Assessment.AssessmentReportsDestination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html
+type Assessment_AssessmentReportsDestination struct {
+
+ // Destination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html#cfn-auditmanager-assessment-assessmentreportsdestination-destination
+ Destination *types.Value `json:"Destination,omitempty"`
+
+ // DestinationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-assessmentreportsdestination.html#cfn-auditmanager-assessment-assessmentreportsdestination-destinationtype
+ DestinationType *types.Value `json:"DestinationType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Assessment_AssessmentReportsDestination) AWSCloudFormationType() string {
+ return "AWS::AuditManager::Assessment.AssessmentReportsDestination"
+}
diff --git a/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_awsaccount.go b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_awsaccount.go
new file mode 100644
index 0000000000..1850d79f75
--- /dev/null
+++ b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_awsaccount.go
@@ -0,0 +1,47 @@
+package auditmanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Assessment_AWSAccount AWS CloudFormation Resource (AWS::AuditManager::Assessment.AWSAccount)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html
+type Assessment_AWSAccount struct {
+
+ // EmailAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html#cfn-auditmanager-assessment-awsaccount-emailaddress
+ EmailAddress *types.Value `json:"EmailAddress,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html#cfn-auditmanager-assessment-awsaccount-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsaccount.html#cfn-auditmanager-assessment-awsaccount-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Assessment_AWSAccount) AWSCloudFormationType() string {
+ return "AWS::AuditManager::Assessment.AWSAccount"
+}
diff --git a/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_awsservice.go b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_awsservice.go
new file mode 100644
index 0000000000..5a9f4c2bd2
--- /dev/null
+++ b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_awsservice.go
@@ -0,0 +1,37 @@
+package auditmanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Assessment_AWSService AWS CloudFormation Resource (AWS::AuditManager::Assessment.AWSService)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsservice.html
+type Assessment_AWSService struct {
+
+ // ServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-awsservice.html#cfn-auditmanager-assessment-awsservice-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Assessment_AWSService) AWSCloudFormationType() string {
+ return "AWS::AuditManager::Assessment.AWSService"
+}
diff --git a/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_delegation.go b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_delegation.go
new file mode 100644
index 0000000000..eaa1b43975
--- /dev/null
+++ b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_delegation.go
@@ -0,0 +1,87 @@
+package auditmanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Assessment_Delegation AWS CloudFormation Resource (AWS::AuditManager::Assessment.Delegation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html
+type Assessment_Delegation struct {
+
+ // AssessmentId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-assessmentid
+ AssessmentId *types.Value `json:"AssessmentId,omitempty"`
+
+ // AssessmentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-assessmentname
+ AssessmentName *types.Value `json:"AssessmentName,omitempty"`
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // ControlSetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-controlsetid
+ ControlSetId *types.Value `json:"ControlSetId,omitempty"`
+
+ // CreatedBy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-createdby
+ CreatedBy *types.Value `json:"CreatedBy,omitempty"`
+
+ // CreationTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-creationtime
+ CreationTime *types.Value `json:"CreationTime,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // LastUpdated AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-lastupdated
+ LastUpdated *types.Value `json:"LastUpdated,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // RoleType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-roletype
+ RoleType *types.Value `json:"RoleType,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-delegation.html#cfn-auditmanager-assessment-delegation-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Assessment_Delegation) AWSCloudFormationType() string {
+ return "AWS::AuditManager::Assessment.Delegation"
+}
diff --git a/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_role.go b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_role.go
new file mode 100644
index 0000000000..b8406e9a00
--- /dev/null
+++ b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_role.go
@@ -0,0 +1,42 @@
+package auditmanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Assessment_Role AWS CloudFormation Resource (AWS::AuditManager::Assessment.Role)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html
+type Assessment_Role struct {
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html#cfn-auditmanager-assessment-role-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // RoleType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-role.html#cfn-auditmanager-assessment-role-roletype
+ RoleType *types.Value `json:"RoleType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Assessment_Role) AWSCloudFormationType() string {
+ return "AWS::AuditManager::Assessment.Role"
+}
diff --git a/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_scope.go b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_scope.go
new file mode 100644
index 0000000000..ee425635a6
--- /dev/null
+++ b/goformation/cloudformation/auditmanager/aws-auditmanager-assessment_scope.go
@@ -0,0 +1,40 @@
+package auditmanager
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Assessment_Scope AWS CloudFormation Resource (AWS::AuditManager::Assessment.Scope)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html
+type Assessment_Scope struct {
+
+ // AwsAccounts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html#cfn-auditmanager-assessment-scope-awsaccounts
+ AwsAccounts []Assessment_AWSAccount `json:"AwsAccounts,omitempty"`
+
+ // AwsServices AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-auditmanager-assessment-scope.html#cfn-auditmanager-assessment-scope-awsservices
+ AwsServices []Assessment_AWSService `json:"AwsServices,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Assessment_Scope) AWSCloudFormationType() string {
+ return "AWS::AuditManager::Assessment.Scope"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go
new file mode 100644
index 0000000000..57d6df0553
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup.go
@@ -0,0 +1,258 @@
+package autoscaling
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html
+type AutoScalingGroup struct {
+
+ // AutoScalingGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-autoscaling-autoscalinggroup-autoscalinggroupname
+ AutoScalingGroupName *types.Value `json:"AutoScalingGroupName,omitempty"`
+
+ // AvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-availabilityzones
+ AvailabilityZones *types.Value `json:"AvailabilityZones,omitempty"`
+
+ // CapacityRebalance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-capacityrebalance
+ CapacityRebalance *types.Value `json:"CapacityRebalance,omitempty"`
+
+ // Context AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-context
+ Context *types.Value `json:"Context,omitempty"`
+
+ // Cooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-cooldown
+ Cooldown *types.Value `json:"Cooldown,omitempty"`
+
+ // DesiredCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacity
+ DesiredCapacity *types.Value `json:"DesiredCapacity,omitempty"`
+
+ // DesiredCapacityType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-desiredcapacitytype
+ DesiredCapacityType *types.Value `json:"DesiredCapacityType,omitempty"`
+
+ // HealthCheckGracePeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-healthcheckgraceperiod
+ HealthCheckGracePeriod *types.Value `json:"HealthCheckGracePeriod,omitempty"`
+
+ // HealthCheckType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-healthchecktype
+ HealthCheckType *types.Value `json:"HealthCheckType,omitempty"`
+
+ // InstanceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-instanceid
+ InstanceId *types.Value `json:"InstanceId,omitempty"`
+
+ // LaunchConfigurationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-launchconfigurationname
+ LaunchConfigurationName *types.Value `json:"LaunchConfigurationName,omitempty"`
+
+ // LaunchTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-launchtemplate
+ LaunchTemplate *AutoScalingGroup_LaunchTemplateSpecification `json:"LaunchTemplate,omitempty"`
+
+ // LifecycleHookSpecificationList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecificationlist
+ LifecycleHookSpecificationList []AutoScalingGroup_LifecycleHookSpecification `json:"LifecycleHookSpecificationList,omitempty"`
+
+ // LoadBalancerNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-loadbalancernames
+ LoadBalancerNames *types.Value `json:"LoadBalancerNames,omitempty"`
+
+ // MaxInstanceLifetime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-maxinstancelifetime
+ MaxInstanceLifetime *types.Value `json:"MaxInstanceLifetime,omitempty"`
+
+ // MaxSize AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-maxsize
+ MaxSize *types.Value `json:"MaxSize,omitempty"`
+
+ // MetricsCollection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-metricscollection
+ MetricsCollection []AutoScalingGroup_MetricsCollection `json:"MetricsCollection,omitempty"`
+
+ // MinSize AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-minsize
+ MinSize *types.Value `json:"MinSize,omitempty"`
+
+ // MixedInstancesPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-mixedinstancespolicy
+ MixedInstancesPolicy *AutoScalingGroup_MixedInstancesPolicy `json:"MixedInstancesPolicy,omitempty"`
+
+ // NewInstancesProtectedFromScaleIn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-newinstancesprotectedfromscalein
+ NewInstancesProtectedFromScaleIn *types.Value `json:"NewInstancesProtectedFromScaleIn,omitempty"`
+
+ // NotificationConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-notificationconfigurations
+ NotificationConfigurations []AutoScalingGroup_NotificationConfiguration `json:"NotificationConfigurations,omitempty"`
+
+ // PlacementGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-placementgroup
+ PlacementGroup *types.Value `json:"PlacementGroup,omitempty"`
+
+ // ServiceLinkedRoleARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-autoscaling-autoscalinggroup-servicelinkedrolearn
+ ServiceLinkedRoleARN *types.Value `json:"ServiceLinkedRoleARN,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-tags
+ Tags []AutoScalingGroup_TagProperty `json:"Tags,omitempty"`
+
+ // TargetGroupARNs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-targetgrouparns
+ TargetGroupARNs *types.Value `json:"TargetGroupARNs,omitempty"`
+
+ // TerminationPolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-termpolicy
+ TerminationPolicies *types.Value `json:"TerminationPolicies,omitempty"`
+
+ // VPCZoneIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html#cfn-as-group-vpczoneidentifier
+ VPCZoneIdentifier *types.Value `json:"VPCZoneIdentifier,omitempty"`
+
+ // AWSCloudFormationUpdatePolicy represents a CloudFormation UpdatePolicy
+ AWSCloudFormationUpdatePolicy *policies.UpdatePolicy `json:"-"`
+
+ // AWSCloudFormationCreationPolicy represents a CloudFormation CreationPolicy
+ AWSCloudFormationCreationPolicy *policies.CreationPolicy `json:"-"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AutoScalingGroup) MarshalJSON() ([]byte, error) {
+ type Properties AutoScalingGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ UpdatePolicy *policies.UpdatePolicy `json:"UpdatePolicy,omitempty"`
+ CreationPolicy *policies.CreationPolicy `json:"CreationPolicy,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ UpdatePolicy: r.AWSCloudFormationUpdatePolicy,
+ CreationPolicy: r.AWSCloudFormationCreationPolicy,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AutoScalingGroup) UnmarshalJSON(b []byte) error {
+ type Properties AutoScalingGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ UpdatePolicy *policies.UpdatePolicy
+ CreationPolicy *policies.CreationPolicy
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AutoScalingGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ if res.UpdatePolicy != nil {
+ r.AWSCloudFormationUpdatePolicy = res.UpdatePolicy
+ }
+
+ if res.CreationPolicy != nil {
+ r.AWSCloudFormationCreationPolicy = res.CreationPolicy
+ }
+
+ return nil
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratorcountrequest.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratorcountrequest.go
new file mode 100644
index 0000000000..3a09e05666
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratorcountrequest.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_AcceleratorCountRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html
+type AutoScalingGroup_AcceleratorCountRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html#cfn-autoscaling-autoscalinggroup-acceleratorcountrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratorcountrequest.html#cfn-autoscaling-autoscalinggroup-acceleratorcountrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_AcceleratorCountRequest) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratortotalmemorymibrequest.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratortotalmemorymibrequest.go
new file mode 100644
index 0000000000..8fb29ee733
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_acceleratortotalmemorymibrequest.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_AcceleratorTotalMemoryMiBRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html
+type AutoScalingGroup_AcceleratorTotalMemoryMiBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html#cfn-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest.html#cfn-autoscaling-autoscalinggroup-acceleratortotalmemorymibrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_AcceleratorTotalMemoryMiBRequest) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_baselineebsbandwidthmbpsrequest.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_baselineebsbandwidthmbpsrequest.go
new file mode 100644
index 0000000000..48e46166b0
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_baselineebsbandwidthmbpsrequest.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_BaselineEbsBandwidthMbpsRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html
+type AutoScalingGroup_BaselineEbsBandwidthMbpsRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html#cfn-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest.html#cfn-autoscaling-autoscalinggroup-baselineebsbandwidthmbpsrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_BaselineEbsBandwidthMbpsRequest) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancerequirements.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancerequirements.go
new file mode 100644
index 0000000000..55e12753d5
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancerequirements.go
@@ -0,0 +1,137 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_InstanceRequirements AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.InstanceRequirements)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html
+type AutoScalingGroup_InstanceRequirements struct {
+
+ // AcceleratorCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratorcount
+ AcceleratorCount *AutoScalingGroup_AcceleratorCountRequest `json:"AcceleratorCount,omitempty"`
+
+ // AcceleratorManufacturers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratormanufacturers
+ AcceleratorManufacturers *types.Value `json:"AcceleratorManufacturers,omitempty"`
+
+ // AcceleratorNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratornames
+ AcceleratorNames *types.Value `json:"AcceleratorNames,omitempty"`
+
+ // AcceleratorTotalMemoryMiB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratortotalmemorymib
+ AcceleratorTotalMemoryMiB *AutoScalingGroup_AcceleratorTotalMemoryMiBRequest `json:"AcceleratorTotalMemoryMiB,omitempty"`
+
+ // AcceleratorTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-acceleratortypes
+ AcceleratorTypes *types.Value `json:"AcceleratorTypes,omitempty"`
+
+ // BareMetal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-baremetal
+ BareMetal *types.Value `json:"BareMetal,omitempty"`
+
+ // BaselineEbsBandwidthMbps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-baselineebsbandwidthmbps
+ BaselineEbsBandwidthMbps *AutoScalingGroup_BaselineEbsBandwidthMbpsRequest `json:"BaselineEbsBandwidthMbps,omitempty"`
+
+ // BurstablePerformance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-burstableperformance
+ BurstablePerformance *types.Value `json:"BurstablePerformance,omitempty"`
+
+ // CpuManufacturers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-cpumanufacturers
+ CpuManufacturers *types.Value `json:"CpuManufacturers,omitempty"`
+
+ // ExcludedInstanceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-excludedinstancetypes
+ ExcludedInstanceTypes *types.Value `json:"ExcludedInstanceTypes,omitempty"`
+
+ // InstanceGenerations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-instancegenerations
+ InstanceGenerations *types.Value `json:"InstanceGenerations,omitempty"`
+
+ // LocalStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-localstorage
+ LocalStorage *types.Value `json:"LocalStorage,omitempty"`
+
+ // LocalStorageTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-localstoragetypes
+ LocalStorageTypes *types.Value `json:"LocalStorageTypes,omitempty"`
+
+ // MemoryGiBPerVCpu AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-memorygibpervcpu
+ MemoryGiBPerVCpu *AutoScalingGroup_MemoryGiBPerVCpuRequest `json:"MemoryGiBPerVCpu,omitempty"`
+
+ // MemoryMiB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-memorymib
+ MemoryMiB *AutoScalingGroup_MemoryMiBRequest `json:"MemoryMiB,omitempty"`
+
+ // NetworkInterfaceCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-networkinterfacecount
+ NetworkInterfaceCount *AutoScalingGroup_NetworkInterfaceCountRequest `json:"NetworkInterfaceCount,omitempty"`
+
+ // OnDemandMaxPricePercentageOverLowestPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-ondemandmaxpricepercentageoverlowestprice
+ OnDemandMaxPricePercentageOverLowestPrice *types.Value `json:"OnDemandMaxPricePercentageOverLowestPrice,omitempty"`
+
+ // RequireHibernateSupport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-requirehibernatesupport
+ RequireHibernateSupport *types.Value `json:"RequireHibernateSupport,omitempty"`
+
+ // SpotMaxPricePercentageOverLowestPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-spotmaxpricepercentageoverlowestprice
+ SpotMaxPricePercentageOverLowestPrice *types.Value `json:"SpotMaxPricePercentageOverLowestPrice,omitempty"`
+
+ // TotalLocalStorageGB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-totallocalstoragegb
+ TotalLocalStorageGB *AutoScalingGroup_TotalLocalStorageGBRequest `json:"TotalLocalStorageGB,omitempty"`
+
+ // VCpuCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancerequirements.html#cfn-autoscaling-autoscalinggroup-instancerequirements-vcpucount
+ VCpuCount *AutoScalingGroup_VCpuCountRequest `json:"VCpuCount,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_InstanceRequirements) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancesdistribution.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancesdistribution.go
new file mode 100644
index 0000000000..79abdb06f0
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_instancesdistribution.go
@@ -0,0 +1,62 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_InstancesDistribution AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.InstancesDistribution)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancesdistribution.html
+type AutoScalingGroup_InstancesDistribution struct {
+
+ // OnDemandAllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancesdistribution.html#cfn-autoscaling-autoscalinggroup-instancesdistribution-ondemandallocationstrategy
+ OnDemandAllocationStrategy *types.Value `json:"OnDemandAllocationStrategy,omitempty"`
+
+ // OnDemandBaseCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancesdistribution.html#cfn-autoscaling-autoscalinggroup-instancesdistribution-ondemandbasecapacity
+ OnDemandBaseCapacity *types.Value `json:"OnDemandBaseCapacity,omitempty"`
+
+ // OnDemandPercentageAboveBaseCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancesdistribution.html#cfn-autoscaling-autoscalinggroup-instancesdistribution-ondemandpercentageabovebasecapacity
+ OnDemandPercentageAboveBaseCapacity *types.Value `json:"OnDemandPercentageAboveBaseCapacity,omitempty"`
+
+ // SpotAllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancesdistribution.html#cfn-autoscaling-autoscalinggroup-instancesdistribution-spotallocationstrategy
+ SpotAllocationStrategy *types.Value `json:"SpotAllocationStrategy,omitempty"`
+
+ // SpotInstancePools AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancesdistribution.html#cfn-autoscaling-autoscalinggroup-instancesdistribution-spotinstancepools
+ SpotInstancePools *types.Value `json:"SpotInstancePools,omitempty"`
+
+ // SpotMaxPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-instancesdistribution.html#cfn-autoscaling-autoscalinggroup-instancesdistribution-spotmaxprice
+ SpotMaxPrice *types.Value `json:"SpotMaxPrice,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_InstancesDistribution) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplate.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplate.go
new file mode 100644
index 0000000000..d00bdba5d6
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplate.go
@@ -0,0 +1,40 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_LaunchTemplate AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.LaunchTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplate.html
+type AutoScalingGroup_LaunchTemplate struct {
+
+ // LaunchTemplateSpecification AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplate.html#cfn-as-group-launchtemplate
+ LaunchTemplateSpecification *AutoScalingGroup_LaunchTemplateSpecification `json:"LaunchTemplateSpecification,omitempty"`
+
+ // Overrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplate.html#cfn-as-mixedinstancespolicy-overrides
+ Overrides []AutoScalingGroup_LaunchTemplateOverrides `json:"Overrides,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_LaunchTemplate) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go
new file mode 100644
index 0000000000..ddf624b1d8
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplateoverrides.go
@@ -0,0 +1,52 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_LaunchTemplateOverrides AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html
+type AutoScalingGroup_LaunchTemplateOverrides struct {
+
+ // InstanceRequirements AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-as-mixedinstancespolicy-instancerequirements
+ InstanceRequirements *AutoScalingGroup_InstanceRequirements `json:"InstanceRequirements,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // LaunchTemplateSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-launchtemplatespecification
+ LaunchTemplateSpecification *AutoScalingGroup_LaunchTemplateSpecification `json:"LaunchTemplateSpecification,omitempty"`
+
+ // WeightedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-mixedinstancespolicy-launchtemplateoverrides.html#cfn-autoscaling-autoscalinggroup-launchtemplateoverrides-weightedcapacity
+ WeightedCapacity *types.Value `json:"WeightedCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_LaunchTemplateOverrides) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go
new file mode 100644
index 0000000000..bb01fd67fa
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_launchtemplatespecification.go
@@ -0,0 +1,47 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_LaunchTemplateSpecification AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html
+type AutoScalingGroup_LaunchTemplateSpecification struct {
+
+ // LaunchTemplateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html#cfn-autoscaling-autoscalinggroup-launchtemplatespecification-launchtemplateid
+ LaunchTemplateId *types.Value `json:"LaunchTemplateId,omitempty"`
+
+ // LaunchTemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html#cfn-autoscaling-autoscalinggroup-launchtemplatespecification-launchtemplatename
+ LaunchTemplateName *types.Value `json:"LaunchTemplateName,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplatespecification.html#cfn-autoscaling-autoscalinggroup-launchtemplatespecification-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_LaunchTemplateSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go
new file mode 100644
index 0000000000..f31817caf9
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_lifecyclehookspecification.go
@@ -0,0 +1,67 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_LifecycleHookSpecification AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html
+type AutoScalingGroup_LifecycleHookSpecification struct {
+
+ // DefaultResult AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-defaultresult
+ DefaultResult *types.Value `json:"DefaultResult,omitempty"`
+
+ // HeartbeatTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-heartbeattimeout
+ HeartbeatTimeout *types.Value `json:"HeartbeatTimeout,omitempty"`
+
+ // LifecycleHookName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-lifecyclehookname
+ LifecycleHookName *types.Value `json:"LifecycleHookName,omitempty"`
+
+ // LifecycleTransition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-lifecycletransition
+ LifecycleTransition *types.Value `json:"LifecycleTransition,omitempty"`
+
+ // NotificationMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-notificationmetadata
+ NotificationMetadata *types.Value `json:"NotificationMetadata,omitempty"`
+
+ // NotificationTargetARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-notificationtargetarn
+ NotificationTargetARN *types.Value `json:"NotificationTargetARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-lifecyclehookspecification.html#cfn-autoscaling-autoscalinggroup-lifecyclehookspecification-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_LifecycleHookSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorygibpervcpurequest.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorygibpervcpurequest.go
new file mode 100644
index 0000000000..4ad05e3cdd
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorygibpervcpurequest.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_MemoryGiBPerVCpuRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html
+type AutoScalingGroup_MemoryGiBPerVCpuRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html#cfn-autoscaling-autoscalinggroup-memorygibpervcpurequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorygibpervcpurequest.html#cfn-autoscaling-autoscalinggroup-memorygibpervcpurequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_MemoryGiBPerVCpuRequest) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorymibrequest.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorymibrequest.go
new file mode 100644
index 0000000000..39663b8282
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_memorymibrequest.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_MemoryMiBRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html
+type AutoScalingGroup_MemoryMiBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html#cfn-autoscaling-autoscalinggroup-memorymibrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-memorymibrequest.html#cfn-autoscaling-autoscalinggroup-memorymibrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_MemoryMiBRequest) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_metricscollection.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_metricscollection.go
new file mode 100644
index 0000000000..c60ddc3778
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_metricscollection.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_MetricsCollection AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.MetricsCollection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html
+type AutoScalingGroup_MetricsCollection struct {
+
+ // Granularity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html#cfn-as-metricscollection-granularity
+ Granularity *types.Value `json:"Granularity,omitempty"`
+
+ // Metrics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-metricscollection.html#cfn-as-metricscollection-metrics
+ Metrics *types.Value `json:"Metrics,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_MetricsCollection) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.MetricsCollection"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go
new file mode 100644
index 0000000000..5d56cac0d9
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_mixedinstancespolicy.go
@@ -0,0 +1,40 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_MixedInstancesPolicy AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-group-mixedinstancespolicy.html
+type AutoScalingGroup_MixedInstancesPolicy struct {
+
+ // InstancesDistribution AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-group-mixedinstancespolicy.html#cfn-as-mixedinstancespolicy-instancesdistribution
+ InstancesDistribution *AutoScalingGroup_InstancesDistribution `json:"InstancesDistribution,omitempty"`
+
+ // LaunchTemplate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-as-group-mixedinstancespolicy.html#cfn-as-mixedinstancespolicy-launchtemplate
+ LaunchTemplate *AutoScalingGroup_LaunchTemplate `json:"LaunchTemplate,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_MixedInstancesPolicy) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_networkinterfacecountrequest.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_networkinterfacecountrequest.go
new file mode 100644
index 0000000000..420939cf82
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_networkinterfacecountrequest.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_NetworkInterfaceCountRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html
+type AutoScalingGroup_NetworkInterfaceCountRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html#cfn-autoscaling-autoscalinggroup-networkinterfacecountrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-networkinterfacecountrequest.html#cfn-autoscaling-autoscalinggroup-networkinterfacecountrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_NetworkInterfaceCountRequest) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_notificationconfiguration.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_notificationconfiguration.go
new file mode 100644
index 0000000000..b21c669ff7
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_notificationconfiguration.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_NotificationConfiguration AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html
+type AutoScalingGroup_NotificationConfiguration struct {
+
+ // NotificationTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html#cfn-as-group-notificationconfigurations-notificationtypes
+ NotificationTypes *types.Value `json:"NotificationTypes,omitempty"`
+
+ // TopicARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-notificationconfigurations.html#cfn-autoscaling-autoscalinggroup-notificationconfigurations-topicarn
+ TopicARN *types.Value `json:"TopicARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_NotificationConfiguration) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_tagproperty.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_tagproperty.go
new file mode 100644
index 0000000000..a7777ff135
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_tagproperty.go
@@ -0,0 +1,47 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_TagProperty AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.TagProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html
+type AutoScalingGroup_TagProperty struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html#cfn-as-tags-Key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // PropagateAtLaunch AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html#cfn-as-tags-PropagateAtLaunch
+ PropagateAtLaunch *types.Value `json:"PropagateAtLaunch"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html#cfn-as-tags-Value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_TagProperty) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.TagProperty"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_totallocalstoragegbrequest.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_totallocalstoragegbrequest.go
new file mode 100644
index 0000000000..ac30e575ed
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_totallocalstoragegbrequest.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_TotalLocalStorageGBRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html
+type AutoScalingGroup_TotalLocalStorageGBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html#cfn-autoscaling-autoscalinggroup-totallocalstoragegbrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-totallocalstoragegbrequest.html#cfn-autoscaling-autoscalinggroup-totallocalstoragegbrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_TotalLocalStorageGBRequest) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_vcpucountrequest.go b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_vcpucountrequest.go
new file mode 100644
index 0000000000..e6c6668670
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-autoscalinggroup_vcpucountrequest.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AutoScalingGroup_VCpuCountRequest AWS CloudFormation Resource (AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html
+type AutoScalingGroup_VCpuCountRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html#cfn-autoscaling-autoscalinggroup-vcpucountrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-vcpucountrequest.html#cfn-autoscaling-autoscalinggroup-vcpucountrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AutoScalingGroup_VCpuCountRequest) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go
new file mode 100644
index 0000000000..8eb5e4b53a
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration.go
@@ -0,0 +1,198 @@
+package autoscaling
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchConfiguration AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html
+type LaunchConfiguration struct {
+
+ // AssociatePublicIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cf-as-launchconfig-associatepubip
+ AssociatePublicIpAddress *types.Value `json:"AssociatePublicIpAddress,omitempty"`
+
+ // BlockDeviceMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-blockdevicemappings
+ BlockDeviceMappings []LaunchConfiguration_BlockDeviceMapping `json:"BlockDeviceMappings,omitempty"`
+
+ // ClassicLinkVPCId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-classiclinkvpcid
+ ClassicLinkVPCId *types.Value `json:"ClassicLinkVPCId,omitempty"`
+
+ // ClassicLinkVPCSecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-classiclinkvpcsecuritygroups
+ ClassicLinkVPCSecurityGroups *types.Value `json:"ClassicLinkVPCSecurityGroups,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // IamInstanceProfile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-iaminstanceprofile
+ IamInstanceProfile *types.Value `json:"IamInstanceProfile,omitempty"`
+
+ // ImageId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-imageid
+ ImageId *types.Value `json:"ImageId,omitempty"`
+
+ // InstanceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instanceid
+ InstanceId *types.Value `json:"InstanceId,omitempty"`
+
+ // InstanceMonitoring AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instancemonitoring
+ InstanceMonitoring *types.Value `json:"InstanceMonitoring,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // KernelId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-kernelid
+ KernelId *types.Value `json:"KernelId,omitempty"`
+
+ // KeyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-keyname
+ KeyName *types.Value `json:"KeyName,omitempty"`
+
+ // LaunchConfigurationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-autoscaling-launchconfig-launchconfigurationname
+ LaunchConfigurationName *types.Value `json:"LaunchConfigurationName,omitempty"`
+
+ // MetadataOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-autoscaling-launchconfig-metadataoptions
+ MetadataOptions *LaunchConfiguration_MetadataOptions `json:"MetadataOptions,omitempty"`
+
+ // PlacementTenancy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-placementtenancy
+ PlacementTenancy *types.Value `json:"PlacementTenancy,omitempty"`
+
+ // RamDiskId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-ramdiskid
+ RamDiskId *types.Value `json:"RamDiskId,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // SpotPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-spotprice
+ SpotPrice *types.Value `json:"SpotPrice,omitempty"`
+
+ // UserData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html#cfn-as-launchconfig-userdata
+ UserData *types.Value `json:"UserData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchConfiguration) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::LaunchConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LaunchConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties LaunchConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LaunchConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties LaunchConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LaunchConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevice.go b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevice.go
new file mode 100644
index 0000000000..17453ace81
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevice.go
@@ -0,0 +1,67 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchConfiguration_BlockDevice AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.BlockDevice)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html
+type LaunchConfiguration_BlockDevice struct {
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-deleteonterm
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-encrypted
+ Encrypted *types.Value `json:"Encrypted,omitempty"`
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // SnapshotId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-snapshotid
+ SnapshotId *types.Value `json:"SnapshotId,omitempty"`
+
+ // Throughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-throughput
+ Throughput *types.Value `json:"Throughput,omitempty"`
+
+ // VolumeSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-volumesize
+ VolumeSize *types.Value `json:"VolumeSize,omitempty"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-template.html#cfn-as-launchconfig-blockdev-template-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchConfiguration_BlockDevice) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::LaunchConfiguration.BlockDevice"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevicemapping.go b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevicemapping.go
new file mode 100644
index 0000000000..64706d3fc9
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_blockdevicemapping.go
@@ -0,0 +1,52 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchConfiguration_BlockDeviceMapping AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html
+type LaunchConfiguration_BlockDeviceMapping struct {
+
+ // DeviceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-devicename
+ DeviceName *types.Value `json:"DeviceName,omitempty"`
+
+ // Ebs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-ebs
+ Ebs *LaunchConfiguration_BlockDevice `json:"Ebs,omitempty"`
+
+ // NoDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-nodevice
+ NoDevice *types.Value `json:"NoDevice,omitempty"`
+
+ // VirtualName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig-blockdev-mapping.html#cfn-as-launchconfig-blockdev-mapping-virtualname
+ VirtualName *types.Value `json:"VirtualName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchConfiguration_BlockDeviceMapping) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoption.go b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoption.go
new file mode 100644
index 0000000000..731a3584a6
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoption.go
@@ -0,0 +1,47 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchConfiguration_MetadataOption AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.MetadataOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html
+type LaunchConfiguration_MetadataOption struct {
+
+ // HttpEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httpendpoint
+ HttpEndpoint *types.Value `json:"HttpEndpoint,omitempty"`
+
+ // HttpPutResponseHopLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httpputresponsehoplimit
+ HttpPutResponseHopLimit *types.Value `json:"HttpPutResponseHopLimit,omitempty"`
+
+ // HttpTokens AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoption.html#cfn-autoscaling-launchconfig-metadataoption-httptokens
+ HttpTokens *types.Value `json:"HttpTokens,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchConfiguration_MetadataOption) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::LaunchConfiguration.MetadataOption"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoptions.go b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoptions.go
new file mode 100644
index 0000000000..1b7d6bbdab
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-launchconfiguration_metadataoptions.go
@@ -0,0 +1,47 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchConfiguration_MetadataOptions AWS CloudFormation Resource (AWS::AutoScaling::LaunchConfiguration.MetadataOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoptions.html
+type LaunchConfiguration_MetadataOptions struct {
+
+ // HttpEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoptions.html#cfn-autoscaling-launchconfig-metadataoptions-httpendpoint
+ HttpEndpoint *types.Value `json:"HttpEndpoint,omitempty"`
+
+ // HttpPutResponseHopLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoptions.html#cfn-autoscaling-launchconfig-metadataoptions-httpputresponsehoplimit
+ HttpPutResponseHopLimit *types.Value `json:"HttpPutResponseHopLimit,omitempty"`
+
+ // HttpTokens AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-launchconfig-metadataoptions.html#cfn-autoscaling-launchconfig-metadataoptions-httptokens
+ HttpTokens *types.Value `json:"HttpTokens,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchConfiguration_MetadataOptions) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::LaunchConfiguration.MetadataOptions"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-lifecyclehook.go b/goformation/cloudformation/autoscaling/aws-autoscaling-lifecyclehook.go
new file mode 100644
index 0000000000..bc9841b5fa
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-lifecyclehook.go
@@ -0,0 +1,143 @@
+package autoscaling
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecycleHook AWS CloudFormation Resource (AWS::AutoScaling::LifecycleHook)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html
+type LifecycleHook struct {
+
+ // AutoScalingGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-autoscalinggroupname
+ AutoScalingGroupName *types.Value `json:"AutoScalingGroupName,omitempty"`
+
+ // DefaultResult AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-defaultresult
+ DefaultResult *types.Value `json:"DefaultResult,omitempty"`
+
+ // HeartbeatTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-heartbeattimeout
+ HeartbeatTimeout *types.Value `json:"HeartbeatTimeout,omitempty"`
+
+ // LifecycleHookName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-lifecyclehookname
+ LifecycleHookName *types.Value `json:"LifecycleHookName,omitempty"`
+
+ // LifecycleTransition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-lifecycletransition
+ LifecycleTransition *types.Value `json:"LifecycleTransition,omitempty"`
+
+ // NotificationMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-notificationmetadata
+ NotificationMetadata *types.Value `json:"NotificationMetadata,omitempty"`
+
+ // NotificationTargetARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-notificationtargetarn
+ NotificationTargetARN *types.Value `json:"NotificationTargetARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#cfn-autoscaling-lifecyclehook-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecycleHook) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::LifecycleHook"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LifecycleHook) MarshalJSON() ([]byte, error) {
+ type Properties LifecycleHook
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LifecycleHook) UnmarshalJSON(b []byte) error {
+ type Properties LifecycleHook
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LifecycleHook(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy.go
new file mode 100644
index 0000000000..2362d12fd4
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy.go
@@ -0,0 +1,158 @@
+package autoscaling
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html
+type ScalingPolicy struct {
+
+ // AdjustmentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-adjustmenttype
+ AdjustmentType *types.Value `json:"AdjustmentType,omitempty"`
+
+ // AutoScalingGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-autoscalinggroupname
+ AutoScalingGroupName *types.Value `json:"AutoScalingGroupName,omitempty"`
+
+ // Cooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-cooldown
+ Cooldown *types.Value `json:"Cooldown,omitempty"`
+
+ // EstimatedInstanceWarmup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-estimatedinstancewarmup
+ EstimatedInstanceWarmup *types.Value `json:"EstimatedInstanceWarmup,omitempty"`
+
+ // MetricAggregationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-metricaggregationtype
+ MetricAggregationType *types.Value `json:"MetricAggregationType,omitempty"`
+
+ // MinAdjustmentMagnitude AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-minadjustmentmagnitude
+ MinAdjustmentMagnitude *types.Value `json:"MinAdjustmentMagnitude,omitempty"`
+
+ // PolicyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-policytype
+ PolicyType *types.Value `json:"PolicyType,omitempty"`
+
+ // PredictiveScalingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration
+ PredictiveScalingConfiguration *ScalingPolicy_PredictiveScalingConfiguration `json:"PredictiveScalingConfiguration,omitempty"`
+
+ // ScalingAdjustment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-scalingadjustment
+ ScalingAdjustment *types.Value `json:"ScalingAdjustment,omitempty"`
+
+ // StepAdjustments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-stepadjustments
+ StepAdjustments []ScalingPolicy_StepAdjustment `json:"StepAdjustments,omitempty"`
+
+ // TargetTrackingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration
+ TargetTrackingConfiguration *ScalingPolicy_TargetTrackingConfiguration `json:"TargetTrackingConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ScalingPolicy) MarshalJSON() ([]byte, error) {
+ type Properties ScalingPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ScalingPolicy) UnmarshalJSON(b []byte) error {
+ type Properties ScalingPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ScalingPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_customizedmetricspecification.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_customizedmetricspecification.go
new file mode 100644
index 0000000000..2f6676da8a
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_customizedmetricspecification.go
@@ -0,0 +1,57 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_CustomizedMetricSpecification AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html
+type ScalingPolicy_CustomizedMetricSpecification struct {
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-dimensions
+ Dimensions []ScalingPolicy_MetricDimension `json:"Dimensions,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // Statistic AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-customizedmetricspecification.html#cfn-autoscaling-scalingpolicy-customizedmetricspecification-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_CustomizedMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_metricdimension.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_metricdimension.go
new file mode 100644
index 0000000000..952d436840
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_metricdimension.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_MetricDimension AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.MetricDimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html
+type ScalingPolicy_MetricDimension struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html#cfn-autoscaling-scalingpolicy-metricdimension-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-metricdimension.html#cfn-autoscaling-scalingpolicy-metricdimension-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_MetricDimension) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.MetricDimension"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go
new file mode 100644
index 0000000000..6fb1819d99
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predefinedmetricspecification.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_PredefinedMetricSpecification AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html
+type ScalingPolicy_PredefinedMetricSpecification struct {
+
+ // PredefinedMetricType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-autoscaling-scalingpolicy-predefinedmetricspecification-predefinedmetrictype
+ PredefinedMetricType *types.Value `json:"PredefinedMetricType,omitempty"`
+
+ // ResourceLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predefinedmetricspecification.html#cfn-autoscaling-scalingpolicy-predefinedmetricspecification-resourcelabel
+ ResourceLabel *types.Value `json:"ResourceLabel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_PredefinedMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingconfiguration.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingconfiguration.go
new file mode 100644
index 0000000000..d76681e44e
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingconfiguration.go
@@ -0,0 +1,57 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_PredictiveScalingConfiguration AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html
+type ScalingPolicy_PredictiveScalingConfiguration struct {
+
+ // MaxCapacityBreachBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-maxcapacitybreachbehavior
+ MaxCapacityBreachBehavior *types.Value `json:"MaxCapacityBreachBehavior,omitempty"`
+
+ // MaxCapacityBuffer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-maxcapacitybuffer
+ MaxCapacityBuffer *types.Value `json:"MaxCapacityBuffer,omitempty"`
+
+ // MetricSpecifications AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-metricspecifications
+ MetricSpecifications []ScalingPolicy_PredictiveScalingMetricSpecification `json:"MetricSpecifications,omitempty"`
+
+ // Mode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // SchedulingBufferTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingconfiguration.html#cfn-autoscaling-scalingpolicy-predictivescalingconfiguration-schedulingbuffertime
+ SchedulingBufferTime *types.Value `json:"SchedulingBufferTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_PredictiveScalingConfiguration) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingmetricspecification.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingmetricspecification.go
new file mode 100644
index 0000000000..069ccf4f2f
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingmetricspecification.go
@@ -0,0 +1,52 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_PredictiveScalingMetricSpecification AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html
+type ScalingPolicy_PredictiveScalingMetricSpecification struct {
+
+ // PredefinedLoadMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-autoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedloadmetricspecification
+ PredefinedLoadMetricSpecification *ScalingPolicy_PredictiveScalingPredefinedLoadMetric `json:"PredefinedLoadMetricSpecification,omitempty"`
+
+ // PredefinedMetricPairSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-autoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedmetricpairspecification
+ PredefinedMetricPairSpecification *ScalingPolicy_PredictiveScalingPredefinedMetricPair `json:"PredefinedMetricPairSpecification,omitempty"`
+
+ // PredefinedScalingMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-autoscaling-scalingpolicy-predictivescalingmetricspecification-predefinedscalingmetricspecification
+ PredefinedScalingMetricSpecification *ScalingPolicy_PredictiveScalingPredefinedScalingMetric `json:"PredefinedScalingMetricSpecification,omitempty"`
+
+ // TargetValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingmetricspecification.html#cfn-autoscaling-scalingpolicy-predictivescalingmetricspecification-targetvalue
+ TargetValue *types.Value `json:"TargetValue"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_PredictiveScalingMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedloadmetric.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedloadmetric.go
new file mode 100644
index 0000000000..55ac20f821
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedloadmetric.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_PredictiveScalingPredefinedLoadMetric AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html
+type ScalingPolicy_PredictiveScalingPredefinedLoadMetric struct {
+
+ // PredefinedMetricType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric-predefinedmetrictype
+ PredefinedMetricType *types.Value `json:"PredefinedMetricType,omitempty"`
+
+ // ResourceLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedloadmetric-resourcelabel
+ ResourceLabel *types.Value `json:"ResourceLabel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_PredictiveScalingPredefinedLoadMetric) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedmetricpair.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedmetricpair.go
new file mode 100644
index 0000000000..295c868d2f
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedmetricpair.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_PredictiveScalingPredefinedMetricPair AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html
+type ScalingPolicy_PredictiveScalingPredefinedMetricPair struct {
+
+ // PredefinedMetricType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair-predefinedmetrictype
+ PredefinedMetricType *types.Value `json:"PredefinedMetricType,omitempty"`
+
+ // ResourceLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedmetricpair-resourcelabel
+ ResourceLabel *types.Value `json:"ResourceLabel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_PredictiveScalingPredefinedMetricPair) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedscalingmetric.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedscalingmetric.go
new file mode 100644
index 0000000000..cd580747c6
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_predictivescalingpredefinedscalingmetric.go
@@ -0,0 +1,42 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_PredictiveScalingPredefinedScalingMetric AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html
+type ScalingPolicy_PredictiveScalingPredefinedScalingMetric struct {
+
+ // PredefinedMetricType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric-predefinedmetrictype
+ PredefinedMetricType *types.Value `json:"PredefinedMetricType,omitempty"`
+
+ // ResourceLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric.html#cfn-autoscaling-scalingpolicy-predictivescalingpredefinedscalingmetric-resourcelabel
+ ResourceLabel *types.Value `json:"ResourceLabel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_PredictiveScalingPredefinedScalingMetric) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_stepadjustment.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_stepadjustment.go
new file mode 100644
index 0000000000..d78bb7b255
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_stepadjustment.go
@@ -0,0 +1,47 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_StepAdjustment AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.StepAdjustment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html
+type ScalingPolicy_StepAdjustment struct {
+
+ // MetricIntervalLowerBound AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html#cfn-autoscaling-scalingpolicy-stepadjustment-metricintervallowerbound
+ MetricIntervalLowerBound *types.Value `json:"MetricIntervalLowerBound,omitempty"`
+
+ // MetricIntervalUpperBound AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html#cfn-autoscaling-scalingpolicy-stepadjustment-metricintervalupperbound
+ MetricIntervalUpperBound *types.Value `json:"MetricIntervalUpperBound,omitempty"`
+
+ // ScalingAdjustment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-stepadjustments.html#cfn-autoscaling-scalingpolicy-stepadjustment-scalingadjustment
+ ScalingAdjustment *types.Value `json:"ScalingAdjustment"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_StepAdjustment) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.StepAdjustment"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go
new file mode 100644
index 0000000000..67bbc576d8
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scalingpolicy_targettrackingconfiguration.go
@@ -0,0 +1,52 @@
+package autoscaling
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPolicy_TargetTrackingConfiguration AWS CloudFormation Resource (AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html
+type ScalingPolicy_TargetTrackingConfiguration struct {
+
+ // CustomizedMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration-customizedmetricspecification
+ CustomizedMetricSpecification *ScalingPolicy_CustomizedMetricSpecification `json:"CustomizedMetricSpecification,omitempty"`
+
+ // DisableScaleIn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration-disablescalein
+ DisableScaleIn *types.Value `json:"DisableScaleIn,omitempty"`
+
+ // PredefinedMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration-predefinedmetricspecification
+ PredefinedMetricSpecification *ScalingPolicy_PredefinedMetricSpecification `json:"PredefinedMetricSpecification,omitempty"`
+
+ // TargetValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-scalingpolicy-targettrackingconfiguration.html#cfn-autoscaling-scalingpolicy-targettrackingconfiguration-targetvalue
+ TargetValue *types.Value `json:"TargetValue"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPolicy_TargetTrackingConfiguration) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration"
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-scheduledaction.go b/goformation/cloudformation/autoscaling/aws-autoscaling-scheduledaction.go
new file mode 100644
index 0000000000..0ecc8f69cc
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-scheduledaction.go
@@ -0,0 +1,143 @@
+package autoscaling
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScheduledAction AWS CloudFormation Resource (AWS::AutoScaling::ScheduledAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html
+type ScheduledAction struct {
+
+ // AutoScalingGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-asgname
+ AutoScalingGroupName *types.Value `json:"AutoScalingGroupName,omitempty"`
+
+ // DesiredCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-desiredcapacity
+ DesiredCapacity *types.Value `json:"DesiredCapacity,omitempty"`
+
+ // EndTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-endtime
+ EndTime *types.Value `json:"EndTime,omitempty"`
+
+ // MaxSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-maxsize
+ MaxSize *types.Value `json:"MaxSize,omitempty"`
+
+ // MinSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-minsize
+ MinSize *types.Value `json:"MinSize,omitempty"`
+
+ // Recurrence AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-recurrence
+ Recurrence *types.Value `json:"Recurrence,omitempty"`
+
+ // StartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-starttime
+ StartTime *types.Value `json:"StartTime,omitempty"`
+
+ // TimeZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-scheduledaction.html#cfn-as-scheduledaction-timezone
+ TimeZone *types.Value `json:"TimeZone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScheduledAction) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::ScheduledAction"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ScheduledAction) MarshalJSON() ([]byte, error) {
+ type Properties ScheduledAction
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ScheduledAction) UnmarshalJSON(b []byte) error {
+ type Properties ScheduledAction
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ScheduledAction(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/autoscaling/aws-autoscaling-warmpool.go b/goformation/cloudformation/autoscaling/aws-autoscaling-warmpool.go
new file mode 100644
index 0000000000..88ee8b846d
--- /dev/null
+++ b/goformation/cloudformation/autoscaling/aws-autoscaling-warmpool.go
@@ -0,0 +1,123 @@
+package autoscaling
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WarmPool AWS CloudFormation Resource (AWS::AutoScaling::WarmPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html
+type WarmPool struct {
+
+ // AutoScalingGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html#cfn-autoscaling-warmpool-autoscalinggroupname
+ AutoScalingGroupName *types.Value `json:"AutoScalingGroupName,omitempty"`
+
+ // MaxGroupPreparedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html#cfn-autoscaling-warmpool-maxgrouppreparedcapacity
+ MaxGroupPreparedCapacity *types.Value `json:"MaxGroupPreparedCapacity,omitempty"`
+
+ // MinSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html#cfn-autoscaling-warmpool-minsize
+ MinSize *types.Value `json:"MinSize,omitempty"`
+
+ // PoolState AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-warmpool.html#cfn-autoscaling-warmpool-poolstate
+ PoolState *types.Value `json:"PoolState,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WarmPool) AWSCloudFormationType() string {
+ return "AWS::AutoScaling::WarmPool"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r WarmPool) MarshalJSON() ([]byte, error) {
+ type Properties WarmPool
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *WarmPool) UnmarshalJSON(b []byte) error {
+ type Properties WarmPool
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = WarmPool(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan.go
new file mode 100644
index 0000000000..45b30792b9
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan.go
@@ -0,0 +1,111 @@
+package autoscalingplans
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html
+type ScalingPlan struct {
+
+ // ApplicationSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html#cfn-autoscalingplans-scalingplan-applicationsource
+ ApplicationSource *ScalingPlan_ApplicationSource `json:"ApplicationSource,omitempty"`
+
+ // ScalingInstructions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscalingplans-scalingplan.html#cfn-autoscalingplans-scalingplan-scalinginstructions
+ ScalingInstructions []ScalingPlan_ScalingInstruction `json:"ScalingInstructions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ScalingPlan) MarshalJSON() ([]byte, error) {
+ type Properties ScalingPlan
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ScalingPlan) UnmarshalJSON(b []byte) error {
+ type Properties ScalingPlan
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ScalingPlan(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_applicationsource.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_applicationsource.go
new file mode 100644
index 0000000000..d3a654cae7
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_applicationsource.go
@@ -0,0 +1,42 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_ApplicationSource AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.ApplicationSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html
+type ScalingPlan_ApplicationSource struct {
+
+ // CloudFormationStackARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html#cfn-autoscalingplans-scalingplan-applicationsource-cloudformationstackarn
+ CloudFormationStackARN *types.Value `json:"CloudFormationStackARN,omitempty"`
+
+ // TagFilters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html#cfn-autoscalingplans-scalingplan-applicationsource-tagfilters
+ TagFilters []ScalingPlan_TagFilter `json:"TagFilters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_ApplicationSource) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource"
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go
new file mode 100644
index 0000000000..9b91a932c6
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_customizedloadmetricspecification.go
@@ -0,0 +1,57 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_CustomizedLoadMetricSpecification AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html
+type ScalingPlan_CustomizedLoadMetricSpecification struct {
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-dimensions
+ Dimensions []ScalingPlan_MetricDimension `json:"Dimensions,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // Statistic AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedloadmetricspecification-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_CustomizedLoadMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification"
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go
new file mode 100644
index 0000000000..ec61e6229d
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_customizedscalingmetricspecification.go
@@ -0,0 +1,57 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_CustomizedScalingMetricSpecification AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html
+type ScalingPlan_CustomizedScalingMetricSpecification struct {
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-dimensions
+ Dimensions []ScalingPlan_MetricDimension `json:"Dimensions,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // Statistic AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-customizedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-customizedscalingmetricspecification-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_CustomizedScalingMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification"
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_metricdimension.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_metricdimension.go
new file mode 100644
index 0000000000..9b32187b21
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_metricdimension.go
@@ -0,0 +1,42 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_MetricDimension AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.MetricDimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html
+type ScalingPlan_MetricDimension struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html#cfn-autoscalingplans-scalingplan-metricdimension-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-metricdimension.html#cfn-autoscalingplans-scalingplan-metricdimension-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_MetricDimension) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.MetricDimension"
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go
new file mode 100644
index 0000000000..e07e6712ba
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_predefinedloadmetricspecification.go
@@ -0,0 +1,42 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_PredefinedLoadMetricSpecification AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html
+type ScalingPlan_PredefinedLoadMetricSpecification struct {
+
+ // PredefinedLoadMetricType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-predefinedloadmetricspecification-predefinedloadmetrictype
+ PredefinedLoadMetricType *types.Value `json:"PredefinedLoadMetricType,omitempty"`
+
+ // ResourceLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedloadmetricspecification.html#cfn-autoscalingplans-scalingplan-predefinedloadmetricspecification-resourcelabel
+ ResourceLabel *types.Value `json:"ResourceLabel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_PredefinedLoadMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification"
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go
new file mode 100644
index 0000000000..8f84772c57
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_predefinedscalingmetricspecification.go
@@ -0,0 +1,42 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_PredefinedScalingMetricSpecification AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html
+type ScalingPlan_PredefinedScalingMetricSpecification struct {
+
+ // PredefinedScalingMetricType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-predefinedscalingmetricspecification-predefinedscalingmetrictype
+ PredefinedScalingMetricType *types.Value `json:"PredefinedScalingMetricType,omitempty"`
+
+ // ResourceLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-predefinedscalingmetricspecification.html#cfn-autoscalingplans-scalingplan-predefinedscalingmetricspecification-resourcelabel
+ ResourceLabel *types.Value `json:"ResourceLabel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_PredefinedScalingMetricSpecification) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification"
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_scalinginstruction.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_scalinginstruction.go
new file mode 100644
index 0000000000..df60731bce
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_scalinginstruction.go
@@ -0,0 +1,102 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_ScalingInstruction AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html
+type ScalingPlan_ScalingInstruction struct {
+
+ // CustomizedLoadMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-customizedloadmetricspecification
+ CustomizedLoadMetricSpecification *ScalingPlan_CustomizedLoadMetricSpecification `json:"CustomizedLoadMetricSpecification,omitempty"`
+
+ // DisableDynamicScaling AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-disabledynamicscaling
+ DisableDynamicScaling *types.Value `json:"DisableDynamicScaling,omitempty"`
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity"`
+
+ // MinCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-mincapacity
+ MinCapacity *types.Value `json:"MinCapacity"`
+
+ // PredefinedLoadMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-predefinedloadmetricspecification
+ PredefinedLoadMetricSpecification *ScalingPlan_PredefinedLoadMetricSpecification `json:"PredefinedLoadMetricSpecification,omitempty"`
+
+ // PredictiveScalingMaxCapacityBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-predictivescalingmaxcapacitybehavior
+ PredictiveScalingMaxCapacityBehavior *types.Value `json:"PredictiveScalingMaxCapacityBehavior,omitempty"`
+
+ // PredictiveScalingMaxCapacityBuffer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-predictivescalingmaxcapacitybuffer
+ PredictiveScalingMaxCapacityBuffer *types.Value `json:"PredictiveScalingMaxCapacityBuffer,omitempty"`
+
+ // PredictiveScalingMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-predictivescalingmode
+ PredictiveScalingMode *types.Value `json:"PredictiveScalingMode,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // ScalableDimension AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-scalabledimension
+ ScalableDimension *types.Value `json:"ScalableDimension,omitempty"`
+
+ // ScalingPolicyUpdateBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-scalingpolicyupdatebehavior
+ ScalingPolicyUpdateBehavior *types.Value `json:"ScalingPolicyUpdateBehavior,omitempty"`
+
+ // ScheduledActionBufferTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-scheduledactionbuffertime
+ ScheduledActionBufferTime *types.Value `json:"ScheduledActionBufferTime,omitempty"`
+
+ // ServiceNamespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-servicenamespace
+ ServiceNamespace *types.Value `json:"ServiceNamespace,omitempty"`
+
+ // TargetTrackingConfigurations AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-scalinginstruction.html#cfn-autoscalingplans-scalingplan-scalinginstruction-targettrackingconfigurations
+ TargetTrackingConfigurations []ScalingPlan_TargetTrackingConfiguration `json:"TargetTrackingConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_ScalingInstruction) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction"
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_tagfilter.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_tagfilter.go
new file mode 100644
index 0000000000..b1751828e7
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_tagfilter.go
@@ -0,0 +1,42 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_TagFilter AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.TagFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html
+type ScalingPlan_TagFilter struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html#cfn-autoscalingplans-scalingplan-tagfilter-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-tagfilter.html#cfn-autoscalingplans-scalingplan-tagfilter-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_TagFilter) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.TagFilter"
+}
diff --git a/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go
new file mode 100644
index 0000000000..2c8a52450b
--- /dev/null
+++ b/goformation/cloudformation/autoscalingplans/aws-autoscalingplans-scalingplan_targettrackingconfiguration.go
@@ -0,0 +1,67 @@
+package autoscalingplans
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScalingPlan_TargetTrackingConfiguration AWS CloudFormation Resource (AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html
+type ScalingPlan_TargetTrackingConfiguration struct {
+
+ // CustomizedScalingMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-customizedscalingmetricspecification
+ CustomizedScalingMetricSpecification *ScalingPlan_CustomizedScalingMetricSpecification `json:"CustomizedScalingMetricSpecification,omitempty"`
+
+ // DisableScaleIn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-disablescalein
+ DisableScaleIn *types.Value `json:"DisableScaleIn,omitempty"`
+
+ // EstimatedInstanceWarmup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-estimatedinstancewarmup
+ EstimatedInstanceWarmup *types.Value `json:"EstimatedInstanceWarmup,omitempty"`
+
+ // PredefinedScalingMetricSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-predefinedscalingmetricspecification
+ PredefinedScalingMetricSpecification *ScalingPlan_PredefinedScalingMetricSpecification `json:"PredefinedScalingMetricSpecification,omitempty"`
+
+ // ScaleInCooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-scaleincooldown
+ ScaleInCooldown *types.Value `json:"ScaleInCooldown,omitempty"`
+
+ // ScaleOutCooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-scaleoutcooldown
+ ScaleOutCooldown *types.Value `json:"ScaleOutCooldown,omitempty"`
+
+ // TargetValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-targettrackingconfiguration.html#cfn-autoscalingplans-scalingplan-targettrackingconfiguration-targetvalue
+ TargetValue *types.Value `json:"TargetValue"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScalingPlan_TargetTrackingConfiguration) AWSCloudFormationType() string {
+ return "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupplan.go b/goformation/cloudformation/backup/aws-backup-backupplan.go
new file mode 100644
index 0000000000..d3dccae22c
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupplan.go
@@ -0,0 +1,113 @@
+package backup
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupPlan AWS CloudFormation Resource (AWS::Backup::BackupPlan)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html
+type BackupPlan struct {
+
+ // BackupPlan AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html#cfn-backup-backupplan-backupplan
+ BackupPlan *BackupPlan_BackupPlanResourceType `json:"BackupPlan,omitempty"`
+
+ // BackupPlanTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupplan.html#cfn-backup-backupplan-backupplantags
+ BackupPlanTags map[string]*types.Value `json:"BackupPlanTags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupPlan) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupPlan"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r BackupPlan) MarshalJSON() ([]byte, error) {
+ type Properties BackupPlan
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *BackupPlan) UnmarshalJSON(b []byte) error {
+ type Properties BackupPlan
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = BackupPlan(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupplan_advancedbackupsettingresourcetype.go b/goformation/cloudformation/backup/aws-backup-backupplan_advancedbackupsettingresourcetype.go
new file mode 100644
index 0000000000..c6b1ad4370
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupplan_advancedbackupsettingresourcetype.go
@@ -0,0 +1,42 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupPlan_AdvancedBackupSettingResourceType AWS CloudFormation Resource (AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html
+type BackupPlan_AdvancedBackupSettingResourceType struct {
+
+ // BackupOptions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html#cfn-backup-backupplan-advancedbackupsettingresourcetype-backupoptions
+ BackupOptions interface{} `json:"BackupOptions,omitempty"`
+
+ // ResourceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-advancedbackupsettingresourcetype.html#cfn-backup-backupplan-advancedbackupsettingresourcetype-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupPlan_AdvancedBackupSettingResourceType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupplan_backupplanresourcetype.go b/goformation/cloudformation/backup/aws-backup-backupplan_backupplanresourcetype.go
new file mode 100644
index 0000000000..9407b39cf6
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupplan_backupplanresourcetype.go
@@ -0,0 +1,47 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupPlan_BackupPlanResourceType AWS CloudFormation Resource (AWS::Backup::BackupPlan.BackupPlanResourceType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html
+type BackupPlan_BackupPlanResourceType struct {
+
+ // AdvancedBackupSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html#cfn-backup-backupplan-backupplanresourcetype-advancedbackupsettings
+ AdvancedBackupSettings []BackupPlan_AdvancedBackupSettingResourceType `json:"AdvancedBackupSettings,omitempty"`
+
+ // BackupPlanName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html#cfn-backup-backupplan-backupplanresourcetype-backupplanname
+ BackupPlanName *types.Value `json:"BackupPlanName,omitempty"`
+
+ // BackupPlanRule AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupplanresourcetype.html#cfn-backup-backupplan-backupplanresourcetype-backupplanrule
+ BackupPlanRule []BackupPlan_BackupRuleResourceType `json:"BackupPlanRule,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupPlan_BackupPlanResourceType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupPlan.BackupPlanResourceType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupplan_backupruleresourcetype.go b/goformation/cloudformation/backup/aws-backup-backupplan_backupruleresourcetype.go
new file mode 100644
index 0000000000..8f297e30eb
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupplan_backupruleresourcetype.go
@@ -0,0 +1,77 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupPlan_BackupRuleResourceType AWS CloudFormation Resource (AWS::Backup::BackupPlan.BackupRuleResourceType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html
+type BackupPlan_BackupRuleResourceType struct {
+
+ // CompletionWindowMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-completionwindowminutes
+ CompletionWindowMinutes *types.Value `json:"CompletionWindowMinutes,omitempty"`
+
+ // CopyActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-copyactions
+ CopyActions []BackupPlan_CopyActionResourceType `json:"CopyActions,omitempty"`
+
+ // EnableContinuousBackup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-enablecontinuousbackup
+ EnableContinuousBackup *types.Value `json:"EnableContinuousBackup,omitempty"`
+
+ // Lifecycle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-lifecycle
+ Lifecycle *BackupPlan_LifecycleResourceType `json:"Lifecycle,omitempty"`
+
+ // RecoveryPointTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-recoverypointtags
+ RecoveryPointTags map[string]*types.Value `json:"RecoveryPointTags,omitempty"`
+
+ // RuleName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-rulename
+ RuleName *types.Value `json:"RuleName,omitempty"`
+
+ // ScheduleExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-scheduleexpression
+ ScheduleExpression *types.Value `json:"ScheduleExpression,omitempty"`
+
+ // StartWindowMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-startwindowminutes
+ StartWindowMinutes *types.Value `json:"StartWindowMinutes,omitempty"`
+
+ // TargetBackupVault AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-targetbackupvault
+ TargetBackupVault *types.Value `json:"TargetBackupVault,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupPlan_BackupRuleResourceType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupPlan.BackupRuleResourceType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupplan_copyactionresourcetype.go b/goformation/cloudformation/backup/aws-backup-backupplan_copyactionresourcetype.go
new file mode 100644
index 0000000000..3cc90623e7
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupplan_copyactionresourcetype.go
@@ -0,0 +1,42 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupPlan_CopyActionResourceType AWS CloudFormation Resource (AWS::Backup::BackupPlan.CopyActionResourceType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-copyactionresourcetype.html
+type BackupPlan_CopyActionResourceType struct {
+
+ // DestinationBackupVaultArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-copyactionresourcetype.html#cfn-backup-backupplan-copyactionresourcetype-destinationbackupvaultarn
+ DestinationBackupVaultArn *types.Value `json:"DestinationBackupVaultArn,omitempty"`
+
+ // Lifecycle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-copyactionresourcetype.html#cfn-backup-backupplan-copyactionresourcetype-lifecycle
+ Lifecycle *BackupPlan_LifecycleResourceType `json:"Lifecycle,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupPlan_CopyActionResourceType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupPlan.CopyActionResourceType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupplan_lifecycleresourcetype.go b/goformation/cloudformation/backup/aws-backup-backupplan_lifecycleresourcetype.go
new file mode 100644
index 0000000000..eb7e372226
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupplan_lifecycleresourcetype.go
@@ -0,0 +1,42 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupPlan_LifecycleResourceType AWS CloudFormation Resource (AWS::Backup::BackupPlan.LifecycleResourceType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html
+type BackupPlan_LifecycleResourceType struct {
+
+ // DeleteAfterDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html#cfn-backup-backupplan-lifecycleresourcetype-deleteafterdays
+ DeleteAfterDays *types.Value `json:"DeleteAfterDays,omitempty"`
+
+ // MoveToColdStorageAfterDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-lifecycleresourcetype.html#cfn-backup-backupplan-lifecycleresourcetype-movetocoldstorageafterdays
+ MoveToColdStorageAfterDays *types.Value `json:"MoveToColdStorageAfterDays,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupPlan_LifecycleResourceType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupPlan.LifecycleResourceType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupselection.go b/goformation/cloudformation/backup/aws-backup-backupselection.go
new file mode 100644
index 0000000000..0aba08c9eb
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupselection.go
@@ -0,0 +1,113 @@
+package backup
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupSelection AWS CloudFormation Resource (AWS::Backup::BackupSelection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html
+type BackupSelection struct {
+
+ // BackupPlanId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html#cfn-backup-backupselection-backupplanid
+ BackupPlanId *types.Value `json:"BackupPlanId,omitempty"`
+
+ // BackupSelection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupselection.html#cfn-backup-backupselection-backupselection
+ BackupSelection *BackupSelection_BackupSelectionResourceType `json:"BackupSelection,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupSelection) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupSelection"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r BackupSelection) MarshalJSON() ([]byte, error) {
+ type Properties BackupSelection
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *BackupSelection) UnmarshalJSON(b []byte) error {
+ type Properties BackupSelection
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = BackupSelection(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupselection_backupselectionresourcetype.go b/goformation/cloudformation/backup/aws-backup-backupselection_backupselectionresourcetype.go
new file mode 100644
index 0000000000..46a6b014d9
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupselection_backupselectionresourcetype.go
@@ -0,0 +1,62 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupSelection_BackupSelectionResourceType AWS CloudFormation Resource (AWS::Backup::BackupSelection.BackupSelectionResourceType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html
+type BackupSelection_BackupSelectionResourceType struct {
+
+ // Conditions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-conditions
+ Conditions interface{} `json:"Conditions,omitempty"`
+
+ // IamRoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-iamrolearn
+ IamRoleArn *types.Value `json:"IamRoleArn,omitempty"`
+
+ // ListOfTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-listoftags
+ ListOfTags []BackupSelection_ConditionResourceType `json:"ListOfTags,omitempty"`
+
+ // NotResources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-notresources
+ NotResources *types.Value `json:"NotResources,omitempty"`
+
+ // Resources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-resources
+ Resources *types.Value `json:"Resources,omitempty"`
+
+ // SelectionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-backupselectionresourcetype.html#cfn-backup-backupselection-backupselectionresourcetype-selectionname
+ SelectionName *types.Value `json:"SelectionName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupSelection_BackupSelectionResourceType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupSelection.BackupSelectionResourceType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupselection_conditionresourcetype.go b/goformation/cloudformation/backup/aws-backup-backupselection_conditionresourcetype.go
new file mode 100644
index 0000000000..009ead30d4
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupselection_conditionresourcetype.go
@@ -0,0 +1,47 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupSelection_ConditionResourceType AWS CloudFormation Resource (AWS::Backup::BackupSelection.ConditionResourceType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html
+type BackupSelection_ConditionResourceType struct {
+
+ // ConditionKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html#cfn-backup-backupselection-conditionresourcetype-conditionkey
+ ConditionKey *types.Value `json:"ConditionKey,omitempty"`
+
+ // ConditionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html#cfn-backup-backupselection-conditionresourcetype-conditiontype
+ ConditionType *types.Value `json:"ConditionType,omitempty"`
+
+ // ConditionValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupselection-conditionresourcetype.html#cfn-backup-backupselection-conditionresourcetype-conditionvalue
+ ConditionValue *types.Value `json:"ConditionValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupSelection_ConditionResourceType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupSelection.ConditionResourceType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupvault.go b/goformation/cloudformation/backup/aws-backup-backupvault.go
new file mode 100644
index 0000000000..3824dd4837
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupvault.go
@@ -0,0 +1,133 @@
+package backup
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupVault AWS CloudFormation Resource (AWS::Backup::BackupVault)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html
+type BackupVault struct {
+
+ // AccessPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-accesspolicy
+ AccessPolicy interface{} `json:"AccessPolicy,omitempty"`
+
+ // BackupVaultName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaultname
+ BackupVaultName *types.Value `json:"BackupVaultName,omitempty"`
+
+ // BackupVaultTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-backupvaulttags
+ BackupVaultTags map[string]*types.Value `json:"BackupVaultTags,omitempty"`
+
+ // EncryptionKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-encryptionkeyarn
+ EncryptionKeyArn *types.Value `json:"EncryptionKeyArn,omitempty"`
+
+ // LockConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-lockconfiguration
+ LockConfiguration *BackupVault_LockConfigurationType `json:"LockConfiguration,omitempty"`
+
+ // Notifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-backupvault.html#cfn-backup-backupvault-notifications
+ Notifications *BackupVault_NotificationObjectType `json:"Notifications,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupVault) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupVault"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r BackupVault) MarshalJSON() ([]byte, error) {
+ type Properties BackupVault
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *BackupVault) UnmarshalJSON(b []byte) error {
+ type Properties BackupVault
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = BackupVault(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupvault_lockconfigurationtype.go b/goformation/cloudformation/backup/aws-backup-backupvault_lockconfigurationtype.go
new file mode 100644
index 0000000000..855a8b4979
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupvault_lockconfigurationtype.go
@@ -0,0 +1,47 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupVault_LockConfigurationType AWS CloudFormation Resource (AWS::Backup::BackupVault.LockConfigurationType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html
+type BackupVault_LockConfigurationType struct {
+
+ // ChangeableForDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html#cfn-backup-backupvault-lockconfigurationtype-changeablefordays
+ ChangeableForDays *types.Value `json:"ChangeableForDays,omitempty"`
+
+ // MaxRetentionDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html#cfn-backup-backupvault-lockconfigurationtype-maxretentiondays
+ MaxRetentionDays *types.Value `json:"MaxRetentionDays,omitempty"`
+
+ // MinRetentionDays AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-lockconfigurationtype.html#cfn-backup-backupvault-lockconfigurationtype-minretentiondays
+ MinRetentionDays *types.Value `json:"MinRetentionDays"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupVault_LockConfigurationType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupVault.LockConfigurationType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-backupvault_notificationobjecttype.go b/goformation/cloudformation/backup/aws-backup-backupvault_notificationobjecttype.go
new file mode 100644
index 0000000000..6e203d485a
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-backupvault_notificationobjecttype.go
@@ -0,0 +1,42 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BackupVault_NotificationObjectType AWS CloudFormation Resource (AWS::Backup::BackupVault.NotificationObjectType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html
+type BackupVault_NotificationObjectType struct {
+
+ // BackupVaultEvents AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html#cfn-backup-backupvault-notificationobjecttype-backupvaultevents
+ BackupVaultEvents *types.Value `json:"BackupVaultEvents,omitempty"`
+
+ // SNSTopicArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html#cfn-backup-backupvault-notificationobjecttype-snstopicarn
+ SNSTopicArn *types.Value `json:"SNSTopicArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BackupVault_NotificationObjectType) AWSCloudFormationType() string {
+ return "AWS::Backup::BackupVault.NotificationObjectType"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-framework.go b/goformation/cloudformation/backup/aws-backup-framework.go
new file mode 100644
index 0000000000..f2f2b56194
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-framework.go
@@ -0,0 +1,124 @@
+package backup
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Framework AWS CloudFormation Resource (AWS::Backup::Framework)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html
+type Framework struct {
+
+ // FrameworkControls AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworkcontrols
+ FrameworkControls []Framework_FrameworkControl `json:"FrameworkControls,omitempty"`
+
+ // FrameworkDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworkdescription
+ FrameworkDescription *types.Value `json:"FrameworkDescription,omitempty"`
+
+ // FrameworkName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworkname
+ FrameworkName *types.Value `json:"FrameworkName,omitempty"`
+
+ // FrameworkTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-framework.html#cfn-backup-framework-frameworktags
+ FrameworkTags []cloudformation.Tag `json:"FrameworkTags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Framework) AWSCloudFormationType() string {
+ return "AWS::Backup::Framework"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Framework) MarshalJSON() ([]byte, error) {
+ type Properties Framework
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Framework) UnmarshalJSON(b []byte) error {
+ type Properties Framework
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Framework(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/backup/aws-backup-framework_controlinputparameter.go b/goformation/cloudformation/backup/aws-backup-framework_controlinputparameter.go
new file mode 100644
index 0000000000..83e8618ef2
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-framework_controlinputparameter.go
@@ -0,0 +1,42 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Framework_ControlInputParameter AWS CloudFormation Resource (AWS::Backup::Framework.ControlInputParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html
+type Framework_ControlInputParameter struct {
+
+ // ParameterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html#cfn-backup-framework-controlinputparameter-parametername
+ ParameterName *types.Value `json:"ParameterName,omitempty"`
+
+ // ParameterValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-controlinputparameter.html#cfn-backup-framework-controlinputparameter-parametervalue
+ ParameterValue *types.Value `json:"ParameterValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Framework_ControlInputParameter) AWSCloudFormationType() string {
+ return "AWS::Backup::Framework.ControlInputParameter"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-framework_frameworkcontrol.go b/goformation/cloudformation/backup/aws-backup-framework_frameworkcontrol.go
new file mode 100644
index 0000000000..57d27772ad
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-framework_frameworkcontrol.go
@@ -0,0 +1,47 @@
+package backup
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Framework_FrameworkControl AWS CloudFormation Resource (AWS::Backup::Framework.FrameworkControl)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html
+type Framework_FrameworkControl struct {
+
+ // ControlInputParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html#cfn-backup-framework-frameworkcontrol-controlinputparameters
+ ControlInputParameters []Framework_ControlInputParameter `json:"ControlInputParameters,omitempty"`
+
+ // ControlName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html#cfn-backup-framework-frameworkcontrol-controlname
+ ControlName *types.Value `json:"ControlName,omitempty"`
+
+ // ControlScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-framework-frameworkcontrol.html#cfn-backup-framework-frameworkcontrol-controlscope
+ ControlScope interface{} `json:"ControlScope,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Framework_FrameworkControl) AWSCloudFormationType() string {
+ return "AWS::Backup::Framework.FrameworkControl"
+}
diff --git a/goformation/cloudformation/backup/aws-backup-reportplan.go b/goformation/cloudformation/backup/aws-backup-reportplan.go
new file mode 100644
index 0000000000..0f9ef8b10d
--- /dev/null
+++ b/goformation/cloudformation/backup/aws-backup-reportplan.go
@@ -0,0 +1,129 @@
+package backup
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReportPlan AWS CloudFormation Resource (AWS::Backup::ReportPlan)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html
+type ReportPlan struct {
+
+ // ReportDeliveryChannel AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportdeliverychannel
+ ReportDeliveryChannel interface{} `json:"ReportDeliveryChannel,omitempty"`
+
+ // ReportPlanDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplandescription
+ ReportPlanDescription *types.Value `json:"ReportPlanDescription,omitempty"`
+
+ // ReportPlanName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplanname
+ ReportPlanName *types.Value `json:"ReportPlanName,omitempty"`
+
+ // ReportPlanTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportplantags
+ ReportPlanTags []cloudformation.Tag `json:"ReportPlanTags,omitempty"`
+
+ // ReportSetting AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-backup-reportplan.html#cfn-backup-reportplan-reportsetting
+ ReportSetting interface{} `json:"ReportSetting,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReportPlan) AWSCloudFormationType() string {
+ return "AWS::Backup::ReportPlan"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReportPlan) MarshalJSON() ([]byte, error) {
+ type Properties ReportPlan
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReportPlan) UnmarshalJSON(b []byte) error {
+ type Properties ReportPlan
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReportPlan(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/batch/aws-batch-computeenvironment.go b/goformation/cloudformation/batch/aws-batch-computeenvironment.go
new file mode 100644
index 0000000000..d6f8f3da13
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-computeenvironment.go
@@ -0,0 +1,138 @@
+package batch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComputeEnvironment AWS CloudFormation Resource (AWS::Batch::ComputeEnvironment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html
+type ComputeEnvironment struct {
+
+ // ComputeEnvironmentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-computeenvironmentname
+ ComputeEnvironmentName *types.Value `json:"ComputeEnvironmentName,omitempty"`
+
+ // ComputeResources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-computeresources
+ ComputeResources *ComputeEnvironment_ComputeResources `json:"ComputeResources,omitempty"`
+
+ // ServiceRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-servicerole
+ ServiceRole *types.Value `json:"ServiceRole,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // UnmanagedvCpus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-computeenvironment.html#cfn-batch-computeenvironment-unmanagedvcpus
+ UnmanagedvCpus *types.Value `json:"UnmanagedvCpus,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComputeEnvironment) AWSCloudFormationType() string {
+ return "AWS::Batch::ComputeEnvironment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ComputeEnvironment) MarshalJSON() ([]byte, error) {
+ type Properties ComputeEnvironment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ComputeEnvironment) UnmarshalJSON(b []byte) error {
+ type Properties ComputeEnvironment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ComputeEnvironment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/batch/aws-batch-computeenvironment_computeresources.go b/goformation/cloudformation/batch/aws-batch-computeenvironment_computeresources.go
new file mode 100644
index 0000000000..d6e5065882
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-computeenvironment_computeresources.go
@@ -0,0 +1,117 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComputeEnvironment_ComputeResources AWS CloudFormation Resource (AWS::Batch::ComputeEnvironment.ComputeResources)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html
+type ComputeEnvironment_ComputeResources struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // BidPercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-bidpercentage
+ BidPercentage *types.Value `json:"BidPercentage,omitempty"`
+
+ // DesiredvCpus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-desiredvcpus
+ DesiredvCpus *types.Value `json:"DesiredvCpus,omitempty"`
+
+ // Ec2Configuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2configuration
+ Ec2Configuration []ComputeEnvironment_Ec2ConfigurationObject `json:"Ec2Configuration,omitempty"`
+
+ // Ec2KeyPair AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-ec2keypair
+ Ec2KeyPair *types.Value `json:"Ec2KeyPair,omitempty"`
+
+ // ImageId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-imageid
+ ImageId *types.Value `json:"ImageId,omitempty"`
+
+ // InstanceRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancerole
+ InstanceRole *types.Value `json:"InstanceRole,omitempty"`
+
+ // InstanceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-instancetypes
+ InstanceTypes *types.Value `json:"InstanceTypes,omitempty"`
+
+ // LaunchTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-launchtemplate
+ LaunchTemplate *ComputeEnvironment_LaunchTemplateSpecification `json:"LaunchTemplate,omitempty"`
+
+ // MaxvCpus AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-maxvcpus
+ MaxvCpus *types.Value `json:"MaxvCpus"`
+
+ // MinvCpus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-minvcpus
+ MinvCpus *types.Value `json:"MinvCpus,omitempty"`
+
+ // PlacementGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-placementgroup
+ PlacementGroup *types.Value `json:"PlacementGroup,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SpotIamFleetRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-spotiamfleetrole
+ SpotIamFleetRole *types.Value `json:"SpotIamFleetRole,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-computeresources.html#cfn-batch-computeenvironment-computeresources-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComputeEnvironment_ComputeResources) AWSCloudFormationType() string {
+ return "AWS::Batch::ComputeEnvironment.ComputeResources"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-computeenvironment_ec2configurationobject.go b/goformation/cloudformation/batch/aws-batch-computeenvironment_ec2configurationobject.go
new file mode 100644
index 0000000000..01b9845de2
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-computeenvironment_ec2configurationobject.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComputeEnvironment_Ec2ConfigurationObject AWS CloudFormation Resource (AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html
+type ComputeEnvironment_Ec2ConfigurationObject struct {
+
+ // ImageIdOverride AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html#cfn-batch-computeenvironment-ec2configurationobject-imageidoverride
+ ImageIdOverride *types.Value `json:"ImageIdOverride,omitempty"`
+
+ // ImageType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html#cfn-batch-computeenvironment-ec2configurationobject-imagetype
+ ImageType *types.Value `json:"ImageType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComputeEnvironment_Ec2ConfigurationObject) AWSCloudFormationType() string {
+ return "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-computeenvironment_launchtemplatespecification.go b/goformation/cloudformation/batch/aws-batch-computeenvironment_launchtemplatespecification.go
new file mode 100644
index 0000000000..6b2a604fa3
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-computeenvironment_launchtemplatespecification.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComputeEnvironment_LaunchTemplateSpecification AWS CloudFormation Resource (AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html
+type ComputeEnvironment_LaunchTemplateSpecification struct {
+
+ // LaunchTemplateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html#cfn-batch-computeenvironment-launchtemplatespecification-launchtemplateid
+ LaunchTemplateId *types.Value `json:"LaunchTemplateId,omitempty"`
+
+ // LaunchTemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html#cfn-batch-computeenvironment-launchtemplatespecification-launchtemplatename
+ LaunchTemplateName *types.Value `json:"LaunchTemplateName,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-launchtemplatespecification.html#cfn-batch-computeenvironment-launchtemplatespecification-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComputeEnvironment_LaunchTemplateSpecification) AWSCloudFormationType() string {
+ return "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition.go b/goformation/cloudformation/batch/aws-batch-jobdefinition.go
new file mode 100644
index 0000000000..0f03620333
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition.go
@@ -0,0 +1,158 @@
+package batch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition AWS CloudFormation Resource (AWS::Batch::JobDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html
+type JobDefinition struct {
+
+ // ContainerProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-containerproperties
+ ContainerProperties *JobDefinition_ContainerProperties `json:"ContainerProperties,omitempty"`
+
+ // JobDefinitionName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-jobdefinitionname
+ JobDefinitionName *types.Value `json:"JobDefinitionName,omitempty"`
+
+ // NodeProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-nodeproperties
+ NodeProperties *JobDefinition_NodeProperties `json:"NodeProperties,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // PlatformCapabilities AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-platformcapabilities
+ PlatformCapabilities *types.Value `json:"PlatformCapabilities,omitempty"`
+
+ // PropagateTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-propagatetags
+ PropagateTags *types.Value `json:"PropagateTags,omitempty"`
+
+ // RetryStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-retrystrategy
+ RetryStrategy *JobDefinition_RetryStrategy `json:"RetryStrategy,omitempty"`
+
+ // SchedulingPriority AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-schedulingpriority
+ SchedulingPriority *types.Value `json:"SchedulingPriority,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-timeout
+ Timeout *JobDefinition_Timeout `json:"Timeout,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobdefinition.html#cfn-batch-jobdefinition-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r JobDefinition) MarshalJSON() ([]byte, error) {
+ type Properties JobDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *JobDefinition) UnmarshalJSON(b []byte) error {
+ type Properties JobDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = JobDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_authorizationconfig.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_authorizationconfig.go
new file mode 100644
index 0000000000..357c8d18ac
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_authorizationconfig.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_AuthorizationConfig AWS CloudFormation Resource (AWS::Batch::JobDefinition.AuthorizationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html
+type JobDefinition_AuthorizationConfig struct {
+
+ // AccessPointId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html#cfn-batch-jobdefinition-authorizationconfig-accesspointid
+ AccessPointId *types.Value `json:"AccessPointId,omitempty"`
+
+ // Iam AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-authorizationconfig.html#cfn-batch-jobdefinition-authorizationconfig-iam
+ Iam *types.Value `json:"Iam,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_AuthorizationConfig) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.AuthorizationConfig"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_containerproperties.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_containerproperties.go
new file mode 100644
index 0000000000..14338f6921
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_containerproperties.go
@@ -0,0 +1,132 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_ContainerProperties AWS CloudFormation Resource (AWS::Batch::JobDefinition.ContainerProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html
+type JobDefinition_ContainerProperties struct {
+
+ // Command AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-command
+ Command *types.Value `json:"Command,omitempty"`
+
+ // Environment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-environment
+ Environment []JobDefinition_Environment `json:"Environment,omitempty"`
+
+ // ExecutionRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-executionrolearn
+ ExecutionRoleArn *types.Value `json:"ExecutionRoleArn,omitempty"`
+
+ // FargatePlatformConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-fargateplatformconfiguration
+ FargatePlatformConfiguration *JobDefinition_FargatePlatformConfiguration `json:"FargatePlatformConfiguration,omitempty"`
+
+ // Image AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-image
+ Image *types.Value `json:"Image,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // JobRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-jobrolearn
+ JobRoleArn *types.Value `json:"JobRoleArn,omitempty"`
+
+ // LinuxParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-linuxparameters
+ LinuxParameters *JobDefinition_LinuxParameters `json:"LinuxParameters,omitempty"`
+
+ // LogConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-logconfiguration
+ LogConfiguration *JobDefinition_LogConfiguration `json:"LogConfiguration,omitempty"`
+
+ // Memory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-memory
+ Memory *types.Value `json:"Memory,omitempty"`
+
+ // MountPoints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-mountpoints
+ MountPoints []JobDefinition_MountPoints `json:"MountPoints,omitempty"`
+
+ // NetworkConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-networkconfiguration
+ NetworkConfiguration *JobDefinition_NetworkConfiguration `json:"NetworkConfiguration,omitempty"`
+
+ // Privileged AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-privileged
+ Privileged *types.Value `json:"Privileged,omitempty"`
+
+ // ReadonlyRootFilesystem AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-readonlyrootfilesystem
+ ReadonlyRootFilesystem *types.Value `json:"ReadonlyRootFilesystem,omitempty"`
+
+ // ResourceRequirements AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-resourcerequirements
+ ResourceRequirements []JobDefinition_ResourceRequirement `json:"ResourceRequirements,omitempty"`
+
+ // Secrets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-secrets
+ Secrets []JobDefinition_Secret `json:"Secrets,omitempty"`
+
+ // Ulimits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-ulimits
+ Ulimits []JobDefinition_Ulimit `json:"Ulimits,omitempty"`
+
+ // User AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-user
+ User *types.Value `json:"User,omitempty"`
+
+ // Vcpus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-vcpus
+ Vcpus *types.Value `json:"Vcpus,omitempty"`
+
+ // Volumes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties.html#cfn-batch-jobdefinition-containerproperties-volumes
+ Volumes []JobDefinition_Volumes `json:"Volumes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_ContainerProperties) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.ContainerProperties"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_device.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_device.go
new file mode 100644
index 0000000000..e73e4ff7c6
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_device.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_Device AWS CloudFormation Resource (AWS::Batch::JobDefinition.Device)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-device.html
+type JobDefinition_Device struct {
+
+ // ContainerPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-device.html#cfn-batch-jobdefinition-device-containerpath
+ ContainerPath *types.Value `json:"ContainerPath,omitempty"`
+
+ // HostPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-device.html#cfn-batch-jobdefinition-device-hostpath
+ HostPath *types.Value `json:"HostPath,omitempty"`
+
+ // Permissions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-device.html#cfn-batch-jobdefinition-device-permissions
+ Permissions *types.Value `json:"Permissions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_Device) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.Device"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_efsvolumeconfiguration.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_efsvolumeconfiguration.go
new file mode 100644
index 0000000000..cdbfd21bc4
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_efsvolumeconfiguration.go
@@ -0,0 +1,57 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_EfsVolumeConfiguration AWS CloudFormation Resource (AWS::Batch::JobDefinition.EfsVolumeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html
+type JobDefinition_EfsVolumeConfiguration struct {
+
+ // AuthorizationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-authorizationconfig
+ AuthorizationConfig *JobDefinition_AuthorizationConfig `json:"AuthorizationConfig,omitempty"`
+
+ // FileSystemId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-filesystemid
+ FileSystemId *types.Value `json:"FileSystemId,omitempty"`
+
+ // RootDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-rootdirectory
+ RootDirectory *types.Value `json:"RootDirectory,omitempty"`
+
+ // TransitEncryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryption
+ TransitEncryption *types.Value `json:"TransitEncryption,omitempty"`
+
+ // TransitEncryptionPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-efsvolumeconfiguration.html#cfn-batch-jobdefinition-efsvolumeconfiguration-transitencryptionport
+ TransitEncryptionPort *types.Value `json:"TransitEncryptionPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_EfsVolumeConfiguration) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.EfsVolumeConfiguration"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_environment.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_environment.go
new file mode 100644
index 0000000000..d278843c4f
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_environment.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_Environment AWS CloudFormation Resource (AWS::Batch::JobDefinition.Environment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html
+type JobDefinition_Environment struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html#cfn-batch-jobdefinition-environment-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-environment.html#cfn-batch-jobdefinition-environment-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_Environment) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.Environment"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_evaluateonexit.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_evaluateonexit.go
new file mode 100644
index 0000000000..bf93aaf3e0
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_evaluateonexit.go
@@ -0,0 +1,52 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_EvaluateOnExit AWS CloudFormation Resource (AWS::Batch::JobDefinition.EvaluateOnExit)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html
+type JobDefinition_EvaluateOnExit struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html#cfn-batch-jobdefinition-evaluateonexit-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // OnExitCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html#cfn-batch-jobdefinition-evaluateonexit-onexitcode
+ OnExitCode *types.Value `json:"OnExitCode,omitempty"`
+
+ // OnReason AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html#cfn-batch-jobdefinition-evaluateonexit-onreason
+ OnReason *types.Value `json:"OnReason,omitempty"`
+
+ // OnStatusReason AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-evaluateonexit.html#cfn-batch-jobdefinition-evaluateonexit-onstatusreason
+ OnStatusReason *types.Value `json:"OnStatusReason,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_EvaluateOnExit) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.EvaluateOnExit"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_fargateplatformconfiguration.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_fargateplatformconfiguration.go
new file mode 100644
index 0000000000..87ed3ffcbc
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_fargateplatformconfiguration.go
@@ -0,0 +1,37 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_FargatePlatformConfiguration AWS CloudFormation Resource (AWS::Batch::JobDefinition.FargatePlatformConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-fargateplatformconfiguration.html
+type JobDefinition_FargatePlatformConfiguration struct {
+
+ // PlatformVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-fargateplatformconfiguration.html#cfn-batch-jobdefinition-containerproperties-fargateplatformconfiguration-platformversion
+ PlatformVersion *types.Value `json:"PlatformVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_FargatePlatformConfiguration) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.FargatePlatformConfiguration"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_linuxparameters.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_linuxparameters.go
new file mode 100644
index 0000000000..1ebdccc63b
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_linuxparameters.go
@@ -0,0 +1,62 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_LinuxParameters AWS CloudFormation Resource (AWS::Batch::JobDefinition.LinuxParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html
+type JobDefinition_LinuxParameters struct {
+
+ // Devices AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html#cfn-batch-jobdefinition-containerproperties-linuxparameters-devices
+ Devices []JobDefinition_Device `json:"Devices,omitempty"`
+
+ // InitProcessEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html#cfn-batch-jobdefinition-containerproperties-linuxparameters-initprocessenabled
+ InitProcessEnabled *types.Value `json:"InitProcessEnabled,omitempty"`
+
+ // MaxSwap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html#cfn-batch-jobdefinition-containerproperties-linuxparameters-maxswap
+ MaxSwap *types.Value `json:"MaxSwap,omitempty"`
+
+ // SharedMemorySize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html#cfn-batch-jobdefinition-containerproperties-linuxparameters-sharedmemorysize
+ SharedMemorySize *types.Value `json:"SharedMemorySize,omitempty"`
+
+ // Swappiness AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html#cfn-batch-jobdefinition-containerproperties-linuxparameters-swappiness
+ Swappiness *types.Value `json:"Swappiness,omitempty"`
+
+ // Tmpfs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-linuxparameters.html#cfn-batch-jobdefinition-containerproperties-linuxparameters-tmpfs
+ Tmpfs []JobDefinition_Tmpfs `json:"Tmpfs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_LinuxParameters) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.LinuxParameters"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_logconfiguration.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_logconfiguration.go
new file mode 100644
index 0000000000..fda01d5b73
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_logconfiguration.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_LogConfiguration AWS CloudFormation Resource (AWS::Batch::JobDefinition.LogConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html
+type JobDefinition_LogConfiguration struct {
+
+ // LogDriver AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html#cfn-batch-jobdefinition-containerproperties-logconfiguration-logdriver
+ LogDriver *types.Value `json:"LogDriver,omitempty"`
+
+ // Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html#cfn-batch-jobdefinition-containerproperties-logconfiguration-options
+ Options interface{} `json:"Options,omitempty"`
+
+ // SecretOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html#cfn-batch-jobdefinition-containerproperties-logconfiguration-secretoptions
+ SecretOptions []JobDefinition_Secret `json:"SecretOptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_LogConfiguration) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.LogConfiguration"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_mountpoints.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_mountpoints.go
new file mode 100644
index 0000000000..a116bf72c0
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_mountpoints.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_MountPoints AWS CloudFormation Resource (AWS::Batch::JobDefinition.MountPoints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html
+type JobDefinition_MountPoints struct {
+
+ // ContainerPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-containerpath
+ ContainerPath *types.Value `json:"ContainerPath,omitempty"`
+
+ // ReadOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-readonly
+ ReadOnly *types.Value `json:"ReadOnly,omitempty"`
+
+ // SourceVolume AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-mountpoints.html#cfn-batch-jobdefinition-mountpoints-sourcevolume
+ SourceVolume *types.Value `json:"SourceVolume,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_MountPoints) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.MountPoints"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_networkconfiguration.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_networkconfiguration.go
new file mode 100644
index 0000000000..8596c4af1f
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_networkconfiguration.go
@@ -0,0 +1,37 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_NetworkConfiguration AWS CloudFormation Resource (AWS::Batch::JobDefinition.NetworkConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-networkconfiguration.html
+type JobDefinition_NetworkConfiguration struct {
+
+ // AssignPublicIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-networkconfiguration.html#cfn-batch-jobdefinition-containerproperties-networkconfiguration-assignpublicip
+ AssignPublicIp *types.Value `json:"AssignPublicIp,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_NetworkConfiguration) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.NetworkConfiguration"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_nodeproperties.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_nodeproperties.go
new file mode 100644
index 0000000000..586f3565f7
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_nodeproperties.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_NodeProperties AWS CloudFormation Resource (AWS::Batch::JobDefinition.NodeProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-nodeproperties.html
+type JobDefinition_NodeProperties struct {
+
+ // MainNode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-nodeproperties.html#cfn-batch-jobdefinition-nodeproperties-mainnode
+ MainNode *types.Value `json:"MainNode"`
+
+ // NodeRangeProperties AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-nodeproperties.html#cfn-batch-jobdefinition-nodeproperties-noderangeproperties
+ NodeRangeProperties []JobDefinition_NodeRangeProperty `json:"NodeRangeProperties,omitempty"`
+
+ // NumNodes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-nodeproperties.html#cfn-batch-jobdefinition-nodeproperties-numnodes
+ NumNodes *types.Value `json:"NumNodes"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_NodeProperties) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.NodeProperties"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_noderangeproperty.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_noderangeproperty.go
new file mode 100644
index 0000000000..8140d3afad
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_noderangeproperty.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_NodeRangeProperty AWS CloudFormation Resource (AWS::Batch::JobDefinition.NodeRangeProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html
+type JobDefinition_NodeRangeProperty struct {
+
+ // Container AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-container
+ Container *JobDefinition_ContainerProperties `json:"Container,omitempty"`
+
+ // TargetNodes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-noderangeproperty.html#cfn-batch-jobdefinition-noderangeproperty-targetnodes
+ TargetNodes *types.Value `json:"TargetNodes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_NodeRangeProperty) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.NodeRangeProperty"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_resourcerequirement.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_resourcerequirement.go
new file mode 100644
index 0000000000..cd4635a4ac
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_resourcerequirement.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_ResourceRequirement AWS CloudFormation Resource (AWS::Batch::JobDefinition.ResourceRequirement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-resourcerequirement.html
+type JobDefinition_ResourceRequirement struct {
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-resourcerequirement.html#cfn-batch-jobdefinition-resourcerequirement-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-resourcerequirement.html#cfn-batch-jobdefinition-resourcerequirement-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_ResourceRequirement) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.ResourceRequirement"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_retrystrategy.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_retrystrategy.go
new file mode 100644
index 0000000000..58b172b6a6
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_retrystrategy.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_RetryStrategy AWS CloudFormation Resource (AWS::Batch::JobDefinition.RetryStrategy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html
+type JobDefinition_RetryStrategy struct {
+
+ // Attempts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html#cfn-batch-jobdefinition-retrystrategy-attempts
+ Attempts *types.Value `json:"Attempts,omitempty"`
+
+ // EvaluateOnExit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-retrystrategy.html#cfn-batch-jobdefinition-retrystrategy-evaluateonexit
+ EvaluateOnExit []JobDefinition_EvaluateOnExit `json:"EvaluateOnExit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_RetryStrategy) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.RetryStrategy"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_secret.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_secret.go
new file mode 100644
index 0000000000..4da8fc2d4b
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_secret.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_Secret AWS CloudFormation Resource (AWS::Batch::JobDefinition.Secret)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html
+type JobDefinition_Secret struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html#cfn-batch-jobdefinition-secret-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ValueFrom AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-secret.html#cfn-batch-jobdefinition-secret-valuefrom
+ ValueFrom *types.Value `json:"ValueFrom,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_Secret) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.Secret"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_timeout.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_timeout.go
new file mode 100644
index 0000000000..2d39443d3f
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_timeout.go
@@ -0,0 +1,37 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_Timeout AWS CloudFormation Resource (AWS::Batch::JobDefinition.Timeout)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html
+type JobDefinition_Timeout struct {
+
+ // AttemptDurationSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-timeout.html#cfn-batch-jobdefinition-timeout-attemptdurationseconds
+ AttemptDurationSeconds *types.Value `json:"AttemptDurationSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_Timeout) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.Timeout"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_tmpfs.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_tmpfs.go
new file mode 100644
index 0000000000..6b062a2cb7
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_tmpfs.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_Tmpfs AWS CloudFormation Resource (AWS::Batch::JobDefinition.Tmpfs)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html
+type JobDefinition_Tmpfs struct {
+
+ // ContainerPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-containerpath
+ ContainerPath *types.Value `json:"ContainerPath,omitempty"`
+
+ // MountOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-mountoptions
+ MountOptions *types.Value `json:"MountOptions,omitempty"`
+
+ // Size AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-tmpfs.html#cfn-batch-jobdefinition-tmpfs-size
+ Size *types.Value `json:"Size"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_Tmpfs) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.Tmpfs"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_ulimit.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_ulimit.go
new file mode 100644
index 0000000000..c99354d67d
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_ulimit.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_Ulimit AWS CloudFormation Resource (AWS::Batch::JobDefinition.Ulimit)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html
+type JobDefinition_Ulimit struct {
+
+ // HardLimit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-hardlimit
+ HardLimit *types.Value `json:"HardLimit"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SoftLimit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-ulimit.html#cfn-batch-jobdefinition-ulimit-softlimit
+ SoftLimit *types.Value `json:"SoftLimit"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_Ulimit) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.Ulimit"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_volumes.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_volumes.go
new file mode 100644
index 0000000000..88de1c5f74
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_volumes.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_Volumes AWS CloudFormation Resource (AWS::Batch::JobDefinition.Volumes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html
+type JobDefinition_Volumes struct {
+
+ // EfsVolumeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-efsvolumeconfiguration
+ EfsVolumeConfiguration *JobDefinition_EfsVolumeConfiguration `json:"EfsVolumeConfiguration,omitempty"`
+
+ // Host AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-host
+ Host *JobDefinition_VolumesHost `json:"Host,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumes.html#cfn-batch-jobdefinition-volumes-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_Volumes) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.Volumes"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobdefinition_volumeshost.go b/goformation/cloudformation/batch/aws-batch-jobdefinition_volumeshost.go
new file mode 100644
index 0000000000..8d9e27673e
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobdefinition_volumeshost.go
@@ -0,0 +1,37 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobDefinition_VolumesHost AWS CloudFormation Resource (AWS::Batch::JobDefinition.VolumesHost)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html
+type JobDefinition_VolumesHost struct {
+
+ // SourcePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-volumeshost.html#cfn-batch-jobdefinition-volumeshost-sourcepath
+ SourcePath *types.Value `json:"SourcePath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobDefinition_VolumesHost) AWSCloudFormationType() string {
+ return "AWS::Batch::JobDefinition.VolumesHost"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobqueue.go b/goformation/cloudformation/batch/aws-batch-jobqueue.go
new file mode 100644
index 0000000000..82d39e4761
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobqueue.go
@@ -0,0 +1,133 @@
+package batch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobQueue AWS CloudFormation Resource (AWS::Batch::JobQueue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html
+type JobQueue struct {
+
+ // ComputeEnvironmentOrder AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-computeenvironmentorder
+ ComputeEnvironmentOrder []JobQueue_ComputeEnvironmentOrder `json:"ComputeEnvironmentOrder,omitempty"`
+
+ // JobQueueName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-jobqueuename
+ JobQueueName *types.Value `json:"JobQueueName,omitempty"`
+
+ // Priority AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-priority
+ Priority *types.Value `json:"Priority"`
+
+ // SchedulingPolicyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-schedulingpolicyarn
+ SchedulingPolicyArn *types.Value `json:"SchedulingPolicyArn,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-jobqueue.html#cfn-batch-jobqueue-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobQueue) AWSCloudFormationType() string {
+ return "AWS::Batch::JobQueue"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r JobQueue) MarshalJSON() ([]byte, error) {
+ type Properties JobQueue
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *JobQueue) UnmarshalJSON(b []byte) error {
+ type Properties JobQueue
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = JobQueue(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/batch/aws-batch-jobqueue_computeenvironmentorder.go b/goformation/cloudformation/batch/aws-batch-jobqueue_computeenvironmentorder.go
new file mode 100644
index 0000000000..18b677352f
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-jobqueue_computeenvironmentorder.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobQueue_ComputeEnvironmentOrder AWS CloudFormation Resource (AWS::Batch::JobQueue.ComputeEnvironmentOrder)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html
+type JobQueue_ComputeEnvironmentOrder struct {
+
+ // ComputeEnvironment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html#cfn-batch-jobqueue-computeenvironmentorder-computeenvironment
+ ComputeEnvironment *types.Value `json:"ComputeEnvironment,omitempty"`
+
+ // Order AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobqueue-computeenvironmentorder.html#cfn-batch-jobqueue-computeenvironmentorder-order
+ Order *types.Value `json:"Order"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobQueue_ComputeEnvironmentOrder) AWSCloudFormationType() string {
+ return "AWS::Batch::JobQueue.ComputeEnvironmentOrder"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-schedulingpolicy.go b/goformation/cloudformation/batch/aws-batch-schedulingpolicy.go
new file mode 100644
index 0000000000..e00a3db548
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-schedulingpolicy.go
@@ -0,0 +1,118 @@
+package batch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SchedulingPolicy AWS CloudFormation Resource (AWS::Batch::SchedulingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html
+type SchedulingPolicy struct {
+
+ // FairsharePolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy
+ FairsharePolicy *SchedulingPolicy_FairsharePolicy `json:"FairsharePolicy,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-batch-schedulingpolicy.html#cfn-batch-schedulingpolicy-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SchedulingPolicy) AWSCloudFormationType() string {
+ return "AWS::Batch::SchedulingPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SchedulingPolicy) MarshalJSON() ([]byte, error) {
+ type Properties SchedulingPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SchedulingPolicy) UnmarshalJSON(b []byte) error {
+ type Properties SchedulingPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SchedulingPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/batch/aws-batch-schedulingpolicy_fairsharepolicy.go b/goformation/cloudformation/batch/aws-batch-schedulingpolicy_fairsharepolicy.go
new file mode 100644
index 0000000000..edb3559f1e
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-schedulingpolicy_fairsharepolicy.go
@@ -0,0 +1,47 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SchedulingPolicy_FairsharePolicy AWS CloudFormation Resource (AWS::Batch::SchedulingPolicy.FairsharePolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html
+type SchedulingPolicy_FairsharePolicy struct {
+
+ // ComputeReservation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy-computereservation
+ ComputeReservation *types.Value `json:"ComputeReservation,omitempty"`
+
+ // ShareDecaySeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy-sharedecayseconds
+ ShareDecaySeconds *types.Value `json:"ShareDecaySeconds,omitempty"`
+
+ // ShareDistribution AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-fairsharepolicy.html#cfn-batch-schedulingpolicy-fairsharepolicy-sharedistribution
+ ShareDistribution []SchedulingPolicy_ShareAttributes `json:"ShareDistribution,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SchedulingPolicy_FairsharePolicy) AWSCloudFormationType() string {
+ return "AWS::Batch::SchedulingPolicy.FairsharePolicy"
+}
diff --git a/goformation/cloudformation/batch/aws-batch-schedulingpolicy_shareattributes.go b/goformation/cloudformation/batch/aws-batch-schedulingpolicy_shareattributes.go
new file mode 100644
index 0000000000..222cd172be
--- /dev/null
+++ b/goformation/cloudformation/batch/aws-batch-schedulingpolicy_shareattributes.go
@@ -0,0 +1,42 @@
+package batch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SchedulingPolicy_ShareAttributes AWS CloudFormation Resource (AWS::Batch::SchedulingPolicy.ShareAttributes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html
+type SchedulingPolicy_ShareAttributes struct {
+
+ // ShareIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html#cfn-batch-schedulingpolicy-shareattributes-shareidentifier
+ ShareIdentifier *types.Value `json:"ShareIdentifier,omitempty"`
+
+ // WeightFactor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-schedulingpolicy-shareattributes.html#cfn-batch-schedulingpolicy-shareattributes-weightfactor
+ WeightFactor *types.Value `json:"WeightFactor,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SchedulingPolicy_ShareAttributes) AWSCloudFormationType() string {
+ return "AWS::Batch::SchedulingPolicy.ShareAttributes"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budget.go b/goformation/cloudformation/budgets/aws-budgets-budget.go
new file mode 100644
index 0000000000..e68022a299
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budget.go
@@ -0,0 +1,111 @@
+package budgets
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Budget AWS CloudFormation Resource (AWS::Budgets::Budget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html
+type Budget struct {
+
+ // Budget AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html#cfn-budgets-budget-budget
+ Budget *Budget_BudgetData `json:"Budget,omitempty"`
+
+ // NotificationsWithSubscribers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html#cfn-budgets-budget-notificationswithsubscribers
+ NotificationsWithSubscribers []Budget_NotificationWithSubscribers `json:"NotificationsWithSubscribers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Budget) AWSCloudFormationType() string {
+ return "AWS::Budgets::Budget"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Budget) MarshalJSON() ([]byte, error) {
+ type Properties Budget
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Budget) UnmarshalJSON(b []byte) error {
+ type Properties Budget
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Budget(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budget_budgetdata.go b/goformation/cloudformation/budgets/aws-budgets-budget_budgetdata.go
new file mode 100644
index 0000000000..ae419e0974
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budget_budgetdata.go
@@ -0,0 +1,72 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Budget_BudgetData AWS CloudFormation Resource (AWS::Budgets::Budget.BudgetData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html
+type Budget_BudgetData struct {
+
+ // BudgetLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-budgetlimit
+ BudgetLimit *Budget_Spend `json:"BudgetLimit,omitempty"`
+
+ // BudgetName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-budgetname
+ BudgetName *types.Value `json:"BudgetName,omitempty"`
+
+ // BudgetType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-budgettype
+ BudgetType *types.Value `json:"BudgetType,omitempty"`
+
+ // CostFilters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-costfilters
+ CostFilters interface{} `json:"CostFilters,omitempty"`
+
+ // CostTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-costtypes
+ CostTypes *Budget_CostTypes `json:"CostTypes,omitempty"`
+
+ // PlannedBudgetLimits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-plannedbudgetlimits
+ PlannedBudgetLimits interface{} `json:"PlannedBudgetLimits,omitempty"`
+
+ // TimePeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-timeperiod
+ TimePeriod *Budget_TimePeriod `json:"TimePeriod,omitempty"`
+
+ // TimeUnit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html#cfn-budgets-budget-budgetdata-timeunit
+ TimeUnit *types.Value `json:"TimeUnit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Budget_BudgetData) AWSCloudFormationType() string {
+ return "AWS::Budgets::Budget.BudgetData"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budget_costtypes.go b/goformation/cloudformation/budgets/aws-budgets-budget_costtypes.go
new file mode 100644
index 0000000000..a6f6500ed5
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budget_costtypes.go
@@ -0,0 +1,87 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Budget_CostTypes AWS CloudFormation Resource (AWS::Budgets::Budget.CostTypes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html
+type Budget_CostTypes struct {
+
+ // IncludeCredit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includecredit
+ IncludeCredit *types.Value `json:"IncludeCredit,omitempty"`
+
+ // IncludeDiscount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includediscount
+ IncludeDiscount *types.Value `json:"IncludeDiscount,omitempty"`
+
+ // IncludeOtherSubscription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includeothersubscription
+ IncludeOtherSubscription *types.Value `json:"IncludeOtherSubscription,omitempty"`
+
+ // IncludeRecurring AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includerecurring
+ IncludeRecurring *types.Value `json:"IncludeRecurring,omitempty"`
+
+ // IncludeRefund AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includerefund
+ IncludeRefund *types.Value `json:"IncludeRefund,omitempty"`
+
+ // IncludeSubscription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includesubscription
+ IncludeSubscription *types.Value `json:"IncludeSubscription,omitempty"`
+
+ // IncludeSupport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includesupport
+ IncludeSupport *types.Value `json:"IncludeSupport,omitempty"`
+
+ // IncludeTax AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includetax
+ IncludeTax *types.Value `json:"IncludeTax,omitempty"`
+
+ // IncludeUpfront AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-includeupfront
+ IncludeUpfront *types.Value `json:"IncludeUpfront,omitempty"`
+
+ // UseAmortized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-useamortized
+ UseAmortized *types.Value `json:"UseAmortized,omitempty"`
+
+ // UseBlended AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html#cfn-budgets-budget-costtypes-useblended
+ UseBlended *types.Value `json:"UseBlended,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Budget_CostTypes) AWSCloudFormationType() string {
+ return "AWS::Budgets::Budget.CostTypes"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budget_notification.go b/goformation/cloudformation/budgets/aws-budgets-budget_notification.go
new file mode 100644
index 0000000000..c873b2d7cf
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budget_notification.go
@@ -0,0 +1,52 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Budget_Notification AWS CloudFormation Resource (AWS::Budgets::Budget.Notification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html
+type Budget_Notification struct {
+
+ // ComparisonOperator AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html#cfn-budgets-budget-notification-comparisonoperator
+ ComparisonOperator *types.Value `json:"ComparisonOperator,omitempty"`
+
+ // NotificationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html#cfn-budgets-budget-notification-notificationtype
+ NotificationType *types.Value `json:"NotificationType,omitempty"`
+
+ // Threshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html#cfn-budgets-budget-notification-threshold
+ Threshold *types.Value `json:"Threshold"`
+
+ // ThresholdType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html#cfn-budgets-budget-notification-thresholdtype
+ ThresholdType *types.Value `json:"ThresholdType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Budget_Notification) AWSCloudFormationType() string {
+ return "AWS::Budgets::Budget.Notification"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budget_notificationwithsubscribers.go b/goformation/cloudformation/budgets/aws-budgets-budget_notificationwithsubscribers.go
new file mode 100644
index 0000000000..df56d1fc99
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budget_notificationwithsubscribers.go
@@ -0,0 +1,40 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Budget_NotificationWithSubscribers AWS CloudFormation Resource (AWS::Budgets::Budget.NotificationWithSubscribers)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html
+type Budget_NotificationWithSubscribers struct {
+
+ // Notification AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html#cfn-budgets-budget-notificationwithsubscribers-notification
+ Notification *Budget_Notification `json:"Notification,omitempty"`
+
+ // Subscribers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html#cfn-budgets-budget-notificationwithsubscribers-subscribers
+ Subscribers []Budget_Subscriber `json:"Subscribers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Budget_NotificationWithSubscribers) AWSCloudFormationType() string {
+ return "AWS::Budgets::Budget.NotificationWithSubscribers"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budget_spend.go b/goformation/cloudformation/budgets/aws-budgets-budget_spend.go
new file mode 100644
index 0000000000..0fe964b024
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budget_spend.go
@@ -0,0 +1,42 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Budget_Spend AWS CloudFormation Resource (AWS::Budgets::Budget.Spend)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html
+type Budget_Spend struct {
+
+ // Amount AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html#cfn-budgets-budget-spend-amount
+ Amount *types.Value `json:"Amount"`
+
+ // Unit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html#cfn-budgets-budget-spend-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Budget_Spend) AWSCloudFormationType() string {
+ return "AWS::Budgets::Budget.Spend"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budget_subscriber.go b/goformation/cloudformation/budgets/aws-budgets-budget_subscriber.go
new file mode 100644
index 0000000000..db5d8d2c12
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budget_subscriber.go
@@ -0,0 +1,42 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Budget_Subscriber AWS CloudFormation Resource (AWS::Budgets::Budget.Subscriber)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html
+type Budget_Subscriber struct {
+
+ // Address AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html#cfn-budgets-budget-subscriber-address
+ Address *types.Value `json:"Address,omitempty"`
+
+ // SubscriptionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html#cfn-budgets-budget-subscriber-subscriptiontype
+ SubscriptionType *types.Value `json:"SubscriptionType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Budget_Subscriber) AWSCloudFormationType() string {
+ return "AWS::Budgets::Budget.Subscriber"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budget_timeperiod.go b/goformation/cloudformation/budgets/aws-budgets-budget_timeperiod.go
new file mode 100644
index 0000000000..d83fd0e2f6
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budget_timeperiod.go
@@ -0,0 +1,42 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Budget_TimePeriod AWS CloudFormation Resource (AWS::Budgets::Budget.TimePeriod)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html
+type Budget_TimePeriod struct {
+
+ // End AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html#cfn-budgets-budget-timeperiod-end
+ End *types.Value `json:"End,omitempty"`
+
+ // Start AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html#cfn-budgets-budget-timeperiod-start
+ Start *types.Value `json:"Start,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Budget_TimePeriod) AWSCloudFormationType() string {
+ return "AWS::Budgets::Budget.TimePeriod"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budgetsaction.go b/goformation/cloudformation/budgets/aws-budgets-budgetsaction.go
new file mode 100644
index 0000000000..0e80aeaa85
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budgetsaction.go
@@ -0,0 +1,143 @@
+package budgets
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BudgetsAction AWS CloudFormation Resource (AWS::Budgets::BudgetsAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html
+type BudgetsAction struct {
+
+ // ActionThreshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-actionthreshold
+ ActionThreshold *BudgetsAction_ActionThreshold `json:"ActionThreshold,omitempty"`
+
+ // ActionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-actiontype
+ ActionType *types.Value `json:"ActionType,omitempty"`
+
+ // ApprovalModel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-approvalmodel
+ ApprovalModel *types.Value `json:"ApprovalModel,omitempty"`
+
+ // BudgetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-budgetname
+ BudgetName *types.Value `json:"BudgetName,omitempty"`
+
+ // Definition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-definition
+ Definition *BudgetsAction_Definition `json:"Definition,omitempty"`
+
+ // ExecutionRoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-executionrolearn
+ ExecutionRoleArn *types.Value `json:"ExecutionRoleArn,omitempty"`
+
+ // NotificationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-notificationtype
+ NotificationType *types.Value `json:"NotificationType,omitempty"`
+
+ // Subscribers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html#cfn-budgets-budgetsaction-subscribers
+ Subscribers []BudgetsAction_Subscriber `json:"Subscribers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BudgetsAction) AWSCloudFormationType() string {
+ return "AWS::Budgets::BudgetsAction"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r BudgetsAction) MarshalJSON() ([]byte, error) {
+ type Properties BudgetsAction
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *BudgetsAction) UnmarshalJSON(b []byte) error {
+ type Properties BudgetsAction
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = BudgetsAction(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budgetsaction_actionthreshold.go b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_actionthreshold.go
new file mode 100644
index 0000000000..12922a4e88
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_actionthreshold.go
@@ -0,0 +1,42 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BudgetsAction_ActionThreshold AWS CloudFormation Resource (AWS::Budgets::BudgetsAction.ActionThreshold)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-actionthreshold.html
+type BudgetsAction_ActionThreshold struct {
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-actionthreshold.html#cfn-budgets-budgetsaction-actionthreshold-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-actionthreshold.html#cfn-budgets-budgetsaction-actionthreshold-value
+ Value *types.Value `json:"Value"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BudgetsAction_ActionThreshold) AWSCloudFormationType() string {
+ return "AWS::Budgets::BudgetsAction.ActionThreshold"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budgetsaction_definition.go b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_definition.go
new file mode 100644
index 0000000000..d6fd141c7d
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_definition.go
@@ -0,0 +1,45 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// BudgetsAction_Definition AWS CloudFormation Resource (AWS::Budgets::BudgetsAction.Definition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html
+type BudgetsAction_Definition struct {
+
+ // IamActionDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html#cfn-budgets-budgetsaction-definition-iamactiondefinition
+ IamActionDefinition *BudgetsAction_IamActionDefinition `json:"IamActionDefinition,omitempty"`
+
+ // ScpActionDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html#cfn-budgets-budgetsaction-definition-scpactiondefinition
+ ScpActionDefinition *BudgetsAction_ScpActionDefinition `json:"ScpActionDefinition,omitempty"`
+
+ // SsmActionDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html#cfn-budgets-budgetsaction-definition-ssmactiondefinition
+ SsmActionDefinition *BudgetsAction_SsmActionDefinition `json:"SsmActionDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BudgetsAction_Definition) AWSCloudFormationType() string {
+ return "AWS::Budgets::BudgetsAction.Definition"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budgetsaction_iamactiondefinition.go b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_iamactiondefinition.go
new file mode 100644
index 0000000000..958a5c293b
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_iamactiondefinition.go
@@ -0,0 +1,52 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BudgetsAction_IamActionDefinition AWS CloudFormation Resource (AWS::Budgets::BudgetsAction.IamActionDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html
+type BudgetsAction_IamActionDefinition struct {
+
+ // Groups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html#cfn-budgets-budgetsaction-iamactiondefinition-groups
+ Groups *types.Value `json:"Groups,omitempty"`
+
+ // PolicyArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html#cfn-budgets-budgetsaction-iamactiondefinition-policyarn
+ PolicyArn *types.Value `json:"PolicyArn,omitempty"`
+
+ // Roles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html#cfn-budgets-budgetsaction-iamactiondefinition-roles
+ Roles *types.Value `json:"Roles,omitempty"`
+
+ // Users AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html#cfn-budgets-budgetsaction-iamactiondefinition-users
+ Users *types.Value `json:"Users,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BudgetsAction_IamActionDefinition) AWSCloudFormationType() string {
+ return "AWS::Budgets::BudgetsAction.IamActionDefinition"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budgetsaction_scpactiondefinition.go b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_scpactiondefinition.go
new file mode 100644
index 0000000000..0507df7fd0
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_scpactiondefinition.go
@@ -0,0 +1,42 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BudgetsAction_ScpActionDefinition AWS CloudFormation Resource (AWS::Budgets::BudgetsAction.ScpActionDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-scpactiondefinition.html
+type BudgetsAction_ScpActionDefinition struct {
+
+ // PolicyId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-scpactiondefinition.html#cfn-budgets-budgetsaction-scpactiondefinition-policyid
+ PolicyId *types.Value `json:"PolicyId,omitempty"`
+
+ // TargetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-scpactiondefinition.html#cfn-budgets-budgetsaction-scpactiondefinition-targetids
+ TargetIds *types.Value `json:"TargetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BudgetsAction_ScpActionDefinition) AWSCloudFormationType() string {
+ return "AWS::Budgets::BudgetsAction.ScpActionDefinition"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budgetsaction_ssmactiondefinition.go b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_ssmactiondefinition.go
new file mode 100644
index 0000000000..dcf2c46661
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_ssmactiondefinition.go
@@ -0,0 +1,47 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BudgetsAction_SsmActionDefinition AWS CloudFormation Resource (AWS::Budgets::BudgetsAction.SsmActionDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-ssmactiondefinition.html
+type BudgetsAction_SsmActionDefinition struct {
+
+ // InstanceIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-ssmactiondefinition.html#cfn-budgets-budgetsaction-ssmactiondefinition-instanceids
+ InstanceIds *types.Value `json:"InstanceIds,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-ssmactiondefinition.html#cfn-budgets-budgetsaction-ssmactiondefinition-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // Subtype AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-ssmactiondefinition.html#cfn-budgets-budgetsaction-ssmactiondefinition-subtype
+ Subtype *types.Value `json:"Subtype,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BudgetsAction_SsmActionDefinition) AWSCloudFormationType() string {
+ return "AWS::Budgets::BudgetsAction.SsmActionDefinition"
+}
diff --git a/goformation/cloudformation/budgets/aws-budgets-budgetsaction_subscriber.go b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_subscriber.go
new file mode 100644
index 0000000000..810b63fd15
--- /dev/null
+++ b/goformation/cloudformation/budgets/aws-budgets-budgetsaction_subscriber.go
@@ -0,0 +1,42 @@
+package budgets
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// BudgetsAction_Subscriber AWS CloudFormation Resource (AWS::Budgets::BudgetsAction.Subscriber)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-subscriber.html
+type BudgetsAction_Subscriber struct {
+
+ // Address AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-subscriber.html#cfn-budgets-budgetsaction-subscriber-address
+ Address *types.Value `json:"Address,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-subscriber.html#cfn-budgets-budgetsaction-subscriber-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *BudgetsAction_Subscriber) AWSCloudFormationType() string {
+ return "AWS::Budgets::BudgetsAction.Subscriber"
+}
diff --git a/goformation/cloudformation/cassandra/aws-cassandra-keyspace.go b/goformation/cloudformation/cassandra/aws-cassandra-keyspace.go
new file mode 100644
index 0000000000..7cdc329d06
--- /dev/null
+++ b/goformation/cloudformation/cassandra/aws-cassandra-keyspace.go
@@ -0,0 +1,114 @@
+package cassandra
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Keyspace AWS CloudFormation Resource (AWS::Cassandra::Keyspace)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html
+type Keyspace struct {
+
+ // KeyspaceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html#cfn-cassandra-keyspace-keyspacename
+ KeyspaceName *types.Value `json:"KeyspaceName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-keyspace.html#cfn-cassandra-keyspace-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Keyspace) AWSCloudFormationType() string {
+ return "AWS::Cassandra::Keyspace"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Keyspace) MarshalJSON() ([]byte, error) {
+ type Properties Keyspace
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Keyspace) UnmarshalJSON(b []byte) error {
+ type Properties Keyspace
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Keyspace(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cassandra/aws-cassandra-table.go b/goformation/cloudformation/cassandra/aws-cassandra-table.go
new file mode 100644
index 0000000000..11d3a2f760
--- /dev/null
+++ b/goformation/cloudformation/cassandra/aws-cassandra-table.go
@@ -0,0 +1,154 @@
+package cassandra
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table AWS CloudFormation Resource (AWS::Cassandra::Table)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html
+type Table struct {
+
+ // BillingMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-billingmode
+ BillingMode *Table_BillingMode `json:"BillingMode,omitempty"`
+
+ // ClusteringKeyColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-clusteringkeycolumns
+ ClusteringKeyColumns []Table_ClusteringKeyColumn `json:"ClusteringKeyColumns,omitempty"`
+
+ // DefaultTimeToLive AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-defaulttimetolive
+ DefaultTimeToLive *types.Value `json:"DefaultTimeToLive,omitempty"`
+
+ // EncryptionSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-encryptionspecification
+ EncryptionSpecification *Table_EncryptionSpecification `json:"EncryptionSpecification,omitempty"`
+
+ // KeyspaceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-keyspacename
+ KeyspaceName *types.Value `json:"KeyspaceName,omitempty"`
+
+ // PartitionKeyColumns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-partitionkeycolumns
+ PartitionKeyColumns []Table_Column `json:"PartitionKeyColumns,omitempty"`
+
+ // PointInTimeRecoveryEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-pointintimerecoveryenabled
+ PointInTimeRecoveryEnabled *types.Value `json:"PointInTimeRecoveryEnabled,omitempty"`
+
+ // RegularColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-regularcolumns
+ RegularColumns []Table_Column `json:"RegularColumns,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html#cfn-cassandra-table-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table) AWSCloudFormationType() string {
+ return "AWS::Cassandra::Table"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Table) MarshalJSON() ([]byte, error) {
+ type Properties Table
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Table) UnmarshalJSON(b []byte) error {
+ type Properties Table
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Table(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cassandra/aws-cassandra-table_billingmode.go b/goformation/cloudformation/cassandra/aws-cassandra-table_billingmode.go
new file mode 100644
index 0000000000..b9968d2160
--- /dev/null
+++ b/goformation/cloudformation/cassandra/aws-cassandra-table_billingmode.go
@@ -0,0 +1,42 @@
+package cassandra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_BillingMode AWS CloudFormation Resource (AWS::Cassandra::Table.BillingMode)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html
+type Table_BillingMode struct {
+
+ // Mode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html#cfn-cassandra-table-billingmode-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // ProvisionedThroughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-billingmode.html#cfn-cassandra-table-billingmode-provisionedthroughput
+ ProvisionedThroughput *Table_ProvisionedThroughput `json:"ProvisionedThroughput,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_BillingMode) AWSCloudFormationType() string {
+ return "AWS::Cassandra::Table.BillingMode"
+}
diff --git a/goformation/cloudformation/cassandra/aws-cassandra-table_clusteringkeycolumn.go b/goformation/cloudformation/cassandra/aws-cassandra-table_clusteringkeycolumn.go
new file mode 100644
index 0000000000..d33747ec87
--- /dev/null
+++ b/goformation/cloudformation/cassandra/aws-cassandra-table_clusteringkeycolumn.go
@@ -0,0 +1,42 @@
+package cassandra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_ClusteringKeyColumn AWS CloudFormation Resource (AWS::Cassandra::Table.ClusteringKeyColumn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html
+type Table_ClusteringKeyColumn struct {
+
+ // Column AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html#cfn-cassandra-table-clusteringkeycolumn-column
+ Column *Table_Column `json:"Column,omitempty"`
+
+ // OrderBy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-clusteringkeycolumn.html#cfn-cassandra-table-clusteringkeycolumn-orderby
+ OrderBy *types.Value `json:"OrderBy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_ClusteringKeyColumn) AWSCloudFormationType() string {
+ return "AWS::Cassandra::Table.ClusteringKeyColumn"
+}
diff --git a/goformation/cloudformation/cassandra/aws-cassandra-table_column.go b/goformation/cloudformation/cassandra/aws-cassandra-table_column.go
new file mode 100644
index 0000000000..30f16c4cda
--- /dev/null
+++ b/goformation/cloudformation/cassandra/aws-cassandra-table_column.go
@@ -0,0 +1,42 @@
+package cassandra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_Column AWS CloudFormation Resource (AWS::Cassandra::Table.Column)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html
+type Table_Column struct {
+
+ // ColumnName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html#cfn-cassandra-table-column-columnname
+ ColumnName *types.Value `json:"ColumnName,omitempty"`
+
+ // ColumnType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-column.html#cfn-cassandra-table-column-columntype
+ ColumnType *types.Value `json:"ColumnType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_Column) AWSCloudFormationType() string {
+ return "AWS::Cassandra::Table.Column"
+}
diff --git a/goformation/cloudformation/cassandra/aws-cassandra-table_encryptionspecification.go b/goformation/cloudformation/cassandra/aws-cassandra-table_encryptionspecification.go
new file mode 100644
index 0000000000..5617f235eb
--- /dev/null
+++ b/goformation/cloudformation/cassandra/aws-cassandra-table_encryptionspecification.go
@@ -0,0 +1,42 @@
+package cassandra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_EncryptionSpecification AWS CloudFormation Resource (AWS::Cassandra::Table.EncryptionSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html
+type Table_EncryptionSpecification struct {
+
+ // EncryptionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html#cfn-cassandra-table-encryptionspecification-encryptiontype
+ EncryptionType *types.Value `json:"EncryptionType,omitempty"`
+
+ // KmsKeyIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-encryptionspecification.html#cfn-cassandra-table-encryptionspecification-kmskeyidentifier
+ KmsKeyIdentifier *types.Value `json:"KmsKeyIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_EncryptionSpecification) AWSCloudFormationType() string {
+ return "AWS::Cassandra::Table.EncryptionSpecification"
+}
diff --git a/goformation/cloudformation/cassandra/aws-cassandra-table_provisionedthroughput.go b/goformation/cloudformation/cassandra/aws-cassandra-table_provisionedthroughput.go
new file mode 100644
index 0000000000..fc020fa9e8
--- /dev/null
+++ b/goformation/cloudformation/cassandra/aws-cassandra-table_provisionedthroughput.go
@@ -0,0 +1,42 @@
+package cassandra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_ProvisionedThroughput AWS CloudFormation Resource (AWS::Cassandra::Table.ProvisionedThroughput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html
+type Table_ProvisionedThroughput struct {
+
+ // ReadCapacityUnits AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html#cfn-cassandra-table-provisionedthroughput-readcapacityunits
+ ReadCapacityUnits *types.Value `json:"ReadCapacityUnits"`
+
+ // WriteCapacityUnits AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-table-provisionedthroughput.html#cfn-cassandra-table-provisionedthroughput-writecapacityunits
+ WriteCapacityUnits *types.Value `json:"WriteCapacityUnits"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_ProvisionedThroughput) AWSCloudFormationType() string {
+ return "AWS::Cassandra::Table.ProvisionedThroughput"
+}
diff --git a/goformation/cloudformation/ce/aws-ce-anomalymonitor.go b/goformation/cloudformation/ce/aws-ce-anomalymonitor.go
new file mode 100644
index 0000000000..db777cbeaa
--- /dev/null
+++ b/goformation/cloudformation/ce/aws-ce-anomalymonitor.go
@@ -0,0 +1,123 @@
+package ce
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyMonitor AWS CloudFormation Resource (AWS::CE::AnomalyMonitor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html
+type AnomalyMonitor struct {
+
+ // MonitorDimension AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html#cfn-ce-anomalymonitor-monitordimension
+ MonitorDimension *types.Value `json:"MonitorDimension,omitempty"`
+
+ // MonitorName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html#cfn-ce-anomalymonitor-monitorname
+ MonitorName *types.Value `json:"MonitorName,omitempty"`
+
+ // MonitorSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html#cfn-ce-anomalymonitor-monitorspecification
+ MonitorSpecification *types.Value `json:"MonitorSpecification,omitempty"`
+
+ // MonitorType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalymonitor.html#cfn-ce-anomalymonitor-monitortype
+ MonitorType *types.Value `json:"MonitorType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyMonitor) AWSCloudFormationType() string {
+ return "AWS::CE::AnomalyMonitor"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AnomalyMonitor) MarshalJSON() ([]byte, error) {
+ type Properties AnomalyMonitor
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AnomalyMonitor) UnmarshalJSON(b []byte) error {
+ type Properties AnomalyMonitor
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AnomalyMonitor(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ce/aws-ce-anomalysubscription.go b/goformation/cloudformation/ce/aws-ce-anomalysubscription.go
new file mode 100644
index 0000000000..e0c799e192
--- /dev/null
+++ b/goformation/cloudformation/ce/aws-ce-anomalysubscription.go
@@ -0,0 +1,128 @@
+package ce
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalySubscription AWS CloudFormation Resource (AWS::CE::AnomalySubscription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html
+type AnomalySubscription struct {
+
+ // Frequency AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-frequency
+ Frequency *types.Value `json:"Frequency,omitempty"`
+
+ // MonitorArnList AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-monitorarnlist
+ MonitorArnList *types.Value `json:"MonitorArnList,omitempty"`
+
+ // Subscribers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-subscribers
+ Subscribers []AnomalySubscription_Subscriber `json:"Subscribers,omitempty"`
+
+ // SubscriptionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-subscriptionname
+ SubscriptionName *types.Value `json:"SubscriptionName,omitempty"`
+
+ // Threshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-anomalysubscription.html#cfn-ce-anomalysubscription-threshold
+ Threshold *types.Value `json:"Threshold"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalySubscription) AWSCloudFormationType() string {
+ return "AWS::CE::AnomalySubscription"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AnomalySubscription) MarshalJSON() ([]byte, error) {
+ type Properties AnomalySubscription
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AnomalySubscription) UnmarshalJSON(b []byte) error {
+ type Properties AnomalySubscription
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AnomalySubscription(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ce/aws-ce-anomalysubscription_subscriber.go b/goformation/cloudformation/ce/aws-ce-anomalysubscription_subscriber.go
new file mode 100644
index 0000000000..1229d9cee3
--- /dev/null
+++ b/goformation/cloudformation/ce/aws-ce-anomalysubscription_subscriber.go
@@ -0,0 +1,47 @@
+package ce
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalySubscription_Subscriber AWS CloudFormation Resource (AWS::CE::AnomalySubscription.Subscriber)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ce-anomalysubscription-subscriber.html
+type AnomalySubscription_Subscriber struct {
+
+ // Address AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ce-anomalysubscription-subscriber.html#cfn-ce-anomalysubscription-subscriber-address
+ Address *types.Value `json:"Address,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ce-anomalysubscription-subscriber.html#cfn-ce-anomalysubscription-subscriber-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ce-anomalysubscription-subscriber.html#cfn-ce-anomalysubscription-subscriber-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalySubscription_Subscriber) AWSCloudFormationType() string {
+ return "AWS::CE::AnomalySubscription.Subscriber"
+}
diff --git a/goformation/cloudformation/ce/aws-ce-costcategory.go b/goformation/cloudformation/ce/aws-ce-costcategory.go
new file mode 100644
index 0000000000..4b185a8148
--- /dev/null
+++ b/goformation/cloudformation/ce/aws-ce-costcategory.go
@@ -0,0 +1,128 @@
+package ce
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CostCategory AWS CloudFormation Resource (AWS::CE::CostCategory)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html
+type CostCategory struct {
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html#cfn-ce-costcategory-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html#cfn-ce-costcategory-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RuleVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html#cfn-ce-costcategory-ruleversion
+ RuleVersion *types.Value `json:"RuleVersion,omitempty"`
+
+ // Rules AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html#cfn-ce-costcategory-rules
+ Rules *types.Value `json:"Rules,omitempty"`
+
+ // SplitChargeRules AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ce-costcategory.html#cfn-ce-costcategory-splitchargerules
+ SplitChargeRules *types.Value `json:"SplitChargeRules,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CostCategory) AWSCloudFormationType() string {
+ return "AWS::CE::CostCategory"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CostCategory) MarshalJSON() ([]byte, error) {
+ type Properties CostCategory
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CostCategory) UnmarshalJSON(b []byte) error {
+ type Properties CostCategory
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CostCategory(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/certificatemanager/aws-certificatemanager-account.go b/goformation/cloudformation/certificatemanager/aws-certificatemanager-account.go
new file mode 100644
index 0000000000..4e198feb8e
--- /dev/null
+++ b/goformation/cloudformation/certificatemanager/aws-certificatemanager-account.go
@@ -0,0 +1,106 @@
+package certificatemanager
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Account AWS CloudFormation Resource (AWS::CertificateManager::Account)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-account.html
+type Account struct {
+
+ // ExpiryEventsConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-account.html#cfn-certificatemanager-account-expiryeventsconfiguration
+ ExpiryEventsConfiguration *Account_ExpiryEventsConfiguration `json:"ExpiryEventsConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Account) AWSCloudFormationType() string {
+ return "AWS::CertificateManager::Account"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Account) MarshalJSON() ([]byte, error) {
+ type Properties Account
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Account) UnmarshalJSON(b []byte) error {
+ type Properties Account
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Account(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/certificatemanager/aws-certificatemanager-account_expiryeventsconfiguration.go b/goformation/cloudformation/certificatemanager/aws-certificatemanager-account_expiryeventsconfiguration.go
new file mode 100644
index 0000000000..696769a6c2
--- /dev/null
+++ b/goformation/cloudformation/certificatemanager/aws-certificatemanager-account_expiryeventsconfiguration.go
@@ -0,0 +1,37 @@
+package certificatemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Account_ExpiryEventsConfiguration AWS CloudFormation Resource (AWS::CertificateManager::Account.ExpiryEventsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-account-expiryeventsconfiguration.html
+type Account_ExpiryEventsConfiguration struct {
+
+ // DaysBeforeExpiry AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-account-expiryeventsconfiguration.html#cfn-certificatemanager-account-expiryeventsconfiguration-daysbeforeexpiry
+ DaysBeforeExpiry *types.Value `json:"DaysBeforeExpiry,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Account_ExpiryEventsConfiguration) AWSCloudFormationType() string {
+ return "AWS::CertificateManager::Account.ExpiryEventsConfiguration"
+}
diff --git a/goformation/cloudformation/certificatemanager/aws-certificatemanager-certificate.go b/goformation/cloudformation/certificatemanager/aws-certificatemanager-certificate.go
new file mode 100644
index 0000000000..483fc52a78
--- /dev/null
+++ b/goformation/cloudformation/certificatemanager/aws-certificatemanager-certificate.go
@@ -0,0 +1,139 @@
+package certificatemanager
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate AWS CloudFormation Resource (AWS::CertificateManager::Certificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html
+type Certificate struct {
+
+ // CertificateAuthorityArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-certificateauthorityarn
+ CertificateAuthorityArn *types.Value `json:"CertificateAuthorityArn,omitempty"`
+
+ // CertificateTransparencyLoggingPreference AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-certificatetransparencyloggingpreference
+ CertificateTransparencyLoggingPreference *types.Value `json:"CertificateTransparencyLoggingPreference,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // DomainValidationOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-domainvalidationoptions
+ DomainValidationOptions []Certificate_DomainValidationOption `json:"DomainValidationOptions,omitempty"`
+
+ // SubjectAlternativeNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-subjectalternativenames
+ SubjectAlternativeNames *types.Value `json:"SubjectAlternativeNames,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // ValidationMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-validationmethod
+ ValidationMethod *types.Value `json:"ValidationMethod,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate) AWSCloudFormationType() string {
+ return "AWS::CertificateManager::Certificate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Certificate) MarshalJSON() ([]byte, error) {
+ type Properties Certificate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Certificate) UnmarshalJSON(b []byte) error {
+ type Properties Certificate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Certificate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/certificatemanager/aws-certificatemanager-certificate_domainvalidationoption.go b/goformation/cloudformation/certificatemanager/aws-certificatemanager-certificate_domainvalidationoption.go
new file mode 100644
index 0000000000..9b725087b7
--- /dev/null
+++ b/goformation/cloudformation/certificatemanager/aws-certificatemanager-certificate_domainvalidationoption.go
@@ -0,0 +1,47 @@
+package certificatemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate_DomainValidationOption AWS CloudFormation Resource (AWS::CertificateManager::Certificate.DomainValidationOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html
+type Certificate_DomainValidationOption struct {
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoptions-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // HostedZoneId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoption-hostedzoneid
+ HostedZoneId *types.Value `json:"HostedZoneId,omitempty"`
+
+ // ValidationDomain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-certificatemanager-certificate-domainvalidationoption.html#cfn-certificatemanager-certificate-domainvalidationoption-validationdomain
+ ValidationDomain *types.Value `json:"ValidationDomain,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate_DomainValidationOption) AWSCloudFormationType() string {
+ return "AWS::CertificateManager::Certificate.DomainValidationOption"
+}
diff --git a/goformation/cloudformation/chatbot/aws-chatbot-slackchannelconfiguration.go b/goformation/cloudformation/chatbot/aws-chatbot-slackchannelconfiguration.go
new file mode 100644
index 0000000000..5b35047a61
--- /dev/null
+++ b/goformation/cloudformation/chatbot/aws-chatbot-slackchannelconfiguration.go
@@ -0,0 +1,143 @@
+package chatbot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SlackChannelConfiguration AWS CloudFormation Resource (AWS::Chatbot::SlackChannelConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html
+type SlackChannelConfiguration struct {
+
+ // ConfigurationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-configurationname
+ ConfigurationName *types.Value `json:"ConfigurationName,omitempty"`
+
+ // GuardrailPolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-guardrailpolicies
+ GuardrailPolicies *types.Value `json:"GuardrailPolicies,omitempty"`
+
+ // IamRoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-iamrolearn
+ IamRoleArn *types.Value `json:"IamRoleArn,omitempty"`
+
+ // LoggingLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-logginglevel
+ LoggingLevel *types.Value `json:"LoggingLevel,omitempty"`
+
+ // SlackChannelId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-slackchannelid
+ SlackChannelId *types.Value `json:"SlackChannelId,omitempty"`
+
+ // SlackWorkspaceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-slackworkspaceid
+ SlackWorkspaceId *types.Value `json:"SlackWorkspaceId,omitempty"`
+
+ // SnsTopicArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-snstopicarns
+ SnsTopicArns *types.Value `json:"SnsTopicArns,omitempty"`
+
+ // UserRoleRequired AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-chatbot-slackchannelconfiguration.html#cfn-chatbot-slackchannelconfiguration-userrolerequired
+ UserRoleRequired *types.Value `json:"UserRoleRequired,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SlackChannelConfiguration) AWSCloudFormationType() string {
+ return "AWS::Chatbot::SlackChannelConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SlackChannelConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties SlackChannelConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SlackChannelConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties SlackChannelConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SlackChannelConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloud9/aws-cloud9-environmentec2.go b/goformation/cloudformation/cloud9/aws-cloud9-environmentec2.go
new file mode 100644
index 0000000000..960771e30a
--- /dev/null
+++ b/goformation/cloudformation/cloud9/aws-cloud9-environmentec2.go
@@ -0,0 +1,154 @@
+package cloud9
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EnvironmentEC2 AWS CloudFormation Resource (AWS::Cloud9::EnvironmentEC2)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html
+type EnvironmentEC2 struct {
+
+ // AutomaticStopTimeMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-automaticstoptimeminutes
+ AutomaticStopTimeMinutes *types.Value `json:"AutomaticStopTimeMinutes,omitempty"`
+
+ // ConnectionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-connectiontype
+ ConnectionType *types.Value `json:"ConnectionType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // ImageId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-imageid
+ ImageId *types.Value `json:"ImageId,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OwnerArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-ownerarn
+ OwnerArn *types.Value `json:"OwnerArn,omitempty"`
+
+ // Repositories AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-repositories
+ Repositories []EnvironmentEC2_Repository `json:"Repositories,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EnvironmentEC2) AWSCloudFormationType() string {
+ return "AWS::Cloud9::EnvironmentEC2"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EnvironmentEC2) MarshalJSON() ([]byte, error) {
+ type Properties EnvironmentEC2
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EnvironmentEC2) UnmarshalJSON(b []byte) error {
+ type Properties EnvironmentEC2
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EnvironmentEC2(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloud9/aws-cloud9-environmentec2_repository.go b/goformation/cloudformation/cloud9/aws-cloud9-environmentec2_repository.go
new file mode 100644
index 0000000000..ab4856f927
--- /dev/null
+++ b/goformation/cloudformation/cloud9/aws-cloud9-environmentec2_repository.go
@@ -0,0 +1,42 @@
+package cloud9
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EnvironmentEC2_Repository AWS CloudFormation Resource (AWS::Cloud9::EnvironmentEC2.Repository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html
+type EnvironmentEC2_Repository struct {
+
+ // PathComponent AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html#cfn-cloud9-environmentec2-repository-pathcomponent
+ PathComponent *types.Value `json:"PathComponent,omitempty"`
+
+ // RepositoryUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html#cfn-cloud9-environmentec2-repository-repositoryurl
+ RepositoryUrl *types.Value `json:"RepositoryUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EnvironmentEC2_Repository) AWSCloudFormationType() string {
+ return "AWS::Cloud9::EnvironmentEC2.Repository"
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-customresource.go b/goformation/cloudformation/cloudformation/aws-cloudformation-customresource.go
new file mode 100644
index 0000000000..7b702f1cf3
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-customresource.go
@@ -0,0 +1,108 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CustomResource AWS CloudFormation Resource (AWS::CloudFormation::CustomResource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html
+type CustomResource struct {
+
+ // ServiceToken AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html#cfn-customresource-servicetoken
+ ServiceToken *types.Value `json:"ServiceToken,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomResource) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::CustomResource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CustomResource) MarshalJSON() ([]byte, error) {
+ type Properties CustomResource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CustomResource) UnmarshalJSON(b []byte) error {
+ type Properties CustomResource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CustomResource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-macro.go b/goformation/cloudformation/cloudformation/aws-cloudformation-macro.go
new file mode 100644
index 0000000000..dcfb42179e
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-macro.go
@@ -0,0 +1,128 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Macro AWS CloudFormation Resource (AWS::CloudFormation::Macro)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html
+type Macro struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FunctionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-functionname
+ FunctionName *types.Value `json:"FunctionName,omitempty"`
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // LogRoleARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-logrolearn
+ LogRoleARN *types.Value `json:"LogRoleARN,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html#cfn-cloudformation-macro-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Macro) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::Macro"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Macro) MarshalJSON() ([]byte, error) {
+ type Properties Macro
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Macro) UnmarshalJSON(b []byte) error {
+ type Properties Macro
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Macro(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-moduledefaultversion.go b/goformation/cloudformation/cloudformation/aws-cloudformation-moduledefaultversion.go
new file mode 100644
index 0000000000..17d9b22aa0
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-moduledefaultversion.go
@@ -0,0 +1,118 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ModuleDefaultVersion AWS CloudFormation Resource (AWS::CloudFormation::ModuleDefaultVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html
+type ModuleDefaultVersion struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html#cfn-cloudformation-moduledefaultversion-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // ModuleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html#cfn-cloudformation-moduledefaultversion-modulename
+ ModuleName *types.Value `json:"ModuleName,omitempty"`
+
+ // VersionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html#cfn-cloudformation-moduledefaultversion-versionid
+ VersionId *types.Value `json:"VersionId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ModuleDefaultVersion) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::ModuleDefaultVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ModuleDefaultVersion) MarshalJSON() ([]byte, error) {
+ type Properties ModuleDefaultVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ModuleDefaultVersion) UnmarshalJSON(b []byte) error {
+ type Properties ModuleDefaultVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ModuleDefaultVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-moduleversion.go b/goformation/cloudformation/cloudformation/aws-cloudformation-moduleversion.go
new file mode 100644
index 0000000000..cb8ee5d74c
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-moduleversion.go
@@ -0,0 +1,113 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ModuleVersion AWS CloudFormation Resource (AWS::CloudFormation::ModuleVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html
+type ModuleVersion struct {
+
+ // ModuleName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html#cfn-cloudformation-moduleversion-modulename
+ ModuleName *types.Value `json:"ModuleName,omitempty"`
+
+ // ModulePackage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html#cfn-cloudformation-moduleversion-modulepackage
+ ModulePackage *types.Value `json:"ModulePackage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ModuleVersion) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::ModuleVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ModuleVersion) MarshalJSON() ([]byte, error) {
+ type Properties ModuleVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ModuleVersion) UnmarshalJSON(b []byte) error {
+ type Properties ModuleVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ModuleVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-publictypeversion.go b/goformation/cloudformation/cloudformation/aws-cloudformation-publictypeversion.go
new file mode 100644
index 0000000000..132956c1a2
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-publictypeversion.go
@@ -0,0 +1,128 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PublicTypeVersion AWS CloudFormation Resource (AWS::CloudFormation::PublicTypeVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html
+type PublicTypeVersion struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // LogDeliveryBucket AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-logdeliverybucket
+ LogDeliveryBucket *types.Value `json:"LogDeliveryBucket,omitempty"`
+
+ // PublicVersionNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-publicversionnumber
+ PublicVersionNumber *types.Value `json:"PublicVersionNumber,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // TypeName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html#cfn-cloudformation-publictypeversion-typename
+ TypeName *types.Value `json:"TypeName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PublicTypeVersion) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::PublicTypeVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PublicTypeVersion) MarshalJSON() ([]byte, error) {
+ type Properties PublicTypeVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PublicTypeVersion) UnmarshalJSON(b []byte) error {
+ type Properties PublicTypeVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PublicTypeVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-publisher.go b/goformation/cloudformation/cloudformation/aws-cloudformation-publisher.go
new file mode 100644
index 0000000000..072b5ea11d
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-publisher.go
@@ -0,0 +1,113 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Publisher AWS CloudFormation Resource (AWS::CloudFormation::Publisher)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html
+type Publisher struct {
+
+ // AcceptTermsAndConditions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html#cfn-cloudformation-publisher-accepttermsandconditions
+ AcceptTermsAndConditions *types.Value `json:"AcceptTermsAndConditions"`
+
+ // ConnectionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html#cfn-cloudformation-publisher-connectionarn
+ ConnectionArn *types.Value `json:"ConnectionArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Publisher) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::Publisher"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Publisher) MarshalJSON() ([]byte, error) {
+ type Properties Publisher
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Publisher) UnmarshalJSON(b []byte) error {
+ type Properties Publisher
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Publisher(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-resourcedefaultversion.go b/goformation/cloudformation/cloudformation/aws-cloudformation-resourcedefaultversion.go
new file mode 100644
index 0000000000..154e9b66cc
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-resourcedefaultversion.go
@@ -0,0 +1,118 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefaultVersion AWS CloudFormation Resource (AWS::CloudFormation::ResourceDefaultVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html
+type ResourceDefaultVersion struct {
+
+ // TypeName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html#cfn-cloudformation-resourcedefaultversion-typename
+ TypeName *types.Value `json:"TypeName,omitempty"`
+
+ // TypeVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html#cfn-cloudformation-resourcedefaultversion-typeversionarn
+ TypeVersionArn *types.Value `json:"TypeVersionArn,omitempty"`
+
+ // VersionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html#cfn-cloudformation-resourcedefaultversion-versionid
+ VersionId *types.Value `json:"VersionId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefaultVersion) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::ResourceDefaultVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResourceDefaultVersion) MarshalJSON() ([]byte, error) {
+ type Properties ResourceDefaultVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResourceDefaultVersion) UnmarshalJSON(b []byte) error {
+ type Properties ResourceDefaultVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResourceDefaultVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-resourceversion.go b/goformation/cloudformation/cloudformation/aws-cloudformation-resourceversion.go
new file mode 100644
index 0000000000..6c400c945e
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-resourceversion.go
@@ -0,0 +1,123 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceVersion AWS CloudFormation Resource (AWS::CloudFormation::ResourceVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html
+type ResourceVersion struct {
+
+ // ExecutionRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html#cfn-cloudformation-resourceversion-executionrolearn
+ ExecutionRoleArn *types.Value `json:"ExecutionRoleArn,omitempty"`
+
+ // LoggingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html#cfn-cloudformation-resourceversion-loggingconfig
+ LoggingConfig *ResourceVersion_LoggingConfig `json:"LoggingConfig,omitempty"`
+
+ // SchemaHandlerPackage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html#cfn-cloudformation-resourceversion-schemahandlerpackage
+ SchemaHandlerPackage *types.Value `json:"SchemaHandlerPackage,omitempty"`
+
+ // TypeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html#cfn-cloudformation-resourceversion-typename
+ TypeName *types.Value `json:"TypeName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceVersion) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::ResourceVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResourceVersion) MarshalJSON() ([]byte, error) {
+ type Properties ResourceVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResourceVersion) UnmarshalJSON(b []byte) error {
+ type Properties ResourceVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResourceVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-resourceversion_loggingconfig.go b/goformation/cloudformation/cloudformation/aws-cloudformation-resourceversion_loggingconfig.go
new file mode 100644
index 0000000000..ce4517ab07
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-resourceversion_loggingconfig.go
@@ -0,0 +1,42 @@
+package cloudformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceVersion_LoggingConfig AWS CloudFormation Resource (AWS::CloudFormation::ResourceVersion.LoggingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-resourceversion-loggingconfig.html
+type ResourceVersion_LoggingConfig struct {
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-resourceversion-loggingconfig.html#cfn-cloudformation-resourceversion-loggingconfig-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // LogRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-resourceversion-loggingconfig.html#cfn-cloudformation-resourceversion-loggingconfig-logrolearn
+ LogRoleArn *types.Value `json:"LogRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceVersion_LoggingConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::ResourceVersion.LoggingConfig"
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-stack.go b/goformation/cloudformation/cloudformation/aws-cloudformation-stack.go
new file mode 100644
index 0000000000..fabec51538
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-stack.go
@@ -0,0 +1,128 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stack AWS CloudFormation Resource (AWS::CloudFormation::Stack)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html
+type Stack struct {
+
+ // NotificationARNs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns
+ NotificationARNs *types.Value `json:"NotificationARNs,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters
+ Parameters map[string]*types.Value `json:"Parameters,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-tags
+ Tags []Tag `json:"Tags,omitempty"`
+
+ // TemplateURL AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl
+ TemplateURL *types.Value `json:"TemplateURL,omitempty"`
+
+ // TimeoutInMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes
+ TimeoutInMinutes *types.Value `json:"TimeoutInMinutes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stack) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::Stack"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Stack) MarshalJSON() ([]byte, error) {
+ type Properties Stack
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Stack) UnmarshalJSON(b []byte) error {
+ type Properties Stack
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Stack(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-stackset.go b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset.go
new file mode 100644
index 0000000000..df3344290f
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset.go
@@ -0,0 +1,178 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StackSet AWS CloudFormation Resource (AWS::CloudFormation::StackSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html
+type StackSet struct {
+
+ // AdministrationRoleARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-administrationrolearn
+ AdministrationRoleARN *types.Value `json:"AdministrationRoleARN,omitempty"`
+
+ // AutoDeployment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-autodeployment
+ AutoDeployment *StackSet_AutoDeployment `json:"AutoDeployment,omitempty"`
+
+ // CallAs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-callas
+ CallAs *types.Value `json:"CallAs,omitempty"`
+
+ // Capabilities AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-capabilities
+ Capabilities *types.Value `json:"Capabilities,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // ExecutionRoleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-executionrolename
+ ExecutionRoleName *types.Value `json:"ExecutionRoleName,omitempty"`
+
+ // ManagedExecution AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-managedexecution
+ ManagedExecution interface{} `json:"ManagedExecution,omitempty"`
+
+ // OperationPreferences AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-operationpreferences
+ OperationPreferences *StackSet_OperationPreferences `json:"OperationPreferences,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-parameters
+ Parameters []StackSet_Parameter `json:"Parameters,omitempty"`
+
+ // PermissionModel AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-permissionmodel
+ PermissionModel *types.Value `json:"PermissionModel,omitempty"`
+
+ // StackInstancesGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-stackinstancesgroup
+ StackInstancesGroup []StackSet_StackInstances `json:"StackInstancesGroup,omitempty"`
+
+ // StackSetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-stacksetname
+ StackSetName *types.Value `json:"StackSetName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-tags
+ Tags []Tag `json:"Tags,omitempty"`
+
+ // TemplateBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-templatebody
+ TemplateBody *types.Value `json:"TemplateBody,omitempty"`
+
+ // TemplateURL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html#cfn-cloudformation-stackset-templateurl
+ TemplateURL *types.Value `json:"TemplateURL,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StackSet) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::StackSet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StackSet) MarshalJSON() ([]byte, error) {
+ type Properties StackSet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StackSet) UnmarshalJSON(b []byte) error {
+ type Properties StackSet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StackSet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_autodeployment.go b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_autodeployment.go
new file mode 100644
index 0000000000..fcf0bca65c
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_autodeployment.go
@@ -0,0 +1,42 @@
+package cloudformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StackSet_AutoDeployment AWS CloudFormation Resource (AWS::CloudFormation::StackSet.AutoDeployment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html
+type StackSet_AutoDeployment struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html#cfn-cloudformation-stackset-autodeployment-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // RetainStacksOnAccountRemoval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html#cfn-cloudformation-stackset-autodeployment-retainstacksonaccountremoval
+ RetainStacksOnAccountRemoval *types.Value `json:"RetainStacksOnAccountRemoval,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StackSet_AutoDeployment) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::StackSet.AutoDeployment"
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go
new file mode 100644
index 0000000000..9f1453c798
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_deploymenttargets.go
@@ -0,0 +1,42 @@
+package cloudformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StackSet_DeploymentTargets AWS CloudFormation Resource (AWS::CloudFormation::StackSet.DeploymentTargets)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html
+type StackSet_DeploymentTargets struct {
+
+ // Accounts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-accounts
+ Accounts *types.Value `json:"Accounts,omitempty"`
+
+ // OrganizationalUnitIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html#cfn-cloudformation-stackset-deploymenttargets-organizationalunitids
+ OrganizationalUnitIds *types.Value `json:"OrganizationalUnitIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StackSet_DeploymentTargets) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::StackSet.DeploymentTargets"
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_operationpreferences.go b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_operationpreferences.go
new file mode 100644
index 0000000000..6fa91d3198
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_operationpreferences.go
@@ -0,0 +1,62 @@
+package cloudformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StackSet_OperationPreferences AWS CloudFormation Resource (AWS::CloudFormation::StackSet.OperationPreferences)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html
+type StackSet_OperationPreferences struct {
+
+ // FailureToleranceCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-failuretolerancecount
+ FailureToleranceCount *types.Value `json:"FailureToleranceCount,omitempty"`
+
+ // FailureTolerancePercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-failuretolerancepercentage
+ FailureTolerancePercentage *types.Value `json:"FailureTolerancePercentage,omitempty"`
+
+ // MaxConcurrentCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-maxconcurrentcount
+ MaxConcurrentCount *types.Value `json:"MaxConcurrentCount,omitempty"`
+
+ // MaxConcurrentPercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-maxconcurrentpercentage
+ MaxConcurrentPercentage *types.Value `json:"MaxConcurrentPercentage,omitempty"`
+
+ // RegionConcurrencyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-regionconcurrencytype
+ RegionConcurrencyType *types.Value `json:"RegionConcurrencyType,omitempty"`
+
+ // RegionOrder AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html#cfn-cloudformation-stackset-operationpreferences-regionorder
+ RegionOrder *types.Value `json:"RegionOrder,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StackSet_OperationPreferences) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::StackSet.OperationPreferences"
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_parameter.go b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_parameter.go
new file mode 100644
index 0000000000..effa6e503d
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_parameter.go
@@ -0,0 +1,42 @@
+package cloudformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StackSet_Parameter AWS CloudFormation Resource (AWS::CloudFormation::StackSet.Parameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html
+type StackSet_Parameter struct {
+
+ // ParameterKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html#cfn-cloudformation-stackset-parameter-parameterkey
+ ParameterKey *types.Value `json:"ParameterKey,omitempty"`
+
+ // ParameterValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html#cfn-cloudformation-stackset-parameter-parametervalue
+ ParameterValue *types.Value `json:"ParameterValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StackSet_Parameter) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::StackSet.Parameter"
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_stackinstances.go b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_stackinstances.go
new file mode 100644
index 0000000000..c341cae8d1
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-stackset_stackinstances.go
@@ -0,0 +1,47 @@
+package cloudformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StackSet_StackInstances AWS CloudFormation Resource (AWS::CloudFormation::StackSet.StackInstances)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html
+type StackSet_StackInstances struct {
+
+ // DeploymentTargets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-deploymenttargets
+ DeploymentTargets *StackSet_DeploymentTargets `json:"DeploymentTargets,omitempty"`
+
+ // ParameterOverrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-parameteroverrides
+ ParameterOverrides []StackSet_Parameter `json:"ParameterOverrides,omitempty"`
+
+ // Regions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-regions
+ Regions *types.Value `json:"Regions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StackSet_StackInstances) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::StackSet.StackInstances"
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-typeactivation.go b/goformation/cloudformation/cloudformation/aws-cloudformation-typeactivation.go
new file mode 100644
index 0000000000..8dc6552969
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-typeactivation.go
@@ -0,0 +1,153 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TypeActivation AWS CloudFormation Resource (AWS::CloudFormation::TypeActivation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html
+type TypeActivation struct {
+
+ // AutoUpdate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-autoupdate
+ AutoUpdate *types.Value `json:"AutoUpdate,omitempty"`
+
+ // ExecutionRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-executionrolearn
+ ExecutionRoleArn *types.Value `json:"ExecutionRoleArn,omitempty"`
+
+ // LoggingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-loggingconfig
+ LoggingConfig *TypeActivation_LoggingConfig `json:"LoggingConfig,omitempty"`
+
+ // MajorVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-majorversion
+ MajorVersion *types.Value `json:"MajorVersion,omitempty"`
+
+ // PublicTypeArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-publictypearn
+ PublicTypeArn *types.Value `json:"PublicTypeArn,omitempty"`
+
+ // PublisherId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-publisherid
+ PublisherId *types.Value `json:"PublisherId,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // TypeName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-typename
+ TypeName *types.Value `json:"TypeName,omitempty"`
+
+ // TypeNameAlias AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-typenamealias
+ TypeNameAlias *types.Value `json:"TypeNameAlias,omitempty"`
+
+ // VersionBump AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html#cfn-cloudformation-typeactivation-versionbump
+ VersionBump *types.Value `json:"VersionBump,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TypeActivation) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::TypeActivation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TypeActivation) MarshalJSON() ([]byte, error) {
+ type Properties TypeActivation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TypeActivation) UnmarshalJSON(b []byte) error {
+ type Properties TypeActivation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TypeActivation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-typeactivation_loggingconfig.go b/goformation/cloudformation/cloudformation/aws-cloudformation-typeactivation_loggingconfig.go
new file mode 100644
index 0000000000..06d4002047
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-typeactivation_loggingconfig.go
@@ -0,0 +1,42 @@
+package cloudformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TypeActivation_LoggingConfig AWS CloudFormation Resource (AWS::CloudFormation::TypeActivation.LoggingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html
+type TypeActivation_LoggingConfig struct {
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html#cfn-cloudformation-typeactivation-loggingconfig-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // LogRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html#cfn-cloudformation-typeactivation-loggingconfig-logrolearn
+ LogRoleArn *types.Value `json:"LogRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TypeActivation_LoggingConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::TypeActivation.LoggingConfig"
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-waitcondition.go b/goformation/cloudformation/cloudformation/aws-cloudformation-waitcondition.go
new file mode 100644
index 0000000000..13ce6e89b4
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-waitcondition.go
@@ -0,0 +1,131 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WaitCondition AWS CloudFormation Resource (AWS::CloudFormation::WaitCondition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html
+type WaitCondition struct {
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // Handle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-handle
+ Handle *types.Value `json:"Handle,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html#cfn-waitcondition-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationCreationPolicy represents a CloudFormation CreationPolicy
+ AWSCloudFormationCreationPolicy *policies.CreationPolicy `json:"-"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WaitCondition) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::WaitCondition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r WaitCondition) MarshalJSON() ([]byte, error) {
+ type Properties WaitCondition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+
+ CreationPolicy *policies.CreationPolicy `json:"CreationPolicy,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+
+ CreationPolicy: r.AWSCloudFormationCreationPolicy,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *WaitCondition) UnmarshalJSON(b []byte) error {
+ type Properties WaitCondition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+
+ CreationPolicy *policies.CreationPolicy
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = WaitCondition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ if res.CreationPolicy != nil {
+ r.AWSCloudFormationCreationPolicy = res.CreationPolicy
+ }
+
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/aws-cloudformation-waitconditionhandle.go b/goformation/cloudformation/cloudformation/aws-cloudformation-waitconditionhandle.go
new file mode 100644
index 0000000000..0d595f2677
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/aws-cloudformation-waitconditionhandle.go
@@ -0,0 +1,101 @@
+package cloudformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WaitConditionHandle AWS CloudFormation Resource (AWS::CloudFormation::WaitConditionHandle)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html
+type WaitConditionHandle struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WaitConditionHandle) AWSCloudFormationType() string {
+ return "AWS::CloudFormation::WaitConditionHandle"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r WaitConditionHandle) MarshalJSON() ([]byte, error) {
+ type Properties WaitConditionHandle
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *WaitConditionHandle) UnmarshalJSON(b []byte) error {
+ type Properties WaitConditionHandle
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = WaitConditionHandle(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudformation/tag.go b/goformation/cloudformation/cloudformation/tag.go
new file mode 100644
index 0000000000..4e4a001af2
--- /dev/null
+++ b/goformation/cloudformation/cloudformation/tag.go
@@ -0,0 +1,42 @@
+package cloudformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Tag AWS CloudFormation Resource (Tag)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
+type Tag struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html#cfn-resource-tags-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Tag) AWSCloudFormationType() string {
+ return "Tag"
+}
diff --git a/goformation/cloudformation/cloudformation_suite_test.go b/goformation/cloudformation/cloudformation_suite_test.go
new file mode 100644
index 0000000000..392ec5974e
--- /dev/null
+++ b/goformation/cloudformation/cloudformation_suite_test.go
@@ -0,0 +1,13 @@
+package cloudformation_test
+
+import (
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+
+ "testing"
+)
+
+func TestCloudformation(t *testing.T) {
+ RegisterFailHandler(Fail)
+ RunSpecs(t, "Cloudformation Suite")
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy.go b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy.go
new file mode 100644
index 0000000000..2a04ed7f18
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy.go
@@ -0,0 +1,106 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CachePolicy AWS CloudFormation Resource (AWS::CloudFront::CachePolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cachepolicy.html
+type CachePolicy struct {
+
+ // CachePolicyConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cachepolicy.html#cfn-cloudfront-cachepolicy-cachepolicyconfig
+ CachePolicyConfig *CachePolicy_CachePolicyConfig `json:"CachePolicyConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CachePolicy) AWSCloudFormationType() string {
+ return "AWS::CloudFront::CachePolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CachePolicy) MarshalJSON() ([]byte, error) {
+ type Properties CachePolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CachePolicy) UnmarshalJSON(b []byte) error {
+ type Properties CachePolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CachePolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_cachepolicyconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_cachepolicyconfig.go
new file mode 100644
index 0000000000..b73c09dac1
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_cachepolicyconfig.go
@@ -0,0 +1,62 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CachePolicy_CachePolicyConfig AWS CloudFormation Resource (AWS::CloudFront::CachePolicy.CachePolicyConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html
+type CachePolicy_CachePolicyConfig struct {
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // DefaultTTL AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-defaultttl
+ DefaultTTL *types.Value `json:"DefaultTTL"`
+
+ // MaxTTL AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-maxttl
+ MaxTTL *types.Value `json:"MaxTTL"`
+
+ // MinTTL AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-minttl
+ MinTTL *types.Value `json:"MinTTL"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ParametersInCacheKeyAndForwardedToOrigin AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-parametersincachekeyandforwardedtoorigin
+ ParametersInCacheKeyAndForwardedToOrigin *CachePolicy_ParametersInCacheKeyAndForwardedToOrigin `json:"ParametersInCacheKeyAndForwardedToOrigin,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CachePolicy_CachePolicyConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::CachePolicy.CachePolicyConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_cookiesconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_cookiesconfig.go
new file mode 100644
index 0000000000..4d3e021d0b
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_cookiesconfig.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CachePolicy_CookiesConfig AWS CloudFormation Resource (AWS::CloudFront::CachePolicy.CookiesConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html
+type CachePolicy_CookiesConfig struct {
+
+ // CookieBehavior AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html#cfn-cloudfront-cachepolicy-cookiesconfig-cookiebehavior
+ CookieBehavior *types.Value `json:"CookieBehavior,omitempty"`
+
+ // Cookies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cookiesconfig.html#cfn-cloudfront-cachepolicy-cookiesconfig-cookies
+ Cookies *types.Value `json:"Cookies,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CachePolicy_CookiesConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::CachePolicy.CookiesConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_headersconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_headersconfig.go
new file mode 100644
index 0000000000..4991cad5a1
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_headersconfig.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CachePolicy_HeadersConfig AWS CloudFormation Resource (AWS::CloudFront::CachePolicy.HeadersConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html
+type CachePolicy_HeadersConfig struct {
+
+ // HeaderBehavior AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html#cfn-cloudfront-cachepolicy-headersconfig-headerbehavior
+ HeaderBehavior *types.Value `json:"HeaderBehavior,omitempty"`
+
+ // Headers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-headersconfig.html#cfn-cloudfront-cachepolicy-headersconfig-headers
+ Headers *types.Value `json:"Headers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CachePolicy_HeadersConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::CachePolicy.HeadersConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_parametersincachekeyandforwardedtoorigin.go b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_parametersincachekeyandforwardedtoorigin.go
new file mode 100644
index 0000000000..d1b1b6fa13
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_parametersincachekeyandforwardedtoorigin.go
@@ -0,0 +1,57 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CachePolicy_ParametersInCacheKeyAndForwardedToOrigin AWS CloudFormation Resource (AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html
+type CachePolicy_ParametersInCacheKeyAndForwardedToOrigin struct {
+
+ // CookiesConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-cookiesconfig
+ CookiesConfig *CachePolicy_CookiesConfig `json:"CookiesConfig,omitempty"`
+
+ // EnableAcceptEncodingBrotli AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-enableacceptencodingbrotli
+ EnableAcceptEncodingBrotli *types.Value `json:"EnableAcceptEncodingBrotli,omitempty"`
+
+ // EnableAcceptEncodingGzip AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-enableacceptencodinggzip
+ EnableAcceptEncodingGzip *types.Value `json:"EnableAcceptEncodingGzip"`
+
+ // HeadersConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-headersconfig
+ HeadersConfig *CachePolicy_HeadersConfig `json:"HeadersConfig,omitempty"`
+
+ // QueryStringsConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin.html#cfn-cloudfront-cachepolicy-parametersincachekeyandforwardedtoorigin-querystringsconfig
+ QueryStringsConfig *CachePolicy_QueryStringsConfig `json:"QueryStringsConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CachePolicy_ParametersInCacheKeyAndForwardedToOrigin) AWSCloudFormationType() string {
+ return "AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_querystringsconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_querystringsconfig.go
new file mode 100644
index 0000000000..5b8df2372d
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-cachepolicy_querystringsconfig.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CachePolicy_QueryStringsConfig AWS CloudFormation Resource (AWS::CloudFront::CachePolicy.QueryStringsConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html
+type CachePolicy_QueryStringsConfig struct {
+
+ // QueryStringBehavior AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html#cfn-cloudfront-cachepolicy-querystringsconfig-querystringbehavior
+ QueryStringBehavior *types.Value `json:"QueryStringBehavior,omitempty"`
+
+ // QueryStrings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-querystringsconfig.html#cfn-cloudfront-cachepolicy-querystringsconfig-querystrings
+ QueryStrings *types.Value `json:"QueryStrings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CachePolicy_QueryStringsConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::CachePolicy.QueryStringsConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-cloudfrontoriginaccessidentity.go b/goformation/cloudformation/cloudfront/aws-cloudfront-cloudfrontoriginaccessidentity.go
new file mode 100644
index 0000000000..3958c7840b
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-cloudfrontoriginaccessidentity.go
@@ -0,0 +1,106 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CloudFrontOriginAccessIdentity AWS CloudFormation Resource (AWS::CloudFront::CloudFrontOriginAccessIdentity)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html
+type CloudFrontOriginAccessIdentity struct {
+
+ // CloudFrontOriginAccessIdentityConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html#cfn-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig
+ CloudFrontOriginAccessIdentityConfig *CloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfig `json:"CloudFrontOriginAccessIdentityConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CloudFrontOriginAccessIdentity) AWSCloudFormationType() string {
+ return "AWS::CloudFront::CloudFrontOriginAccessIdentity"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CloudFrontOriginAccessIdentity) MarshalJSON() ([]byte, error) {
+ type Properties CloudFrontOriginAccessIdentity
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CloudFrontOriginAccessIdentity) UnmarshalJSON(b []byte) error {
+ type Properties CloudFrontOriginAccessIdentity
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CloudFrontOriginAccessIdentity(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go
new file mode 100644
index 0000000000..93f16a00c4
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-cloudfrontoriginaccessidentity_cloudfrontoriginaccessidentityconfig.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfig AWS CloudFormation Resource (AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html
+type CloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfig struct {
+
+ // Comment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html#cfn-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution.go
new file mode 100644
index 0000000000..409180d6f7
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution.go
@@ -0,0 +1,112 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution AWS CloudFormation Resource (AWS::CloudFront::Distribution)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html
+type Distribution struct {
+
+ // DistributionConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html#cfn-cloudfront-distribution-distributionconfig
+ DistributionConfig *Distribution_DistributionConfig `json:"DistributionConfig,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html#cfn-cloudfront-distribution-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Distribution) MarshalJSON() ([]byte, error) {
+ type Properties Distribution
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Distribution) UnmarshalJSON(b []byte) error {
+ type Properties Distribution
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Distribution(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go
new file mode 100644
index 0000000000..7add23e9ee
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_cachebehavior.go
@@ -0,0 +1,132 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_CacheBehavior AWS CloudFormation Resource (AWS::CloudFront::Distribution.CacheBehavior)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html
+type Distribution_CacheBehavior struct {
+
+ // AllowedMethods AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-allowedmethods
+ AllowedMethods *types.Value `json:"AllowedMethods,omitempty"`
+
+ // CachePolicyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-cachepolicyid
+ CachePolicyId *types.Value `json:"CachePolicyId,omitempty"`
+
+ // CachedMethods AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-cachedmethods
+ CachedMethods *types.Value `json:"CachedMethods,omitempty"`
+
+ // Compress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-compress
+ Compress *types.Value `json:"Compress,omitempty"`
+
+ // DefaultTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-defaultttl
+ DefaultTTL *types.Value `json:"DefaultTTL,omitempty"`
+
+ // FieldLevelEncryptionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-fieldlevelencryptionid
+ FieldLevelEncryptionId *types.Value `json:"FieldLevelEncryptionId,omitempty"`
+
+ // ForwardedValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-forwardedvalues
+ ForwardedValues *Distribution_ForwardedValues `json:"ForwardedValues,omitempty"`
+
+ // FunctionAssociations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-functionassociations
+ FunctionAssociations []Distribution_FunctionAssociation `json:"FunctionAssociations,omitempty"`
+
+ // LambdaFunctionAssociations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-lambdafunctionassociations
+ LambdaFunctionAssociations []Distribution_LambdaFunctionAssociation `json:"LambdaFunctionAssociations,omitempty"`
+
+ // MaxTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-maxttl
+ MaxTTL *types.Value `json:"MaxTTL,omitempty"`
+
+ // MinTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-minttl
+ MinTTL *types.Value `json:"MinTTL,omitempty"`
+
+ // OriginRequestPolicyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-originrequestpolicyid
+ OriginRequestPolicyId *types.Value `json:"OriginRequestPolicyId,omitempty"`
+
+ // PathPattern AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-pathpattern
+ PathPattern *types.Value `json:"PathPattern,omitempty"`
+
+ // RealtimeLogConfigArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-realtimelogconfigarn
+ RealtimeLogConfigArn *types.Value `json:"RealtimeLogConfigArn,omitempty"`
+
+ // ResponseHeadersPolicyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-responseheaderspolicyid
+ ResponseHeadersPolicyId *types.Value `json:"ResponseHeadersPolicyId,omitempty"`
+
+ // SmoothStreaming AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-smoothstreaming
+ SmoothStreaming *types.Value `json:"SmoothStreaming,omitempty"`
+
+ // TargetOriginId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-targetoriginid
+ TargetOriginId *types.Value `json:"TargetOriginId,omitempty"`
+
+ // TrustedKeyGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-trustedkeygroups
+ TrustedKeyGroups *types.Value `json:"TrustedKeyGroups,omitempty"`
+
+ // TrustedSigners AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-trustedsigners
+ TrustedSigners *types.Value `json:"TrustedSigners,omitempty"`
+
+ // ViewerProtocolPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cachebehavior.html#cfn-cloudfront-distribution-cachebehavior-viewerprotocolpolicy
+ ViewerProtocolPolicy *types.Value `json:"ViewerProtocolPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_CacheBehavior) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.CacheBehavior"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_cookies.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_cookies.go
new file mode 100644
index 0000000000..a418fa2cd2
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_cookies.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_Cookies AWS CloudFormation Resource (AWS::CloudFront::Distribution.Cookies)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html
+type Distribution_Cookies struct {
+
+ // Forward AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html#cfn-cloudfront-distribution-cookies-forward
+ Forward *types.Value `json:"Forward,omitempty"`
+
+ // WhitelistedNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-cookies.html#cfn-cloudfront-distribution-cookies-whitelistednames
+ WhitelistedNames *types.Value `json:"WhitelistedNames,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_Cookies) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.Cookies"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_customerrorresponse.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_customerrorresponse.go
new file mode 100644
index 0000000000..afc3048473
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_customerrorresponse.go
@@ -0,0 +1,52 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_CustomErrorResponse AWS CloudFormation Resource (AWS::CloudFront::Distribution.CustomErrorResponse)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html
+type Distribution_CustomErrorResponse struct {
+
+ // ErrorCachingMinTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html#cfn-cloudfront-distribution-customerrorresponse-errorcachingminttl
+ ErrorCachingMinTTL *types.Value `json:"ErrorCachingMinTTL,omitempty"`
+
+ // ErrorCode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html#cfn-cloudfront-distribution-customerrorresponse-errorcode
+ ErrorCode *types.Value `json:"ErrorCode"`
+
+ // ResponseCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html#cfn-cloudfront-distribution-customerrorresponse-responsecode
+ ResponseCode *types.Value `json:"ResponseCode,omitempty"`
+
+ // ResponsePagePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customerrorresponse.html#cfn-cloudfront-distribution-customerrorresponse-responsepagepath
+ ResponsePagePath *types.Value `json:"ResponsePagePath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_CustomErrorResponse) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.CustomErrorResponse"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_customoriginconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_customoriginconfig.go
new file mode 100644
index 0000000000..209b0e60c9
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_customoriginconfig.go
@@ -0,0 +1,62 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_CustomOriginConfig AWS CloudFormation Resource (AWS::CloudFront::Distribution.CustomOriginConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html
+type Distribution_CustomOriginConfig struct {
+
+ // HTTPPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-httpport
+ HTTPPort *types.Value `json:"HTTPPort,omitempty"`
+
+ // HTTPSPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-httpsport
+ HTTPSPort *types.Value `json:"HTTPSPort,omitempty"`
+
+ // OriginKeepaliveTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-originkeepalivetimeout
+ OriginKeepaliveTimeout *types.Value `json:"OriginKeepaliveTimeout,omitempty"`
+
+ // OriginProtocolPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-originprotocolpolicy
+ OriginProtocolPolicy *types.Value `json:"OriginProtocolPolicy,omitempty"`
+
+ // OriginReadTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-originreadtimeout
+ OriginReadTimeout *types.Value `json:"OriginReadTimeout,omitempty"`
+
+ // OriginSSLProtocols AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-customoriginconfig.html#cfn-cloudfront-distribution-customoriginconfig-originsslprotocols
+ OriginSSLProtocols *types.Value `json:"OriginSSLProtocols,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_CustomOriginConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.CustomOriginConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go
new file mode 100644
index 0000000000..92c17040eb
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_defaultcachebehavior.go
@@ -0,0 +1,127 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_DefaultCacheBehavior AWS CloudFormation Resource (AWS::CloudFront::Distribution.DefaultCacheBehavior)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html
+type Distribution_DefaultCacheBehavior struct {
+
+ // AllowedMethods AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-allowedmethods
+ AllowedMethods *types.Value `json:"AllowedMethods,omitempty"`
+
+ // CachePolicyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-cachepolicyid
+ CachePolicyId *types.Value `json:"CachePolicyId,omitempty"`
+
+ // CachedMethods AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-cachedmethods
+ CachedMethods *types.Value `json:"CachedMethods,omitempty"`
+
+ // Compress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-compress
+ Compress *types.Value `json:"Compress,omitempty"`
+
+ // DefaultTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-defaultttl
+ DefaultTTL *types.Value `json:"DefaultTTL,omitempty"`
+
+ // FieldLevelEncryptionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-fieldlevelencryptionid
+ FieldLevelEncryptionId *types.Value `json:"FieldLevelEncryptionId,omitempty"`
+
+ // ForwardedValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-forwardedvalues
+ ForwardedValues *Distribution_ForwardedValues `json:"ForwardedValues,omitempty"`
+
+ // FunctionAssociations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-functionassociations
+ FunctionAssociations []Distribution_FunctionAssociation `json:"FunctionAssociations,omitempty"`
+
+ // LambdaFunctionAssociations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-lambdafunctionassociations
+ LambdaFunctionAssociations []Distribution_LambdaFunctionAssociation `json:"LambdaFunctionAssociations,omitempty"`
+
+ // MaxTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-maxttl
+ MaxTTL *types.Value `json:"MaxTTL,omitempty"`
+
+ // MinTTL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-minttl
+ MinTTL *types.Value `json:"MinTTL,omitempty"`
+
+ // OriginRequestPolicyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-originrequestpolicyid
+ OriginRequestPolicyId *types.Value `json:"OriginRequestPolicyId,omitempty"`
+
+ // RealtimeLogConfigArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-realtimelogconfigarn
+ RealtimeLogConfigArn *types.Value `json:"RealtimeLogConfigArn,omitempty"`
+
+ // ResponseHeadersPolicyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-responseheaderspolicyid
+ ResponseHeadersPolicyId *types.Value `json:"ResponseHeadersPolicyId,omitempty"`
+
+ // SmoothStreaming AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-smoothstreaming
+ SmoothStreaming *types.Value `json:"SmoothStreaming,omitempty"`
+
+ // TargetOriginId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-targetoriginid
+ TargetOriginId *types.Value `json:"TargetOriginId,omitempty"`
+
+ // TrustedKeyGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-trustedkeygroups
+ TrustedKeyGroups *types.Value `json:"TrustedKeyGroups,omitempty"`
+
+ // TrustedSigners AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-trustedsigners
+ TrustedSigners *types.Value `json:"TrustedSigners,omitempty"`
+
+ // ViewerProtocolPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-defaultcachebehavior.html#cfn-cloudfront-distribution-defaultcachebehavior-viewerprotocolpolicy
+ ViewerProtocolPolicy *types.Value `json:"ViewerProtocolPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_DefaultCacheBehavior) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.DefaultCacheBehavior"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_distributionconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_distributionconfig.go
new file mode 100644
index 0000000000..c8822461d9
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_distributionconfig.go
@@ -0,0 +1,127 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_DistributionConfig AWS CloudFormation Resource (AWS::CloudFront::Distribution.DistributionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html
+type Distribution_DistributionConfig struct {
+
+ // Aliases AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-aliases
+ Aliases *types.Value `json:"Aliases,omitempty"`
+
+ // CNAMEs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-cnames
+ CNAMEs *types.Value `json:"CNAMEs,omitempty"`
+
+ // CacheBehaviors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-cachebehaviors
+ CacheBehaviors []Distribution_CacheBehavior `json:"CacheBehaviors,omitempty"`
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // CustomErrorResponses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-customerrorresponses
+ CustomErrorResponses []Distribution_CustomErrorResponse `json:"CustomErrorResponses,omitempty"`
+
+ // CustomOrigin AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-customorigin
+ CustomOrigin *Distribution_LegacyCustomOrigin `json:"CustomOrigin,omitempty"`
+
+ // DefaultCacheBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-defaultcachebehavior
+ DefaultCacheBehavior *Distribution_DefaultCacheBehavior `json:"DefaultCacheBehavior,omitempty"`
+
+ // DefaultRootObject AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-defaultrootobject
+ DefaultRootObject *types.Value `json:"DefaultRootObject,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // HttpVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-httpversion
+ HttpVersion *types.Value `json:"HttpVersion,omitempty"`
+
+ // IPV6Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-ipv6enabled
+ IPV6Enabled *types.Value `json:"IPV6Enabled,omitempty"`
+
+ // Logging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-logging
+ Logging *Distribution_Logging `json:"Logging,omitempty"`
+
+ // OriginGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-origingroups
+ OriginGroups *Distribution_OriginGroups `json:"OriginGroups,omitempty"`
+
+ // Origins AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-origins
+ Origins []Distribution_Origin `json:"Origins,omitempty"`
+
+ // PriceClass AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-priceclass
+ PriceClass *types.Value `json:"PriceClass,omitempty"`
+
+ // Restrictions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions
+ Restrictions *Distribution_Restrictions `json:"Restrictions,omitempty"`
+
+ // S3Origin AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-s3origin
+ S3Origin *Distribution_LegacyS3Origin `json:"S3Origin,omitempty"`
+
+ // ViewerCertificate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-viewercertificate
+ ViewerCertificate *Distribution_ViewerCertificate `json:"ViewerCertificate,omitempty"`
+
+ // WebACLId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-webaclid
+ WebACLId *types.Value `json:"WebACLId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_DistributionConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.DistributionConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_forwardedvalues.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_forwardedvalues.go
new file mode 100644
index 0000000000..2b31e84732
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_forwardedvalues.go
@@ -0,0 +1,52 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_ForwardedValues AWS CloudFormation Resource (AWS::CloudFront::Distribution.ForwardedValues)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html
+type Distribution_ForwardedValues struct {
+
+ // Cookies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html#cfn-cloudfront-distribution-forwardedvalues-cookies
+ Cookies *Distribution_Cookies `json:"Cookies,omitempty"`
+
+ // Headers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html#cfn-cloudfront-distribution-forwardedvalues-headers
+ Headers *types.Value `json:"Headers,omitempty"`
+
+ // QueryString AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html#cfn-cloudfront-distribution-forwardedvalues-querystring
+ QueryString *types.Value `json:"QueryString"`
+
+ // QueryStringCacheKeys AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-forwardedvalues.html#cfn-cloudfront-distribution-forwardedvalues-querystringcachekeys
+ QueryStringCacheKeys *types.Value `json:"QueryStringCacheKeys,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_ForwardedValues) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.ForwardedValues"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_functionassociation.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_functionassociation.go
new file mode 100644
index 0000000000..178db1e833
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_functionassociation.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_FunctionAssociation AWS CloudFormation Resource (AWS::CloudFront::Distribution.FunctionAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html
+type Distribution_FunctionAssociation struct {
+
+ // EventType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html#cfn-cloudfront-distribution-functionassociation-eventtype
+ EventType *types.Value `json:"EventType,omitempty"`
+
+ // FunctionARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-functionassociation.html#cfn-cloudfront-distribution-functionassociation-functionarn
+ FunctionARN *types.Value `json:"FunctionARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_FunctionAssociation) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.FunctionAssociation"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_georestriction.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_georestriction.go
new file mode 100644
index 0000000000..fc1e811159
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_georestriction.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_GeoRestriction AWS CloudFormation Resource (AWS::CloudFront::Distribution.GeoRestriction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html
+type Distribution_GeoRestriction struct {
+
+ // Locations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html#cfn-cloudfront-distribution-georestriction-locations
+ Locations *types.Value `json:"Locations,omitempty"`
+
+ // RestrictionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-georestriction.html#cfn-cloudfront-distribution-georestriction-restrictiontype
+ RestrictionType *types.Value `json:"RestrictionType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_GeoRestriction) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.GeoRestriction"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_lambdafunctionassociation.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_lambdafunctionassociation.go
new file mode 100644
index 0000000000..e4967568e1
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_lambdafunctionassociation.go
@@ -0,0 +1,47 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_LambdaFunctionAssociation AWS CloudFormation Resource (AWS::CloudFront::Distribution.LambdaFunctionAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html
+type Distribution_LambdaFunctionAssociation struct {
+
+ // EventType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html#cfn-cloudfront-distribution-lambdafunctionassociation-eventtype
+ EventType *types.Value `json:"EventType,omitempty"`
+
+ // IncludeBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html#cfn-cloudfront-distribution-lambdafunctionassociation-includebody
+ IncludeBody *types.Value `json:"IncludeBody,omitempty"`
+
+ // LambdaFunctionARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-lambdafunctionassociation.html#cfn-cloudfront-distribution-lambdafunctionassociation-lambdafunctionarn
+ LambdaFunctionARN *types.Value `json:"LambdaFunctionARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_LambdaFunctionAssociation) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.LambdaFunctionAssociation"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_legacycustomorigin.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_legacycustomorigin.go
new file mode 100644
index 0000000000..4be68e24d8
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_legacycustomorigin.go
@@ -0,0 +1,57 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_LegacyCustomOrigin AWS CloudFormation Resource (AWS::CloudFront::Distribution.LegacyCustomOrigin)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html
+type Distribution_LegacyCustomOrigin struct {
+
+ // DNSName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-dnsname
+ DNSName *types.Value `json:"DNSName,omitempty"`
+
+ // HTTPPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-httpport
+ HTTPPort *types.Value `json:"HTTPPort,omitempty"`
+
+ // HTTPSPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-httpsport
+ HTTPSPort *types.Value `json:"HTTPSPort,omitempty"`
+
+ // OriginProtocolPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-originprotocolpolicy
+ OriginProtocolPolicy *types.Value `json:"OriginProtocolPolicy,omitempty"`
+
+ // OriginSSLProtocols AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacycustomorigin.html#cfn-cloudfront-distribution-legacycustomorigin-originsslprotocols
+ OriginSSLProtocols *types.Value `json:"OriginSSLProtocols,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_LegacyCustomOrigin) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.LegacyCustomOrigin"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_legacys3origin.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_legacys3origin.go
new file mode 100644
index 0000000000..86e56b33dc
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_legacys3origin.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_LegacyS3Origin AWS CloudFormation Resource (AWS::CloudFront::Distribution.LegacyS3Origin)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html
+type Distribution_LegacyS3Origin struct {
+
+ // DNSName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html#cfn-cloudfront-distribution-legacys3origin-dnsname
+ DNSName *types.Value `json:"DNSName,omitempty"`
+
+ // OriginAccessIdentity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-legacys3origin.html#cfn-cloudfront-distribution-legacys3origin-originaccessidentity
+ OriginAccessIdentity *types.Value `json:"OriginAccessIdentity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_LegacyS3Origin) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.LegacyS3Origin"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_logging.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_logging.go
new file mode 100644
index 0000000000..a390f901a2
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_logging.go
@@ -0,0 +1,47 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_Logging AWS CloudFormation Resource (AWS::CloudFront::Distribution.Logging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html
+type Distribution_Logging struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html#cfn-cloudfront-distribution-logging-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // IncludeCookies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html#cfn-cloudfront-distribution-logging-includecookies
+ IncludeCookies *types.Value `json:"IncludeCookies,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-logging.html#cfn-cloudfront-distribution-logging-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_Logging) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.Logging"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go
new file mode 100644
index 0000000000..852c227705
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origin.go
@@ -0,0 +1,77 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_Origin AWS CloudFormation Resource (AWS::CloudFront::Distribution.Origin)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html
+type Distribution_Origin struct {
+
+ // ConnectionAttempts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-connectionattempts
+ ConnectionAttempts *types.Value `json:"ConnectionAttempts,omitempty"`
+
+ // ConnectionTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-connectiontimeout
+ ConnectionTimeout *types.Value `json:"ConnectionTimeout,omitempty"`
+
+ // CustomOriginConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-customoriginconfig
+ CustomOriginConfig *Distribution_CustomOriginConfig `json:"CustomOriginConfig,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // OriginCustomHeaders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-origincustomheaders
+ OriginCustomHeaders []Distribution_OriginCustomHeader `json:"OriginCustomHeaders,omitempty"`
+
+ // OriginPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originpath
+ OriginPath *types.Value `json:"OriginPath,omitempty"`
+
+ // OriginShield AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originshield
+ OriginShield *Distribution_OriginShield `json:"OriginShield,omitempty"`
+
+ // S3OriginConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-s3originconfig
+ S3OriginConfig *Distribution_S3OriginConfig `json:"S3OriginConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_Origin) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.Origin"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origincustomheader.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origincustomheader.go
new file mode 100644
index 0000000000..f088f71c3e
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origincustomheader.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_OriginCustomHeader AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginCustomHeader)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html
+type Distribution_OriginCustomHeader struct {
+
+ // HeaderName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html#cfn-cloudfront-distribution-origincustomheader-headername
+ HeaderName *types.Value `json:"HeaderName,omitempty"`
+
+ // HeaderValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origincustomheader.html#cfn-cloudfront-distribution-origincustomheader-headervalue
+ HeaderValue *types.Value `json:"HeaderValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_OriginCustomHeader) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.OriginCustomHeader"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroup.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroup.go
new file mode 100644
index 0000000000..9e0af659cc
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroup.go
@@ -0,0 +1,47 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_OriginGroup AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html
+type Distribution_OriginGroup struct {
+
+ // FailoverCriteria AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html#cfn-cloudfront-distribution-origingroup-failovercriteria
+ FailoverCriteria *Distribution_OriginGroupFailoverCriteria `json:"FailoverCriteria,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html#cfn-cloudfront-distribution-origingroup-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Members AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroup.html#cfn-cloudfront-distribution-origingroup-members
+ Members *Distribution_OriginGroupMembers `json:"Members,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_OriginGroup) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.OriginGroup"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupfailovercriteria.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupfailovercriteria.go
new file mode 100644
index 0000000000..9e213dabb6
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupfailovercriteria.go
@@ -0,0 +1,35 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_OriginGroupFailoverCriteria AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginGroupFailoverCriteria)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupfailovercriteria.html
+type Distribution_OriginGroupFailoverCriteria struct {
+
+ // StatusCodes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupfailovercriteria.html#cfn-cloudfront-distribution-origingroupfailovercriteria-statuscodes
+ StatusCodes *Distribution_StatusCodes `json:"StatusCodes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_OriginGroupFailoverCriteria) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.OriginGroupFailoverCriteria"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupmember.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupmember.go
new file mode 100644
index 0000000000..31d578c2ac
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupmember.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_OriginGroupMember AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginGroupMember)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmember.html
+type Distribution_OriginGroupMember struct {
+
+ // OriginId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmember.html#cfn-cloudfront-distribution-origingroupmember-originid
+ OriginId *types.Value `json:"OriginId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_OriginGroupMember) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.OriginGroupMember"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupmembers.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupmembers.go
new file mode 100644
index 0000000000..1d4beb19dc
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroupmembers.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_OriginGroupMembers AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginGroupMembers)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html
+type Distribution_OriginGroupMembers struct {
+
+ // Items AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html#cfn-cloudfront-distribution-origingroupmembers-items
+ Items []Distribution_OriginGroupMember `json:"Items,omitempty"`
+
+ // Quantity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html#cfn-cloudfront-distribution-origingroupmembers-quantity
+ Quantity *types.Value `json:"Quantity"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_OriginGroupMembers) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.OriginGroupMembers"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroups.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroups.go
new file mode 100644
index 0000000000..56836b3bdb
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_origingroups.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_OriginGroups AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginGroups)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html
+type Distribution_OriginGroups struct {
+
+ // Items AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html#cfn-cloudfront-distribution-origingroups-items
+ Items []Distribution_OriginGroup `json:"Items,omitempty"`
+
+ // Quantity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html#cfn-cloudfront-distribution-origingroups-quantity
+ Quantity *types.Value `json:"Quantity"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_OriginGroups) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.OriginGroups"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_originshield.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_originshield.go
new file mode 100644
index 0000000000..142ae2866f
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_originshield.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_OriginShield AWS CloudFormation Resource (AWS::CloudFront::Distribution.OriginShield)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html
+type Distribution_OriginShield struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // OriginShieldRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-originshieldregion
+ OriginShieldRegion *types.Value `json:"OriginShieldRegion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_OriginShield) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.OriginShield"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_restrictions.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_restrictions.go
new file mode 100644
index 0000000000..a209c2f81b
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_restrictions.go
@@ -0,0 +1,35 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_Restrictions AWS CloudFormation Resource (AWS::CloudFront::Distribution.Restrictions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html
+type Distribution_Restrictions struct {
+
+ // GeoRestriction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html#cfn-cloudfront-distribution-restrictions-georestriction
+ GeoRestriction *Distribution_GeoRestriction `json:"GeoRestriction,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_Restrictions) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.Restrictions"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_s3originconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_s3originconfig.go
new file mode 100644
index 0000000000..2cf860e8c3
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_s3originconfig.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_S3OriginConfig AWS CloudFormation Resource (AWS::CloudFront::Distribution.S3OriginConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html
+type Distribution_S3OriginConfig struct {
+
+ // OriginAccessIdentity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html#cfn-cloudfront-distribution-s3originconfig-originaccessidentity
+ OriginAccessIdentity *types.Value `json:"OriginAccessIdentity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_S3OriginConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.S3OriginConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_statuscodes.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_statuscodes.go
new file mode 100644
index 0000000000..9fff7960d0
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_statuscodes.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_StatusCodes AWS CloudFormation Resource (AWS::CloudFront::Distribution.StatusCodes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html
+type Distribution_StatusCodes struct {
+
+ // Items AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-items
+ Items *types.Value `json:"Items,omitempty"`
+
+ // Quantity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-quantity
+ Quantity *types.Value `json:"Quantity"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_StatusCodes) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.StatusCodes"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_viewercertificate.go b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_viewercertificate.go
new file mode 100644
index 0000000000..e1349390a7
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-distribution_viewercertificate.go
@@ -0,0 +1,57 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Distribution_ViewerCertificate AWS CloudFormation Resource (AWS::CloudFront::Distribution.ViewerCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html
+type Distribution_ViewerCertificate struct {
+
+ // AcmCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-acmcertificatearn
+ AcmCertificateArn *types.Value `json:"AcmCertificateArn,omitempty"`
+
+ // CloudFrontDefaultCertificate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-cloudfrontdefaultcertificate
+ CloudFrontDefaultCertificate *types.Value `json:"CloudFrontDefaultCertificate,omitempty"`
+
+ // IamCertificateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-iamcertificateid
+ IamCertificateId *types.Value `json:"IamCertificateId,omitempty"`
+
+ // MinimumProtocolVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-minimumprotocolversion
+ MinimumProtocolVersion *types.Value `json:"MinimumProtocolVersion,omitempty"`
+
+ // SslSupportMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-sslsupportmethod
+ SslSupportMethod *types.Value `json:"SslSupportMethod,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Distribution_ViewerCertificate) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Distribution.ViewerCertificate"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-function.go b/goformation/cloudformation/cloudfront/aws-cloudfront-function.go
new file mode 100644
index 0000000000..b3912450ac
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-function.go
@@ -0,0 +1,123 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function AWS CloudFormation Resource (AWS::CloudFront::Function)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html
+type Function struct {
+
+ // AutoPublish AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html#cfn-cloudfront-function-autopublish
+ AutoPublish *types.Value `json:"AutoPublish,omitempty"`
+
+ // FunctionCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html#cfn-cloudfront-function-functioncode
+ FunctionCode *types.Value `json:"FunctionCode,omitempty"`
+
+ // FunctionConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html#cfn-cloudfront-function-functionconfig
+ FunctionConfig *Function_FunctionConfig `json:"FunctionConfig,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-function.html#cfn-cloudfront-function-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Function"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Function) MarshalJSON() ([]byte, error) {
+ type Properties Function
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Function) UnmarshalJSON(b []byte) error {
+ type Properties Function
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Function(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-function_functionconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-function_functionconfig.go
new file mode 100644
index 0000000000..dafc87c5dd
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-function_functionconfig.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_FunctionConfig AWS CloudFormation Resource (AWS::CloudFront::Function.FunctionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-function-functionconfig.html
+type Function_FunctionConfig struct {
+
+ // Comment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-function-functionconfig.html#cfn-cloudfront-function-functionconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // Runtime AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-function-functionconfig.html#cfn-cloudfront-function-functionconfig-runtime
+ Runtime *types.Value `json:"Runtime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_FunctionConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Function.FunctionConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-function_functionmetadata.go b/goformation/cloudformation/cloudfront/aws-cloudfront-function_functionmetadata.go
new file mode 100644
index 0000000000..551ac07243
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-function_functionmetadata.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_FunctionMetadata AWS CloudFormation Resource (AWS::CloudFront::Function.FunctionMetadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-function-functionmetadata.html
+type Function_FunctionMetadata struct {
+
+ // FunctionARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-function-functionmetadata.html#cfn-cloudfront-function-functionmetadata-functionarn
+ FunctionARN *types.Value `json:"FunctionARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_FunctionMetadata) AWSCloudFormationType() string {
+ return "AWS::CloudFront::Function.FunctionMetadata"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-keygroup.go b/goformation/cloudformation/cloudfront/aws-cloudfront-keygroup.go
new file mode 100644
index 0000000000..fc04dfe197
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-keygroup.go
@@ -0,0 +1,106 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// KeyGroup AWS CloudFormation Resource (AWS::CloudFront::KeyGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html
+type KeyGroup struct {
+
+ // KeyGroupConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-keygroup.html#cfn-cloudfront-keygroup-keygroupconfig
+ KeyGroupConfig *KeyGroup_KeyGroupConfig `json:"KeyGroupConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *KeyGroup) AWSCloudFormationType() string {
+ return "AWS::CloudFront::KeyGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r KeyGroup) MarshalJSON() ([]byte, error) {
+ type Properties KeyGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *KeyGroup) UnmarshalJSON(b []byte) error {
+ type Properties KeyGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = KeyGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-keygroup_keygroupconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-keygroup_keygroupconfig.go
new file mode 100644
index 0000000000..0bf5f98ba1
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-keygroup_keygroupconfig.go
@@ -0,0 +1,47 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// KeyGroup_KeyGroupConfig AWS CloudFormation Resource (AWS::CloudFront::KeyGroup.KeyGroupConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html
+type KeyGroup_KeyGroupConfig struct {
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html#cfn-cloudfront-keygroup-keygroupconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // Items AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html#cfn-cloudfront-keygroup-keygroupconfig-items
+ Items *types.Value `json:"Items,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-keygroup-keygroupconfig.html#cfn-cloudfront-keygroup-keygroupconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *KeyGroup_KeyGroupConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::KeyGroup.KeyGroupConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy.go b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy.go
new file mode 100644
index 0000000000..10c8a22b31
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy.go
@@ -0,0 +1,106 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OriginRequestPolicy AWS CloudFormation Resource (AWS::CloudFront::OriginRequestPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originrequestpolicy.html
+type OriginRequestPolicy struct {
+
+ // OriginRequestPolicyConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originrequestpolicy.html#cfn-cloudfront-originrequestpolicy-originrequestpolicyconfig
+ OriginRequestPolicyConfig *OriginRequestPolicy_OriginRequestPolicyConfig `json:"OriginRequestPolicyConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OriginRequestPolicy) AWSCloudFormationType() string {
+ return "AWS::CloudFront::OriginRequestPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r OriginRequestPolicy) MarshalJSON() ([]byte, error) {
+ type Properties OriginRequestPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *OriginRequestPolicy) UnmarshalJSON(b []byte) error {
+ type Properties OriginRequestPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = OriginRequestPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_cookiesconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_cookiesconfig.go
new file mode 100644
index 0000000000..6a42512423
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_cookiesconfig.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OriginRequestPolicy_CookiesConfig AWS CloudFormation Resource (AWS::CloudFront::OriginRequestPolicy.CookiesConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-cookiesconfig.html
+type OriginRequestPolicy_CookiesConfig struct {
+
+ // CookieBehavior AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-cookiesconfig.html#cfn-cloudfront-originrequestpolicy-cookiesconfig-cookiebehavior
+ CookieBehavior *types.Value `json:"CookieBehavior,omitempty"`
+
+ // Cookies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-cookiesconfig.html#cfn-cloudfront-originrequestpolicy-cookiesconfig-cookies
+ Cookies *types.Value `json:"Cookies,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OriginRequestPolicy_CookiesConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::OriginRequestPolicy.CookiesConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_headersconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_headersconfig.go
new file mode 100644
index 0000000000..e2a7aaca9b
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_headersconfig.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OriginRequestPolicy_HeadersConfig AWS CloudFormation Resource (AWS::CloudFront::OriginRequestPolicy.HeadersConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-headersconfig.html
+type OriginRequestPolicy_HeadersConfig struct {
+
+ // HeaderBehavior AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-headersconfig.html#cfn-cloudfront-originrequestpolicy-headersconfig-headerbehavior
+ HeaderBehavior *types.Value `json:"HeaderBehavior,omitempty"`
+
+ // Headers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-headersconfig.html#cfn-cloudfront-originrequestpolicy-headersconfig-headers
+ Headers *types.Value `json:"Headers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OriginRequestPolicy_HeadersConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::OriginRequestPolicy.HeadersConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_originrequestpolicyconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_originrequestpolicyconfig.go
new file mode 100644
index 0000000000..5f9c5458c7
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_originrequestpolicyconfig.go
@@ -0,0 +1,57 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OriginRequestPolicy_OriginRequestPolicyConfig AWS CloudFormation Resource (AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html
+type OriginRequestPolicy_OriginRequestPolicyConfig struct {
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html#cfn-cloudfront-originrequestpolicy-originrequestpolicyconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // CookiesConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html#cfn-cloudfront-originrequestpolicy-originrequestpolicyconfig-cookiesconfig
+ CookiesConfig *OriginRequestPolicy_CookiesConfig `json:"CookiesConfig,omitempty"`
+
+ // HeadersConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html#cfn-cloudfront-originrequestpolicy-originrequestpolicyconfig-headersconfig
+ HeadersConfig *OriginRequestPolicy_HeadersConfig `json:"HeadersConfig,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html#cfn-cloudfront-originrequestpolicy-originrequestpolicyconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // QueryStringsConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-originrequestpolicyconfig.html#cfn-cloudfront-originrequestpolicy-originrequestpolicyconfig-querystringsconfig
+ QueryStringsConfig *OriginRequestPolicy_QueryStringsConfig `json:"QueryStringsConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OriginRequestPolicy_OriginRequestPolicyConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_querystringsconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_querystringsconfig.go
new file mode 100644
index 0000000000..60ac84178e
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-originrequestpolicy_querystringsconfig.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OriginRequestPolicy_QueryStringsConfig AWS CloudFormation Resource (AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-querystringsconfig.html
+type OriginRequestPolicy_QueryStringsConfig struct {
+
+ // QueryStringBehavior AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-querystringsconfig.html#cfn-cloudfront-originrequestpolicy-querystringsconfig-querystringbehavior
+ QueryStringBehavior *types.Value `json:"QueryStringBehavior,omitempty"`
+
+ // QueryStrings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originrequestpolicy-querystringsconfig.html#cfn-cloudfront-originrequestpolicy-querystringsconfig-querystrings
+ QueryStrings *types.Value `json:"QueryStrings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OriginRequestPolicy_QueryStringsConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-publickey.go b/goformation/cloudformation/cloudfront/aws-cloudfront-publickey.go
new file mode 100644
index 0000000000..edc62af62f
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-publickey.go
@@ -0,0 +1,106 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PublicKey AWS CloudFormation Resource (AWS::CloudFront::PublicKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html
+type PublicKey struct {
+
+ // PublicKeyConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-publickey.html#cfn-cloudfront-publickey-publickeyconfig
+ PublicKeyConfig *PublicKey_PublicKeyConfig `json:"PublicKeyConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PublicKey) AWSCloudFormationType() string {
+ return "AWS::CloudFront::PublicKey"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PublicKey) MarshalJSON() ([]byte, error) {
+ type Properties PublicKey
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PublicKey) UnmarshalJSON(b []byte) error {
+ type Properties PublicKey
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PublicKey(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-publickey_publickeyconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-publickey_publickeyconfig.go
new file mode 100644
index 0000000000..3081e17180
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-publickey_publickeyconfig.go
@@ -0,0 +1,52 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PublicKey_PublicKeyConfig AWS CloudFormation Resource (AWS::CloudFront::PublicKey.PublicKeyConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html
+type PublicKey_PublicKeyConfig struct {
+
+ // CallerReference AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-callerreference
+ CallerReference *types.Value `json:"CallerReference,omitempty"`
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // EncodedKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-encodedkey
+ EncodedKey *types.Value `json:"EncodedKey,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-publickey-publickeyconfig.html#cfn-cloudfront-publickey-publickeyconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PublicKey_PublicKeyConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::PublicKey.PublicKeyConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig.go
new file mode 100644
index 0000000000..5df6b5ad91
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig.go
@@ -0,0 +1,123 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RealtimeLogConfig AWS CloudFormation Resource (AWS::CloudFront::RealtimeLogConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html
+type RealtimeLogConfig struct {
+
+ // EndPoints AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html#cfn-cloudfront-realtimelogconfig-endpoints
+ EndPoints []RealtimeLogConfig_EndPoint `json:"EndPoints,omitempty"`
+
+ // Fields AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html#cfn-cloudfront-realtimelogconfig-fields
+ Fields *types.Value `json:"Fields,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html#cfn-cloudfront-realtimelogconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SamplingRate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-realtimelogconfig.html#cfn-cloudfront-realtimelogconfig-samplingrate
+ SamplingRate *types.Value `json:"SamplingRate"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RealtimeLogConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::RealtimeLogConfig"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RealtimeLogConfig) MarshalJSON() ([]byte, error) {
+ type Properties RealtimeLogConfig
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RealtimeLogConfig) UnmarshalJSON(b []byte) error {
+ type Properties RealtimeLogConfig
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RealtimeLogConfig(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig_endpoint.go b/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig_endpoint.go
new file mode 100644
index 0000000000..74d2ae1f1f
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig_endpoint.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RealtimeLogConfig_EndPoint AWS CloudFormation Resource (AWS::CloudFront::RealtimeLogConfig.EndPoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-endpoint.html
+type RealtimeLogConfig_EndPoint struct {
+
+ // KinesisStreamConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-endpoint.html#cfn-cloudfront-realtimelogconfig-endpoint-kinesisstreamconfig
+ KinesisStreamConfig *RealtimeLogConfig_KinesisStreamConfig `json:"KinesisStreamConfig,omitempty"`
+
+ // StreamType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-endpoint.html#cfn-cloudfront-realtimelogconfig-endpoint-streamtype
+ StreamType *types.Value `json:"StreamType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RealtimeLogConfig_EndPoint) AWSCloudFormationType() string {
+ return "AWS::CloudFront::RealtimeLogConfig.EndPoint"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig_kinesisstreamconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig_kinesisstreamconfig.go
new file mode 100644
index 0000000000..21a8b73364
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-realtimelogconfig_kinesisstreamconfig.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RealtimeLogConfig_KinesisStreamConfig AWS CloudFormation Resource (AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-kinesisstreamconfig.html
+type RealtimeLogConfig_KinesisStreamConfig struct {
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-kinesisstreamconfig.html#cfn-cloudfront-realtimelogconfig-kinesisstreamconfig-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // StreamArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-realtimelogconfig-kinesisstreamconfig.html#cfn-cloudfront-realtimelogconfig-kinesisstreamconfig-streamarn
+ StreamArn *types.Value `json:"StreamArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RealtimeLogConfig_KinesisStreamConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy.go
new file mode 100644
index 0000000000..7531873d3e
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy.go
@@ -0,0 +1,106 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html
+type ResponseHeadersPolicy struct {
+
+ // ResponseHeadersPolicyConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-responseheaderspolicy.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig
+ ResponseHeadersPolicyConfig *ResponseHeadersPolicy_ResponseHeadersPolicyConfig `json:"ResponseHeadersPolicyConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResponseHeadersPolicy) MarshalJSON() ([]byte, error) {
+ type Properties ResponseHeadersPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResponseHeadersPolicy) UnmarshalJSON(b []byte) error {
+ type Properties ResponseHeadersPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResponseHeadersPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowheaders.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowheaders.go
new file mode 100644
index 0000000000..b30f3ec390
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowheaders.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_AccessControlAllowHeaders AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowheaders.html
+type ResponseHeadersPolicy_AccessControlAllowHeaders struct {
+
+ // Items AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowheaders.html#cfn-cloudfront-responseheaderspolicy-accesscontrolallowheaders-items
+ Items *types.Value `json:"Items,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_AccessControlAllowHeaders) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowmethods.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowmethods.go
new file mode 100644
index 0000000000..2fc629d546
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolallowmethods.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_AccessControlAllowMethods AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowmethods.html
+type ResponseHeadersPolicy_AccessControlAllowMethods struct {
+
+ // Items AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolallowmethods.html#cfn-cloudfront-responseheaderspolicy-accesscontrolallowmethods-items
+ Items *types.Value `json:"Items,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_AccessControlAllowMethods) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolalloworigins.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolalloworigins.go
new file mode 100644
index 0000000000..85754b594a
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolalloworigins.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_AccessControlAllowOrigins AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolalloworigins.html
+type ResponseHeadersPolicy_AccessControlAllowOrigins struct {
+
+ // Items AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolalloworigins.html#cfn-cloudfront-responseheaderspolicy-accesscontrolalloworigins-items
+ Items *types.Value `json:"Items,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_AccessControlAllowOrigins) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolexposeheaders.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolexposeheaders.go
new file mode 100644
index 0000000000..1f7f55a4d4
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_accesscontrolexposeheaders.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_AccessControlExposeHeaders AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html
+type ResponseHeadersPolicy_AccessControlExposeHeaders struct {
+
+ // Items AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html#cfn-cloudfront-responseheaderspolicy-accesscontrolexposeheaders-items
+ Items *types.Value `json:"Items,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_AccessControlExposeHeaders) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contentsecuritypolicy.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contentsecuritypolicy.go
new file mode 100644
index 0000000000..d979f7fa36
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contentsecuritypolicy.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_ContentSecurityPolicy AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html
+type ResponseHeadersPolicy_ContentSecurityPolicy struct {
+
+ // ContentSecurityPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html#cfn-cloudfront-responseheaderspolicy-contentsecuritypolicy-contentsecuritypolicy
+ ContentSecurityPolicy *types.Value `json:"ContentSecurityPolicy,omitempty"`
+
+ // Override AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contentsecuritypolicy.html#cfn-cloudfront-responseheaderspolicy-contentsecuritypolicy-override
+ Override *types.Value `json:"Override"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_ContentSecurityPolicy) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contenttypeoptions.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contenttypeoptions.go
new file mode 100644
index 0000000000..1e8f42b5f1
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_contenttypeoptions.go
@@ -0,0 +1,37 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_ContentTypeOptions AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contenttypeoptions.html
+type ResponseHeadersPolicy_ContentTypeOptions struct {
+
+ // Override AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-contenttypeoptions.html#cfn-cloudfront-responseheaderspolicy-contenttypeoptions-override
+ Override *types.Value `json:"Override"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_ContentTypeOptions) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_corsconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_corsconfig.go
new file mode 100644
index 0000000000..864c0ee61d
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_corsconfig.go
@@ -0,0 +1,67 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_CorsConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.CorsConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html
+type ResponseHeadersPolicy_CorsConfig struct {
+
+ // AccessControlAllowCredentials AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolallowcredentials
+ AccessControlAllowCredentials *types.Value `json:"AccessControlAllowCredentials"`
+
+ // AccessControlAllowHeaders AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolallowheaders
+ AccessControlAllowHeaders *ResponseHeadersPolicy_AccessControlAllowHeaders `json:"AccessControlAllowHeaders,omitempty"`
+
+ // AccessControlAllowMethods AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolallowmethods
+ AccessControlAllowMethods *ResponseHeadersPolicy_AccessControlAllowMethods `json:"AccessControlAllowMethods,omitempty"`
+
+ // AccessControlAllowOrigins AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolalloworigins
+ AccessControlAllowOrigins *ResponseHeadersPolicy_AccessControlAllowOrigins `json:"AccessControlAllowOrigins,omitempty"`
+
+ // AccessControlExposeHeaders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolexposeheaders
+ AccessControlExposeHeaders *ResponseHeadersPolicy_AccessControlExposeHeaders `json:"AccessControlExposeHeaders,omitempty"`
+
+ // AccessControlMaxAgeSec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-accesscontrolmaxagesec
+ AccessControlMaxAgeSec *types.Value `json:"AccessControlMaxAgeSec,omitempty"`
+
+ // OriginOverride AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-corsconfig.html#cfn-cloudfront-responseheaderspolicy-corsconfig-originoverride
+ OriginOverride *types.Value `json:"OriginOverride"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_CorsConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheader.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheader.go
new file mode 100644
index 0000000000..eca26d42e7
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheader.go
@@ -0,0 +1,47 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_CustomHeader AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.CustomHeader)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html
+type ResponseHeadersPolicy_CustomHeader struct {
+
+ // Header AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html#cfn-cloudfront-responseheaderspolicy-customheader-header
+ Header *types.Value `json:"Header,omitempty"`
+
+ // Override AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html#cfn-cloudfront-responseheaderspolicy-customheader-override
+ Override *types.Value `json:"Override"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheader.html#cfn-cloudfront-responseheaderspolicy-customheader-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_CustomHeader) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheadersconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheadersconfig.go
new file mode 100644
index 0000000000..d41239a9f0
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_customheadersconfig.go
@@ -0,0 +1,35 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_CustomHeadersConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheadersconfig.html
+type ResponseHeadersPolicy_CustomHeadersConfig struct {
+
+ // Items AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-customheadersconfig.html#cfn-cloudfront-responseheaderspolicy-customheadersconfig-items
+ Items []ResponseHeadersPolicy_CustomHeader `json:"Items,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_CustomHeadersConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_frameoptions.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_frameoptions.go
new file mode 100644
index 0000000000..544710cac4
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_frameoptions.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_FrameOptions AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.FrameOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html
+type ResponseHeadersPolicy_FrameOptions struct {
+
+ // FrameOption AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html#cfn-cloudfront-responseheaderspolicy-frameoptions-frameoption
+ FrameOption *types.Value `json:"FrameOption,omitempty"`
+
+ // Override AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-frameoptions.html#cfn-cloudfront-responseheaderspolicy-frameoptions-override
+ Override *types.Value `json:"Override"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_FrameOptions) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_referrerpolicy.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_referrerpolicy.go
new file mode 100644
index 0000000000..a943ae7ccc
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_referrerpolicy.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_ReferrerPolicy AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html
+type ResponseHeadersPolicy_ReferrerPolicy struct {
+
+ // Override AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html#cfn-cloudfront-responseheaderspolicy-referrerpolicy-override
+ Override *types.Value `json:"Override"`
+
+ // ReferrerPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-referrerpolicy.html#cfn-cloudfront-responseheaderspolicy-referrerpolicy-referrerpolicy
+ ReferrerPolicy *types.Value `json:"ReferrerPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_ReferrerPolicy) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go
new file mode 100644
index 0000000000..d3c4420597
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_responseheaderspolicyconfig.go
@@ -0,0 +1,57 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_ResponseHeadersPolicyConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html
+type ResponseHeadersPolicy_ResponseHeadersPolicyConfig struct {
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // CorsConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-corsconfig
+ CorsConfig *ResponseHeadersPolicy_CorsConfig `json:"CorsConfig,omitempty"`
+
+ // CustomHeadersConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-customheadersconfig
+ CustomHeadersConfig *ResponseHeadersPolicy_CustomHeadersConfig `json:"CustomHeadersConfig,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SecurityHeadersConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html#cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-securityheadersconfig
+ SecurityHeadersConfig *ResponseHeadersPolicy_SecurityHeadersConfig `json:"SecurityHeadersConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_ResponseHeadersPolicyConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_securityheadersconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_securityheadersconfig.go
new file mode 100644
index 0000000000..85c1217ae0
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_securityheadersconfig.go
@@ -0,0 +1,60 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_SecurityHeadersConfig AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html
+type ResponseHeadersPolicy_SecurityHeadersConfig struct {
+
+ // ContentSecurityPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-contentsecuritypolicy
+ ContentSecurityPolicy *ResponseHeadersPolicy_ContentSecurityPolicy `json:"ContentSecurityPolicy,omitempty"`
+
+ // ContentTypeOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-contenttypeoptions
+ ContentTypeOptions *ResponseHeadersPolicy_ContentTypeOptions `json:"ContentTypeOptions,omitempty"`
+
+ // FrameOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-frameoptions
+ FrameOptions *ResponseHeadersPolicy_FrameOptions `json:"FrameOptions,omitempty"`
+
+ // ReferrerPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-referrerpolicy
+ ReferrerPolicy *ResponseHeadersPolicy_ReferrerPolicy `json:"ReferrerPolicy,omitempty"`
+
+ // StrictTransportSecurity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-stricttransportsecurity
+ StrictTransportSecurity *ResponseHeadersPolicy_StrictTransportSecurity `json:"StrictTransportSecurity,omitempty"`
+
+ // XSSProtection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-securityheadersconfig.html#cfn-cloudfront-responseheaderspolicy-securityheadersconfig-xssprotection
+ XSSProtection *ResponseHeadersPolicy_XSSProtection `json:"XSSProtection,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_SecurityHeadersConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_stricttransportsecurity.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_stricttransportsecurity.go
new file mode 100644
index 0000000000..56c6d1efd6
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_stricttransportsecurity.go
@@ -0,0 +1,52 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_StrictTransportSecurity AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html
+type ResponseHeadersPolicy_StrictTransportSecurity struct {
+
+ // AccessControlMaxAgeSec AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html#cfn-cloudfront-responseheaderspolicy-stricttransportsecurity-accesscontrolmaxagesec
+ AccessControlMaxAgeSec *types.Value `json:"AccessControlMaxAgeSec"`
+
+ // IncludeSubdomains AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html#cfn-cloudfront-responseheaderspolicy-stricttransportsecurity-includesubdomains
+ IncludeSubdomains *types.Value `json:"IncludeSubdomains,omitempty"`
+
+ // Override AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html#cfn-cloudfront-responseheaderspolicy-stricttransportsecurity-override
+ Override *types.Value `json:"Override"`
+
+ // Preload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-stricttransportsecurity.html#cfn-cloudfront-responseheaderspolicy-stricttransportsecurity-preload
+ Preload *types.Value `json:"Preload,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_StrictTransportSecurity) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_xssprotection.go b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_xssprotection.go
new file mode 100644
index 0000000000..cd658ebaed
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-responseheaderspolicy_xssprotection.go
@@ -0,0 +1,52 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResponseHeadersPolicy_XSSProtection AWS CloudFormation Resource (AWS::CloudFront::ResponseHeadersPolicy.XSSProtection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html
+type ResponseHeadersPolicy_XSSProtection struct {
+
+ // ModeBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html#cfn-cloudfront-responseheaderspolicy-xssprotection-modeblock
+ ModeBlock *types.Value `json:"ModeBlock,omitempty"`
+
+ // Override AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html#cfn-cloudfront-responseheaderspolicy-xssprotection-override
+ Override *types.Value `json:"Override"`
+
+ // Protection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html#cfn-cloudfront-responseheaderspolicy-xssprotection-protection
+ Protection *types.Value `json:"Protection"`
+
+ // ReportUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-xssprotection.html#cfn-cloudfront-responseheaderspolicy-xssprotection-reporturi
+ ReportUri *types.Value `json:"ReportUri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResponseHeadersPolicy_XSSProtection) AWSCloudFormationType() string {
+ return "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution.go b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution.go
new file mode 100644
index 0000000000..5e9e85fcae
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution.go
@@ -0,0 +1,112 @@
+package cloudfront
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// StreamingDistribution AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html
+type StreamingDistribution struct {
+
+ // StreamingDistributionConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig
+ StreamingDistributionConfig *StreamingDistribution_StreamingDistributionConfig `json:"StreamingDistributionConfig,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-streamingdistribution.html#cfn-cloudfront-streamingdistribution-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StreamingDistribution) AWSCloudFormationType() string {
+ return "AWS::CloudFront::StreamingDistribution"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StreamingDistribution) MarshalJSON() ([]byte, error) {
+ type Properties StreamingDistribution
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StreamingDistribution) UnmarshalJSON(b []byte) error {
+ type Properties StreamingDistribution
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StreamingDistribution(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_logging.go b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_logging.go
new file mode 100644
index 0000000000..f70435968c
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_logging.go
@@ -0,0 +1,47 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StreamingDistribution_Logging AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution.Logging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html
+type StreamingDistribution_Logging struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html#cfn-cloudfront-streamingdistribution-logging-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html#cfn-cloudfront-streamingdistribution-logging-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-logging.html#cfn-cloudfront-streamingdistribution-logging-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StreamingDistribution_Logging) AWSCloudFormationType() string {
+ return "AWS::CloudFront::StreamingDistribution.Logging"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_s3origin.go b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_s3origin.go
new file mode 100644
index 0000000000..7959876961
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_s3origin.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StreamingDistribution_S3Origin AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution.S3Origin)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html
+type StreamingDistribution_S3Origin struct {
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html#cfn-cloudfront-streamingdistribution-s3origin-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // OriginAccessIdentity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-s3origin.html#cfn-cloudfront-streamingdistribution-s3origin-originaccessidentity
+ OriginAccessIdentity *types.Value `json:"OriginAccessIdentity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StreamingDistribution_S3Origin) AWSCloudFormationType() string {
+ return "AWS::CloudFront::StreamingDistribution.S3Origin"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go
new file mode 100644
index 0000000000..206e0989f3
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_streamingdistributionconfig.go
@@ -0,0 +1,67 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StreamingDistribution_StreamingDistributionConfig AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html
+type StreamingDistribution_StreamingDistributionConfig struct {
+
+ // Aliases AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-aliases
+ Aliases *types.Value `json:"Aliases,omitempty"`
+
+ // Comment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // Logging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-logging
+ Logging *StreamingDistribution_Logging `json:"Logging,omitempty"`
+
+ // PriceClass AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-priceclass
+ PriceClass *types.Value `json:"PriceClass,omitempty"`
+
+ // S3Origin AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-s3origin
+ S3Origin *StreamingDistribution_S3Origin `json:"S3Origin,omitempty"`
+
+ // TrustedSigners AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-streamingdistributionconfig.html#cfn-cloudfront-streamingdistribution-streamingdistributionconfig-trustedsigners
+ TrustedSigners *StreamingDistribution_TrustedSigners `json:"TrustedSigners,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StreamingDistribution_StreamingDistributionConfig) AWSCloudFormationType() string {
+ return "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig"
+}
diff --git a/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_trustedsigners.go b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_trustedsigners.go
new file mode 100644
index 0000000000..b53f4d210f
--- /dev/null
+++ b/goformation/cloudformation/cloudfront/aws-cloudfront-streamingdistribution_trustedsigners.go
@@ -0,0 +1,42 @@
+package cloudfront
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StreamingDistribution_TrustedSigners AWS CloudFormation Resource (AWS::CloudFront::StreamingDistribution.TrustedSigners)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html
+type StreamingDistribution_TrustedSigners struct {
+
+ // AwsAccountNumbers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html#cfn-cloudfront-streamingdistribution-trustedsigners-awsaccountnumbers
+ AwsAccountNumbers *types.Value `json:"AwsAccountNumbers,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-streamingdistribution-trustedsigners.html#cfn-cloudfront-streamingdistribution-trustedsigners-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StreamingDistribution_TrustedSigners) AWSCloudFormationType() string {
+ return "AWS::CloudFront::StreamingDistribution.TrustedSigners"
+}
diff --git a/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail.go b/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail.go
new file mode 100644
index 0000000000..d20b2cf153
--- /dev/null
+++ b/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail.go
@@ -0,0 +1,179 @@
+package cloudtrail
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trail AWS CloudFormation Resource (AWS::CloudTrail::Trail)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html
+type Trail struct {
+
+ // CloudWatchLogsLogGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-cloudwatchlogsloggrouparn
+ CloudWatchLogsLogGroupArn *types.Value `json:"CloudWatchLogsLogGroupArn,omitempty"`
+
+ // CloudWatchLogsRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-cloudwatchlogsrolearn
+ CloudWatchLogsRoleArn *types.Value `json:"CloudWatchLogsRoleArn,omitempty"`
+
+ // EnableLogFileValidation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-enablelogfilevalidation
+ EnableLogFileValidation *types.Value `json:"EnableLogFileValidation,omitempty"`
+
+ // EventSelectors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-eventselectors
+ EventSelectors []Trail_EventSelector `json:"EventSelectors,omitempty"`
+
+ // IncludeGlobalServiceEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-includeglobalserviceevents
+ IncludeGlobalServiceEvents *types.Value `json:"IncludeGlobalServiceEvents,omitempty"`
+
+ // InsightSelectors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-insightselectors
+ InsightSelectors []Trail_InsightSelector `json:"InsightSelectors,omitempty"`
+
+ // IsLogging AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-islogging
+ IsLogging *types.Value `json:"IsLogging"`
+
+ // IsMultiRegionTrail AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-ismultiregiontrail
+ IsMultiRegionTrail *types.Value `json:"IsMultiRegionTrail,omitempty"`
+
+ // IsOrganizationTrail AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-isorganizationtrail
+ IsOrganizationTrail *types.Value `json:"IsOrganizationTrail,omitempty"`
+
+ // KMSKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-kmskeyid
+ KMSKeyId *types.Value `json:"KMSKeyId,omitempty"`
+
+ // S3BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3bucketname
+ S3BucketName *types.Value `json:"S3BucketName,omitempty"`
+
+ // S3KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-s3keyprefix
+ S3KeyPrefix *types.Value `json:"S3KeyPrefix,omitempty"`
+
+ // SnsTopicName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-snstopicname
+ SnsTopicName *types.Value `json:"SnsTopicName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TrailName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudtrail-trail.html#cfn-cloudtrail-trail-trailname
+ TrailName *types.Value `json:"TrailName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trail) AWSCloudFormationType() string {
+ return "AWS::CloudTrail::Trail"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Trail) MarshalJSON() ([]byte, error) {
+ type Properties Trail
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Trail) UnmarshalJSON(b []byte) error {
+ type Properties Trail
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Trail(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_dataresource.go b/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_dataresource.go
new file mode 100644
index 0000000000..d1c2024010
--- /dev/null
+++ b/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_dataresource.go
@@ -0,0 +1,42 @@
+package cloudtrail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trail_DataResource AWS CloudFormation Resource (AWS::CloudTrail::Trail.DataResource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html
+type Trail_DataResource struct {
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html#cfn-cloudtrail-trail-dataresource-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-dataresource.html#cfn-cloudtrail-trail-dataresource-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trail_DataResource) AWSCloudFormationType() string {
+ return "AWS::CloudTrail::Trail.DataResource"
+}
diff --git a/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_eventselector.go b/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_eventselector.go
new file mode 100644
index 0000000000..e9ee90692d
--- /dev/null
+++ b/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_eventselector.go
@@ -0,0 +1,52 @@
+package cloudtrail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trail_EventSelector AWS CloudFormation Resource (AWS::CloudTrail::Trail.EventSelector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html
+type Trail_EventSelector struct {
+
+ // DataResources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html#cfn-cloudtrail-trail-eventselector-dataresources
+ DataResources []Trail_DataResource `json:"DataResources,omitempty"`
+
+ // ExcludeManagementEventSources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html#cfn-cloudtrail-trail-eventselector-excludemanagementeventsources
+ ExcludeManagementEventSources *types.Value `json:"ExcludeManagementEventSources,omitempty"`
+
+ // IncludeManagementEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html#cfn-cloudtrail-trail-eventselector-includemanagementevents
+ IncludeManagementEvents *types.Value `json:"IncludeManagementEvents,omitempty"`
+
+ // ReadWriteType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-eventselector.html#cfn-cloudtrail-trail-eventselector-readwritetype
+ ReadWriteType *types.Value `json:"ReadWriteType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trail_EventSelector) AWSCloudFormationType() string {
+ return "AWS::CloudTrail::Trail.EventSelector"
+}
diff --git a/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_insightselector.go b/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_insightselector.go
new file mode 100644
index 0000000000..006eed6dda
--- /dev/null
+++ b/goformation/cloudformation/cloudtrail/aws-cloudtrail-trail_insightselector.go
@@ -0,0 +1,37 @@
+package cloudtrail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trail_InsightSelector AWS CloudFormation Resource (AWS::CloudTrail::Trail.InsightSelector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html
+type Trail_InsightSelector struct {
+
+ // InsightType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudtrail-trail-insightselector.html#cfn-cloudtrail-trail-insightselector-insighttype
+ InsightType *types.Value `json:"InsightType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trail_InsightSelector) AWSCloudFormationType() string {
+ return "AWS::CloudTrail::Trail.InsightSelector"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm.go
new file mode 100644
index 0000000000..3074b8bf7c
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm.go
@@ -0,0 +1,208 @@
+package cloudwatch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alarm AWS CloudFormation Resource (AWS::CloudWatch::Alarm)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html
+type Alarm struct {
+
+ // ActionsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-actionsenabled
+ ActionsEnabled *types.Value `json:"ActionsEnabled,omitempty"`
+
+ // AlarmActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmactions
+ AlarmActions *types.Value `json:"AlarmActions,omitempty"`
+
+ // AlarmDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmdescription
+ AlarmDescription *types.Value `json:"AlarmDescription,omitempty"`
+
+ // AlarmName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-alarmname
+ AlarmName *types.Value `json:"AlarmName,omitempty"`
+
+ // ComparisonOperator AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-comparisonoperator
+ ComparisonOperator *types.Value `json:"ComparisonOperator,omitempty"`
+
+ // DatapointsToAlarm AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarm-datapointstoalarm
+ DatapointsToAlarm *types.Value `json:"DatapointsToAlarm,omitempty"`
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-dimension
+ Dimensions []Alarm_Dimension `json:"Dimensions,omitempty"`
+
+ // EvaluateLowSampleCountPercentile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-evaluatelowsamplecountpercentile
+ EvaluateLowSampleCountPercentile *types.Value `json:"EvaluateLowSampleCountPercentile,omitempty"`
+
+ // EvaluationPeriods AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-evaluationperiods
+ EvaluationPeriods *types.Value `json:"EvaluationPeriods"`
+
+ // ExtendedStatistic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-extendedstatistic
+ ExtendedStatistic *types.Value `json:"ExtendedStatistic,omitempty"`
+
+ // InsufficientDataActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-insufficientdataactions
+ InsufficientDataActions *types.Value `json:"InsufficientDataActions,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Metrics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarm-metrics
+ Metrics []Alarm_MetricDataQuery `json:"Metrics,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // OKActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-okactions
+ OKActions *types.Value `json:"OKActions,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-period
+ Period *types.Value `json:"Period,omitempty"`
+
+ // Statistic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // Threshold AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-threshold
+ Threshold *types.Value `json:"Threshold,omitempty"`
+
+ // ThresholdMetricId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-dynamic-threshold
+ ThresholdMetricId *types.Value `json:"ThresholdMetricId,omitempty"`
+
+ // TreatMissingData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-treatmissingdata
+ TreatMissingData *types.Value `json:"TreatMissingData,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alarm) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::Alarm"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Alarm) MarshalJSON() ([]byte, error) {
+ type Properties Alarm
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Alarm) UnmarshalJSON(b []byte) error {
+ type Properties Alarm
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Alarm(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_dimension.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_dimension.go
new file mode 100644
index 0000000000..8d1f341777
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_dimension.go
@@ -0,0 +1,42 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alarm_Dimension AWS CloudFormation Resource (AWS::CloudWatch::Alarm.Dimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html
+type Alarm_Dimension struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html#cfn-cloudwatch-alarm-dimension-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html#cfn-cloudwatch-alarm-dimension-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alarm_Dimension) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::Alarm.Dimension"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metric.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metric.go
new file mode 100644
index 0000000000..0b9a004666
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metric.go
@@ -0,0 +1,47 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alarm_Metric AWS CloudFormation Resource (AWS::CloudWatch::Alarm.Metric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html
+type Alarm_Metric struct {
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-dimensions
+ Dimensions []Alarm_Dimension `json:"Dimensions,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metric.html#cfn-cloudwatch-alarm-metric-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alarm_Metric) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::Alarm.Metric"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metricdataquery.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metricdataquery.go
new file mode 100644
index 0000000000..567e1abf2a
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metricdataquery.go
@@ -0,0 +1,67 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alarm_MetricDataQuery AWS CloudFormation Resource (AWS::CloudWatch::Alarm.MetricDataQuery)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html
+type Alarm_MetricDataQuery struct {
+
+ // AccountId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-accountid
+ AccountId *types.Value `json:"AccountId,omitempty"`
+
+ // Expression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Label AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-label
+ Label *types.Value `json:"Label,omitempty"`
+
+ // MetricStat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-metricstat
+ MetricStat *Alarm_MetricStat `json:"MetricStat,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-period
+ Period *types.Value `json:"Period,omitempty"`
+
+ // ReturnData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricdataquery.html#cfn-cloudwatch-alarm-metricdataquery-returndata
+ ReturnData *types.Value `json:"ReturnData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alarm_MetricDataQuery) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::Alarm.MetricDataQuery"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metricstat.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metricstat.go
new file mode 100644
index 0000000000..a13a23782e
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-alarm_metricstat.go
@@ -0,0 +1,52 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alarm_MetricStat AWS CloudFormation Resource (AWS::CloudWatch::Alarm.MetricStat)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html
+type Alarm_MetricStat struct {
+
+ // Metric AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-metric
+ Metric *Alarm_Metric `json:"Metric,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-period
+ Period *types.Value `json:"Period"`
+
+ // Stat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-stat
+ Stat *types.Value `json:"Stat,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-alarm-metricstat.html#cfn-cloudwatch-alarm-metricstat-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alarm_MetricStat) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::Alarm.MetricStat"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector.go
new file mode 100644
index 0000000000..fd7f974098
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector.go
@@ -0,0 +1,138 @@
+package cloudwatch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html
+type AnomalyDetector struct {
+
+ // Configuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-configuration
+ Configuration *AnomalyDetector_Configuration `json:"Configuration,omitempty"`
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-dimensions
+ Dimensions []AnomalyDetector_Dimension `json:"Dimensions,omitempty"`
+
+ // MetricMathAnomalyDetector AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metricmathanomalydetector
+ MetricMathAnomalyDetector *AnomalyDetector_MetricMathAnomalyDetector `json:"MetricMathAnomalyDetector,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // SingleMetricAnomalyDetector AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-singlemetricanomalydetector
+ SingleMetricAnomalyDetector *AnomalyDetector_SingleMetricAnomalyDetector `json:"SingleMetricAnomalyDetector,omitempty"`
+
+ // Stat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-stat
+ Stat *types.Value `json:"Stat,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AnomalyDetector) MarshalJSON() ([]byte, error) {
+ type Properties AnomalyDetector
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AnomalyDetector) UnmarshalJSON(b []byte) error {
+ type Properties AnomalyDetector
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AnomalyDetector(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_configuration.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_configuration.go
new file mode 100644
index 0000000000..58ad076981
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_configuration.go
@@ -0,0 +1,42 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_Configuration AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.Configuration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-configuration.html
+type AnomalyDetector_Configuration struct {
+
+ // ExcludedTimeRanges AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-configuration.html#cfn-cloudwatch-anomalydetector-configuration-excludedtimeranges
+ ExcludedTimeRanges []AnomalyDetector_Range `json:"ExcludedTimeRanges,omitempty"`
+
+ // MetricTimeZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-configuration.html#cfn-cloudwatch-anomalydetector-configuration-metrictimezone
+ MetricTimeZone *types.Value `json:"MetricTimeZone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_Configuration) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.Configuration"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_dimension.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_dimension.go
new file mode 100644
index 0000000000..01a7f513d8
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_dimension.go
@@ -0,0 +1,42 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_Dimension AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.Dimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html
+type AnomalyDetector_Dimension struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html#cfn-cloudwatch-anomalydetector-dimension-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-dimension.html#cfn-cloudwatch-anomalydetector-dimension-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_Dimension) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.Dimension"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metric.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metric.go
new file mode 100644
index 0000000000..726a2fd668
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metric.go
@@ -0,0 +1,47 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_Metric AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.Metric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html
+type AnomalyDetector_Metric struct {
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html#cfn-cloudwatch-anomalydetector-metric-dimensions
+ Dimensions []AnomalyDetector_Dimension `json:"Dimensions,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html#cfn-cloudwatch-anomalydetector-metric-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metric.html#cfn-cloudwatch-anomalydetector-metric-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_Metric) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.Metric"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataqueries.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataqueries.go
new file mode 100644
index 0000000000..ae6dfbc836
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataqueries.go
@@ -0,0 +1,30 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_MetricDataQueries AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.MetricDataQueries)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataqueries.html
+type AnomalyDetector_MetricDataQueries struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_MetricDataQueries) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.MetricDataQueries"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataquery.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataquery.go
new file mode 100644
index 0000000000..6082f67e4e
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricdataquery.go
@@ -0,0 +1,67 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_MetricDataQuery AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.MetricDataQuery)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html
+type AnomalyDetector_MetricDataQuery struct {
+
+ // AccountId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-accountid
+ AccountId *types.Value `json:"AccountId,omitempty"`
+
+ // Expression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Label AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-label
+ Label *types.Value `json:"Label,omitempty"`
+
+ // MetricStat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-metricstat
+ MetricStat *AnomalyDetector_MetricStat `json:"MetricStat,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-period
+ Period *types.Value `json:"Period,omitempty"`
+
+ // ReturnData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricdataquery.html#cfn-cloudwatch-anomalydetector-metricdataquery-returndata
+ ReturnData *types.Value `json:"ReturnData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_MetricDataQuery) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.MetricDataQuery"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricmathanomalydetector.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricmathanomalydetector.go
new file mode 100644
index 0000000000..01797942e2
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricmathanomalydetector.go
@@ -0,0 +1,35 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_MetricMathAnomalyDetector AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricmathanomalydetector.html
+type AnomalyDetector_MetricMathAnomalyDetector struct {
+
+ // MetricDataQueries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricmathanomalydetector.html#cfn-cloudwatch-anomalydetector-metricmathanomalydetector-metricdataqueries
+ MetricDataQueries []AnomalyDetector_MetricDataQuery `json:"MetricDataQueries,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_MetricMathAnomalyDetector) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricstat.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricstat.go
new file mode 100644
index 0000000000..76ee46852a
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_metricstat.go
@@ -0,0 +1,52 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_MetricStat AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.MetricStat)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html
+type AnomalyDetector_MetricStat struct {
+
+ // Metric AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html#cfn-cloudwatch-anomalydetector-metricstat-metric
+ Metric *AnomalyDetector_Metric `json:"Metric,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html#cfn-cloudwatch-anomalydetector-metricstat-period
+ Period *types.Value `json:"Period"`
+
+ // Stat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html#cfn-cloudwatch-anomalydetector-metricstat-stat
+ Stat *types.Value `json:"Stat,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-metricstat.html#cfn-cloudwatch-anomalydetector-metricstat-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_MetricStat) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.MetricStat"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_range.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_range.go
new file mode 100644
index 0000000000..271a660b10
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_range.go
@@ -0,0 +1,42 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_Range AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.Range)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-range.html
+type AnomalyDetector_Range struct {
+
+ // EndTime AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-range.html#cfn-cloudwatch-anomalydetector-range-endtime
+ EndTime *types.Value `json:"EndTime,omitempty"`
+
+ // StartTime AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-range.html#cfn-cloudwatch-anomalydetector-range-starttime
+ StartTime *types.Value `json:"StartTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_Range) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.Range"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_singlemetricanomalydetector.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_singlemetricanomalydetector.go
new file mode 100644
index 0000000000..949b67a32a
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-anomalydetector_singlemetricanomalydetector.go
@@ -0,0 +1,52 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_SingleMetricAnomalyDetector AWS CloudFormation Resource (AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html
+type AnomalyDetector_SingleMetricAnomalyDetector struct {
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html#cfn-cloudwatch-anomalydetector-singlemetricanomalydetector-dimensions
+ Dimensions []AnomalyDetector_Dimension `json:"Dimensions,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html#cfn-cloudwatch-anomalydetector-singlemetricanomalydetector-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html#cfn-cloudwatch-anomalydetector-singlemetricanomalydetector-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // Stat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-anomalydetector-singlemetricanomalydetector.html#cfn-cloudwatch-anomalydetector-singlemetricanomalydetector-stat
+ Stat *types.Value `json:"Stat,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_SingleMetricAnomalyDetector) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-compositealarm.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-compositealarm.go
new file mode 100644
index 0000000000..46f4ccbb66
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-compositealarm.go
@@ -0,0 +1,138 @@
+package cloudwatch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CompositeAlarm AWS CloudFormation Resource (AWS::CloudWatch::CompositeAlarm)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html
+type CompositeAlarm struct {
+
+ // ActionsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-actionsenabled
+ ActionsEnabled *types.Value `json:"ActionsEnabled,omitempty"`
+
+ // AlarmActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-alarmactions
+ AlarmActions *types.Value `json:"AlarmActions,omitempty"`
+
+ // AlarmDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-alarmdescription
+ AlarmDescription *types.Value `json:"AlarmDescription,omitempty"`
+
+ // AlarmName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-alarmname
+ AlarmName *types.Value `json:"AlarmName,omitempty"`
+
+ // AlarmRule AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-alarmrule
+ AlarmRule *types.Value `json:"AlarmRule,omitempty"`
+
+ // InsufficientDataActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-insufficientdataactions
+ InsufficientDataActions *types.Value `json:"InsufficientDataActions,omitempty"`
+
+ // OKActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html#cfn-cloudwatch-compositealarm-okactions
+ OKActions *types.Value `json:"OKActions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CompositeAlarm) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::CompositeAlarm"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CompositeAlarm) MarshalJSON() ([]byte, error) {
+ type Properties CompositeAlarm
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CompositeAlarm) UnmarshalJSON(b []byte) error {
+ type Properties CompositeAlarm
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CompositeAlarm(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-dashboard.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-dashboard.go
new file mode 100644
index 0000000000..80ef6fd8de
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-dashboard.go
@@ -0,0 +1,113 @@
+package cloudwatch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dashboard AWS CloudFormation Resource (AWS::CloudWatch::Dashboard)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html
+type Dashboard struct {
+
+ // DashboardBody AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardbody
+ DashboardBody *types.Value `json:"DashboardBody,omitempty"`
+
+ // DashboardName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-dashboard.html#cfn-cloudwatch-dashboard-dashboardname
+ DashboardName *types.Value `json:"DashboardName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dashboard) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::Dashboard"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Dashboard) MarshalJSON() ([]byte, error) {
+ type Properties Dashboard
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Dashboard) UnmarshalJSON(b []byte) error {
+ type Properties Dashboard
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Dashboard(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-insightrule.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-insightrule.go
new file mode 100644
index 0000000000..3240556f1d
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-insightrule.go
@@ -0,0 +1,123 @@
+package cloudwatch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InsightRule AWS CloudFormation Resource (AWS::CloudWatch::InsightRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html
+type InsightRule struct {
+
+ // RuleBody AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-rulebody
+ RuleBody *types.Value `json:"RuleBody,omitempty"`
+
+ // RuleName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-rulename
+ RuleName *types.Value `json:"RuleName,omitempty"`
+
+ // RuleState AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-rulestate
+ RuleState *types.Value `json:"RuleState,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-insightrule.html#cfn-cloudwatch-insightrule-tags
+ Tags *InsightRule_Tags `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InsightRule) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::InsightRule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r InsightRule) MarshalJSON() ([]byte, error) {
+ type Properties InsightRule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *InsightRule) UnmarshalJSON(b []byte) error {
+ type Properties InsightRule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = InsightRule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-insightrule_tags.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-insightrule_tags.go
new file mode 100644
index 0000000000..fa325f1338
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-insightrule_tags.go
@@ -0,0 +1,30 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// InsightRule_Tags AWS CloudFormation Resource (AWS::CloudWatch::InsightRule.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-insightrule-tags.html
+type InsightRule_Tags struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InsightRule_Tags) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::InsightRule.Tags"
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-metricstream.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-metricstream.go
new file mode 100644
index 0000000000..8ee9746440
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-metricstream.go
@@ -0,0 +1,139 @@
+package cloudwatch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// MetricStream AWS CloudFormation Resource (AWS::CloudWatch::MetricStream)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html
+type MetricStream struct {
+
+ // ExcludeFilters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-excludefilters
+ ExcludeFilters []MetricStream_MetricStreamFilter `json:"ExcludeFilters,omitempty"`
+
+ // FirehoseArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-firehosearn
+ FirehoseArn *types.Value `json:"FirehoseArn,omitempty"`
+
+ // IncludeFilters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-includefilters
+ IncludeFilters []MetricStream_MetricStreamFilter `json:"IncludeFilters,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OutputFormat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-outputformat
+ OutputFormat *types.Value `json:"OutputFormat,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-metricstream.html#cfn-cloudwatch-metricstream-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MetricStream) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::MetricStream"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MetricStream) MarshalJSON() ([]byte, error) {
+ type Properties MetricStream
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MetricStream) UnmarshalJSON(b []byte) error {
+ type Properties MetricStream
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MetricStream(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cloudwatch/aws-cloudwatch-metricstream_metricstreamfilter.go b/goformation/cloudformation/cloudwatch/aws-cloudwatch-metricstream_metricstreamfilter.go
new file mode 100644
index 0000000000..c402790e27
--- /dev/null
+++ b/goformation/cloudformation/cloudwatch/aws-cloudwatch-metricstream_metricstreamfilter.go
@@ -0,0 +1,37 @@
+package cloudwatch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MetricStream_MetricStreamFilter AWS CloudFormation Resource (AWS::CloudWatch::MetricStream.MetricStreamFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html
+type MetricStream_MetricStreamFilter struct {
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudwatch-metricstream-metricstreamfilter.html#cfn-cloudwatch-metricstream-metricstreamfilter-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MetricStream_MetricStreamFilter) AWSCloudFormationType() string {
+ return "AWS::CloudWatch::MetricStream.MetricStreamFilter"
+}
diff --git a/goformation/cloudformation/codeartifact/aws-codeartifact-domain.go b/goformation/cloudformation/codeartifact/aws-codeartifact-domain.go
new file mode 100644
index 0000000000..7ef110e816
--- /dev/null
+++ b/goformation/cloudformation/codeartifact/aws-codeartifact-domain.go
@@ -0,0 +1,124 @@
+package codeartifact
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain AWS CloudFormation Resource (AWS::CodeArtifact::Domain)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html
+type Domain struct {
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html#cfn-codeartifact-domain-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // EncryptionKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html#cfn-codeartifact-domain-encryptionkey
+ EncryptionKey *types.Value `json:"EncryptionKey,omitempty"`
+
+ // PermissionsPolicyDocument AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html#cfn-codeartifact-domain-permissionspolicydocument
+ PermissionsPolicyDocument interface{} `json:"PermissionsPolicyDocument,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html#cfn-codeartifact-domain-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain) AWSCloudFormationType() string {
+ return "AWS::CodeArtifact::Domain"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Domain) MarshalJSON() ([]byte, error) {
+ type Properties Domain
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Domain) UnmarshalJSON(b []byte) error {
+ type Properties Domain
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Domain(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codeartifact/aws-codeartifact-repository.go b/goformation/cloudformation/codeartifact/aws-codeartifact-repository.go
new file mode 100644
index 0000000000..9c9a704167
--- /dev/null
+++ b/goformation/cloudformation/codeartifact/aws-codeartifact-repository.go
@@ -0,0 +1,144 @@
+package codeartifact
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository AWS CloudFormation Resource (AWS::CodeArtifact::Repository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html
+type Repository struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // DomainOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-domainowner
+ DomainOwner *types.Value `json:"DomainOwner,omitempty"`
+
+ // ExternalConnections AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-externalconnections
+ ExternalConnections *types.Value `json:"ExternalConnections,omitempty"`
+
+ // PermissionsPolicyDocument AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-permissionspolicydocument
+ PermissionsPolicyDocument interface{} `json:"PermissionsPolicyDocument,omitempty"`
+
+ // RepositoryName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-repositoryname
+ RepositoryName *types.Value `json:"RepositoryName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Upstreams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-repository.html#cfn-codeartifact-repository-upstreams
+ Upstreams *types.Value `json:"Upstreams,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository) AWSCloudFormationType() string {
+ return "AWS::CodeArtifact::Repository"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Repository) MarshalJSON() ([]byte, error) {
+ type Properties Repository
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Repository) UnmarshalJSON(b []byte) error {
+ type Properties Repository
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Repository(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project.go b/goformation/cloudformation/codebuild/aws-codebuild-project.go
new file mode 100644
index 0000000000..02240f35f9
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project.go
@@ -0,0 +1,224 @@
+package codebuild
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project AWS CloudFormation Resource (AWS::CodeBuild::Project)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html
+type Project struct {
+
+ // Artifacts AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-artifacts
+ Artifacts *Project_Artifacts `json:"Artifacts,omitempty"`
+
+ // BadgeEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-badgeenabled
+ BadgeEnabled *types.Value `json:"BadgeEnabled,omitempty"`
+
+ // BuildBatchConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-buildbatchconfig
+ BuildBatchConfig *Project_ProjectBuildBatchConfig `json:"BuildBatchConfig,omitempty"`
+
+ // Cache AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-cache
+ Cache *Project_ProjectCache `json:"Cache,omitempty"`
+
+ // ConcurrentBuildLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-concurrentbuildlimit
+ ConcurrentBuildLimit *types.Value `json:"ConcurrentBuildLimit,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EncryptionKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-encryptionkey
+ EncryptionKey *types.Value `json:"EncryptionKey,omitempty"`
+
+ // Environment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-environment
+ Environment *Project_Environment `json:"Environment,omitempty"`
+
+ // FileSystemLocations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-filesystemlocations
+ FileSystemLocations []Project_ProjectFileSystemLocation `json:"FileSystemLocations,omitempty"`
+
+ // LogsConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-logsconfig
+ LogsConfig *Project_LogsConfig `json:"LogsConfig,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // QueuedTimeoutInMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-queuedtimeoutinminutes
+ QueuedTimeoutInMinutes *types.Value `json:"QueuedTimeoutInMinutes,omitempty"`
+
+ // ResourceAccessRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-resourceaccessrole
+ ResourceAccessRole *types.Value `json:"ResourceAccessRole,omitempty"`
+
+ // SecondaryArtifacts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-secondaryartifacts
+ SecondaryArtifacts []Project_Artifacts `json:"SecondaryArtifacts,omitempty"`
+
+ // SecondarySourceVersions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-secondarysourceversions
+ SecondarySourceVersions []Project_ProjectSourceVersion `json:"SecondarySourceVersions,omitempty"`
+
+ // SecondarySources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-secondarysources
+ SecondarySources []Project_Source `json:"SecondarySources,omitempty"`
+
+ // ServiceRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-servicerole
+ ServiceRole *types.Value `json:"ServiceRole,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-source
+ Source *Project_Source `json:"Source,omitempty"`
+
+ // SourceVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-sourceversion
+ SourceVersion *types.Value `json:"SourceVersion,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TimeoutInMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-timeoutinminutes
+ TimeoutInMinutes *types.Value `json:"TimeoutInMinutes,omitempty"`
+
+ // Triggers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-triggers
+ Triggers *Project_ProjectTriggers `json:"Triggers,omitempty"`
+
+ // Visibility AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-visibility
+ Visibility *types.Value `json:"Visibility,omitempty"`
+
+ // VpcConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html#cfn-codebuild-project-vpcconfig
+ VpcConfig *Project_VpcConfig `json:"VpcConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Project) MarshalJSON() ([]byte, error) {
+ type Properties Project
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Project) UnmarshalJSON(b []byte) error {
+ type Properties Project
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Project(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_artifacts.go b/goformation/cloudformation/codebuild/aws-codebuild-project_artifacts.go
new file mode 100644
index 0000000000..06c47c0901
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_artifacts.go
@@ -0,0 +1,77 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_Artifacts AWS CloudFormation Resource (AWS::CodeBuild::Project.Artifacts)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html
+type Project_Artifacts struct {
+
+ // ArtifactIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-artifactidentifier
+ ArtifactIdentifier *types.Value `json:"ArtifactIdentifier,omitempty"`
+
+ // EncryptionDisabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-encryptiondisabled
+ EncryptionDisabled *types.Value `json:"EncryptionDisabled,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // NamespaceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-namespacetype
+ NamespaceType *types.Value `json:"NamespaceType,omitempty"`
+
+ // OverrideArtifactName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-overrideartifactname
+ OverrideArtifactName *types.Value `json:"OverrideArtifactName,omitempty"`
+
+ // Packaging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-packaging
+ Packaging *types.Value `json:"Packaging,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-artifacts.html#cfn-codebuild-project-artifacts-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_Artifacts) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.Artifacts"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_batchrestrictions.go b/goformation/cloudformation/codebuild/aws-codebuild-project_batchrestrictions.go
new file mode 100644
index 0000000000..b32afc2894
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_batchrestrictions.go
@@ -0,0 +1,42 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_BatchRestrictions AWS CloudFormation Resource (AWS::CodeBuild::Project.BatchRestrictions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-batchrestrictions.html
+type Project_BatchRestrictions struct {
+
+ // ComputeTypesAllowed AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-batchrestrictions.html#cfn-codebuild-project-batchrestrictions-computetypesallowed
+ ComputeTypesAllowed *types.Value `json:"ComputeTypesAllowed,omitempty"`
+
+ // MaximumBuildsAllowed AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-batchrestrictions.html#cfn-codebuild-project-batchrestrictions-maximumbuildsallowed
+ MaximumBuildsAllowed *types.Value `json:"MaximumBuildsAllowed,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_BatchRestrictions) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.BatchRestrictions"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_buildstatusconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-project_buildstatusconfig.go
new file mode 100644
index 0000000000..3da6ec931e
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_buildstatusconfig.go
@@ -0,0 +1,42 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_BuildStatusConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.BuildStatusConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html
+type Project_BuildStatusConfig struct {
+
+ // Context AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html#cfn-codebuild-project-buildstatusconfig-context
+ Context *types.Value `json:"Context,omitempty"`
+
+ // TargetUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-buildstatusconfig.html#cfn-codebuild-project-buildstatusconfig-targeturl
+ TargetUrl *types.Value `json:"TargetUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_BuildStatusConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.BuildStatusConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_cloudwatchlogsconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-project_cloudwatchlogsconfig.go
new file mode 100644
index 0000000000..923ea8fe9e
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_cloudwatchlogsconfig.go
@@ -0,0 +1,47 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_CloudWatchLogsConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.CloudWatchLogsConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-cloudwatchlogsconfig.html
+type Project_CloudWatchLogsConfig struct {
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-cloudwatchlogsconfig.html#cfn-codebuild-project-cloudwatchlogsconfig-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-cloudwatchlogsconfig.html#cfn-codebuild-project-cloudwatchlogsconfig-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // StreamName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-cloudwatchlogsconfig.html#cfn-codebuild-project-cloudwatchlogsconfig-streamname
+ StreamName *types.Value `json:"StreamName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_CloudWatchLogsConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.CloudWatchLogsConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_environment.go b/goformation/cloudformation/codebuild/aws-codebuild-project_environment.go
new file mode 100644
index 0000000000..4a03e78c48
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_environment.go
@@ -0,0 +1,72 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_Environment AWS CloudFormation Resource (AWS::CodeBuild::Project.Environment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html
+type Project_Environment struct {
+
+ // Certificate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-certificate
+ Certificate *types.Value `json:"Certificate,omitempty"`
+
+ // ComputeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-computetype
+ ComputeType *types.Value `json:"ComputeType,omitempty"`
+
+ // EnvironmentVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-environmentvariables
+ EnvironmentVariables []Project_EnvironmentVariable `json:"EnvironmentVariables,omitempty"`
+
+ // Image AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-image
+ Image *types.Value `json:"Image,omitempty"`
+
+ // ImagePullCredentialsType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-imagepullcredentialstype
+ ImagePullCredentialsType *types.Value `json:"ImagePullCredentialsType,omitempty"`
+
+ // PrivilegedMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-privilegedmode
+ PrivilegedMode *types.Value `json:"PrivilegedMode,omitempty"`
+
+ // RegistryCredential AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-registrycredential
+ RegistryCredential *Project_RegistryCredential `json:"RegistryCredential,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environment.html#cfn-codebuild-project-environment-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_Environment) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.Environment"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_environmentvariable.go b/goformation/cloudformation/codebuild/aws-codebuild-project_environmentvariable.go
new file mode 100644
index 0000000000..5459256dad
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_environmentvariable.go
@@ -0,0 +1,47 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_EnvironmentVariable AWS CloudFormation Resource (AWS::CodeBuild::Project.EnvironmentVariable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html
+type Project_EnvironmentVariable struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-environmentvariable.html#cfn-codebuild-project-environmentvariable-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_EnvironmentVariable) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.EnvironmentVariable"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_filtergroup.go b/goformation/cloudformation/codebuild/aws-codebuild-project_filtergroup.go
new file mode 100644
index 0000000000..7beeccd479
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_filtergroup.go
@@ -0,0 +1,30 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_FilterGroup AWS CloudFormation Resource (AWS::CodeBuild::Project.FilterGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-filtergroup.html
+type Project_FilterGroup struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_FilterGroup) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.FilterGroup"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_gitsubmodulesconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-project_gitsubmodulesconfig.go
new file mode 100644
index 0000000000..e7bd7791b3
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_gitsubmodulesconfig.go
@@ -0,0 +1,37 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_GitSubmodulesConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.GitSubmodulesConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-gitsubmodulesconfig.html
+type Project_GitSubmodulesConfig struct {
+
+ // FetchSubmodules AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-gitsubmodulesconfig.html#cfn-codebuild-project-gitsubmodulesconfig-fetchsubmodules
+ FetchSubmodules *types.Value `json:"FetchSubmodules"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_GitSubmodulesConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.GitSubmodulesConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_logsconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-project_logsconfig.go
new file mode 100644
index 0000000000..3268315b94
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_logsconfig.go
@@ -0,0 +1,40 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_LogsConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.LogsConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html
+type Project_LogsConfig struct {
+
+ // CloudWatchLogs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html#cfn-codebuild-project-logsconfig-cloudwatchlogs
+ CloudWatchLogs *Project_CloudWatchLogsConfig `json:"CloudWatchLogs,omitempty"`
+
+ // S3Logs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-logsconfig.html#cfn-codebuild-project-logsconfig-s3logs
+ S3Logs *Project_S3LogsConfig `json:"S3Logs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_LogsConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.LogsConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_projectbuildbatchconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-project_projectbuildbatchconfig.go
new file mode 100644
index 0000000000..57c8d1b247
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_projectbuildbatchconfig.go
@@ -0,0 +1,57 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_ProjectBuildBatchConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.ProjectBuildBatchConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html
+type Project_ProjectBuildBatchConfig struct {
+
+ // BatchReportMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html#cfn-codebuild-project-projectbuildbatchconfig-batchreportmode
+ BatchReportMode *types.Value `json:"BatchReportMode,omitempty"`
+
+ // CombineArtifacts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html#cfn-codebuild-project-projectbuildbatchconfig-combineartifacts
+ CombineArtifacts *types.Value `json:"CombineArtifacts,omitempty"`
+
+ // Restrictions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html#cfn-codebuild-project-projectbuildbatchconfig-restrictions
+ Restrictions *Project_BatchRestrictions `json:"Restrictions,omitempty"`
+
+ // ServiceRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html#cfn-codebuild-project-projectbuildbatchconfig-servicerole
+ ServiceRole *types.Value `json:"ServiceRole,omitempty"`
+
+ // TimeoutInMins AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectbuildbatchconfig.html#cfn-codebuild-project-projectbuildbatchconfig-timeoutinmins
+ TimeoutInMins *types.Value `json:"TimeoutInMins,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_ProjectBuildBatchConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.ProjectBuildBatchConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_projectcache.go b/goformation/cloudformation/codebuild/aws-codebuild-project_projectcache.go
new file mode 100644
index 0000000000..d96f16d91d
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_projectcache.go
@@ -0,0 +1,47 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_ProjectCache AWS CloudFormation Resource (AWS::CodeBuild::Project.ProjectCache)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html
+type Project_ProjectCache struct {
+
+ // Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // Modes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-modes
+ Modes *types.Value `json:"Modes,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectcache.html#cfn-codebuild-project-projectcache-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_ProjectCache) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.ProjectCache"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_projectfilesystemlocation.go b/goformation/cloudformation/codebuild/aws-codebuild-project_projectfilesystemlocation.go
new file mode 100644
index 0000000000..6ffa554432
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_projectfilesystemlocation.go
@@ -0,0 +1,57 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_ProjectFileSystemLocation AWS CloudFormation Resource (AWS::CodeBuild::Project.ProjectFileSystemLocation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html
+type Project_ProjectFileSystemLocation struct {
+
+ // Identifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html#cfn-codebuild-project-projectfilesystemlocation-identifier
+ Identifier *types.Value `json:"Identifier,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html#cfn-codebuild-project-projectfilesystemlocation-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // MountOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html#cfn-codebuild-project-projectfilesystemlocation-mountoptions
+ MountOptions *types.Value `json:"MountOptions,omitempty"`
+
+ // MountPoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html#cfn-codebuild-project-projectfilesystemlocation-mountpoint
+ MountPoint *types.Value `json:"MountPoint,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectfilesystemlocation.html#cfn-codebuild-project-projectfilesystemlocation-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_ProjectFileSystemLocation) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.ProjectFileSystemLocation"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_projectsourceversion.go b/goformation/cloudformation/codebuild/aws-codebuild-project_projectsourceversion.go
new file mode 100644
index 0000000000..c9de41f1fc
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_projectsourceversion.go
@@ -0,0 +1,42 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_ProjectSourceVersion AWS CloudFormation Resource (AWS::CodeBuild::Project.ProjectSourceVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html
+type Project_ProjectSourceVersion struct {
+
+ // SourceIdentifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html#cfn-codebuild-project-projectsourceversion-sourceidentifier
+ SourceIdentifier *types.Value `json:"SourceIdentifier,omitempty"`
+
+ // SourceVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projectsourceversion.html#cfn-codebuild-project-projectsourceversion-sourceversion
+ SourceVersion *types.Value `json:"SourceVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_ProjectSourceVersion) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.ProjectSourceVersion"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_projecttriggers.go b/goformation/cloudformation/codebuild/aws-codebuild-project_projecttriggers.go
new file mode 100644
index 0000000000..3d46f7233b
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_projecttriggers.go
@@ -0,0 +1,47 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_ProjectTriggers AWS CloudFormation Resource (AWS::CodeBuild::Project.ProjectTriggers)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html
+type Project_ProjectTriggers struct {
+
+ // BuildType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html#cfn-codebuild-project-projecttriggers-buildtype
+ BuildType *types.Value `json:"BuildType,omitempty"`
+
+ // FilterGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html#cfn-codebuild-project-projecttriggers-filtergroups
+ FilterGroups []Project_FilterGroup `json:"FilterGroups,omitempty"`
+
+ // Webhook AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-projecttriggers.html#cfn-codebuild-project-projecttriggers-webhook
+ Webhook *types.Value `json:"Webhook,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_ProjectTriggers) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.ProjectTriggers"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_registrycredential.go b/goformation/cloudformation/codebuild/aws-codebuild-project_registrycredential.go
new file mode 100644
index 0000000000..075852b723
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_registrycredential.go
@@ -0,0 +1,42 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_RegistryCredential AWS CloudFormation Resource (AWS::CodeBuild::Project.RegistryCredential)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html
+type Project_RegistryCredential struct {
+
+ // Credential AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html#cfn-codebuild-project-registrycredential-credential
+ Credential *types.Value `json:"Credential,omitempty"`
+
+ // CredentialProvider AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-registrycredential.html#cfn-codebuild-project-registrycredential-credentialprovider
+ CredentialProvider *types.Value `json:"CredentialProvider,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_RegistryCredential) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.RegistryCredential"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_s3logsconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-project_s3logsconfig.go
new file mode 100644
index 0000000000..fe2c074315
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_s3logsconfig.go
@@ -0,0 +1,47 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_S3LogsConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.S3LogsConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-s3logsconfig.html
+type Project_S3LogsConfig struct {
+
+ // EncryptionDisabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-s3logsconfig.html#cfn-codebuild-project-s3logsconfig-encryptiondisabled
+ EncryptionDisabled *types.Value `json:"EncryptionDisabled,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-s3logsconfig.html#cfn-codebuild-project-s3logsconfig-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-s3logsconfig.html#cfn-codebuild-project-s3logsconfig-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_S3LogsConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.S3LogsConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_source.go b/goformation/cloudformation/codebuild/aws-codebuild-project_source.go
new file mode 100644
index 0000000000..7edf6efd3f
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_source.go
@@ -0,0 +1,82 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_Source AWS CloudFormation Resource (AWS::CodeBuild::Project.Source)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html
+type Project_Source struct {
+
+ // Auth AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-auth
+ Auth *Project_SourceAuth `json:"Auth,omitempty"`
+
+ // BuildSpec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-buildspec
+ BuildSpec *types.Value `json:"BuildSpec,omitempty"`
+
+ // BuildStatusConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-buildstatusconfig
+ BuildStatusConfig *Project_BuildStatusConfig `json:"BuildStatusConfig,omitempty"`
+
+ // GitCloneDepth AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-gitclonedepth
+ GitCloneDepth *types.Value `json:"GitCloneDepth,omitempty"`
+
+ // GitSubmodulesConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-gitsubmodulesconfig
+ GitSubmodulesConfig *Project_GitSubmodulesConfig `json:"GitSubmodulesConfig,omitempty"`
+
+ // InsecureSsl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-insecuressl
+ InsecureSsl *types.Value `json:"InsecureSsl,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // ReportBuildStatus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-reportbuildstatus
+ ReportBuildStatus *types.Value `json:"ReportBuildStatus,omitempty"`
+
+ // SourceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-sourceidentifier
+ SourceIdentifier *types.Value `json:"SourceIdentifier,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-source.html#cfn-codebuild-project-source-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_Source) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.Source"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_sourceauth.go b/goformation/cloudformation/codebuild/aws-codebuild-project_sourceauth.go
new file mode 100644
index 0000000000..1f99102835
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_sourceauth.go
@@ -0,0 +1,42 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_SourceAuth AWS CloudFormation Resource (AWS::CodeBuild::Project.SourceAuth)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html
+type Project_SourceAuth struct {
+
+ // Resource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html#cfn-codebuild-project-sourceauth-resource
+ Resource *types.Value `json:"Resource,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-sourceauth.html#cfn-codebuild-project-sourceauth-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_SourceAuth) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.SourceAuth"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_vpcconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-project_vpcconfig.go
new file mode 100644
index 0000000000..45d08e43c3
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_vpcconfig.go
@@ -0,0 +1,47 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_VpcConfig AWS CloudFormation Resource (AWS::CodeBuild::Project.VpcConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html
+type Project_VpcConfig struct {
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html#cfn-codebuild-project-vpcconfig-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_VpcConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.VpcConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-project_webhookfilter.go b/goformation/cloudformation/codebuild/aws-codebuild-project_webhookfilter.go
new file mode 100644
index 0000000000..df185d81e0
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-project_webhookfilter.go
@@ -0,0 +1,47 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_WebhookFilter AWS CloudFormation Resource (AWS::CodeBuild::Project.WebhookFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html
+type Project_WebhookFilter struct {
+
+ // ExcludeMatchedPattern AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-excludematchedpattern
+ ExcludeMatchedPattern *types.Value `json:"ExcludeMatchedPattern,omitempty"`
+
+ // Pattern AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-pattern
+ Pattern *types.Value `json:"Pattern,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-webhookfilter.html#cfn-codebuild-project-webhookfilter-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_WebhookFilter) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::Project.WebhookFilter"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-reportgroup.go b/goformation/cloudformation/codebuild/aws-codebuild-reportgroup.go
new file mode 100644
index 0000000000..d519e1e212
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-reportgroup.go
@@ -0,0 +1,129 @@
+package codebuild
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReportGroup AWS CloudFormation Resource (AWS::CodeBuild::ReportGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html
+type ReportGroup struct {
+
+ // DeleteReports AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html#cfn-codebuild-reportgroup-deletereports
+ DeleteReports *types.Value `json:"DeleteReports,omitempty"`
+
+ // ExportConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html#cfn-codebuild-reportgroup-exportconfig
+ ExportConfig *ReportGroup_ReportExportConfig `json:"ExportConfig,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html#cfn-codebuild-reportgroup-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html#cfn-codebuild-reportgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-reportgroup.html#cfn-codebuild-reportgroup-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReportGroup) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::ReportGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReportGroup) MarshalJSON() ([]byte, error) {
+ type Properties ReportGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReportGroup) UnmarshalJSON(b []byte) error {
+ type Properties ReportGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReportGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-reportgroup_reportexportconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-reportgroup_reportexportconfig.go
new file mode 100644
index 0000000000..316b8a21fc
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-reportgroup_reportexportconfig.go
@@ -0,0 +1,42 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReportGroup_ReportExportConfig AWS CloudFormation Resource (AWS::CodeBuild::ReportGroup.ReportExportConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html
+type ReportGroup_ReportExportConfig struct {
+
+ // ExportConfigType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html#cfn-codebuild-reportgroup-reportexportconfig-exportconfigtype
+ ExportConfigType *types.Value `json:"ExportConfigType,omitempty"`
+
+ // S3Destination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-reportexportconfig.html#cfn-codebuild-reportgroup-reportexportconfig-s3destination
+ S3Destination *ReportGroup_S3ReportExportConfig `json:"S3Destination,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReportGroup_ReportExportConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::ReportGroup.ReportExportConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-reportgroup_s3reportexportconfig.go b/goformation/cloudformation/codebuild/aws-codebuild-reportgroup_s3reportexportconfig.go
new file mode 100644
index 0000000000..5d1a0970ee
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-reportgroup_s3reportexportconfig.go
@@ -0,0 +1,62 @@
+package codebuild
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReportGroup_S3ReportExportConfig AWS CloudFormation Resource (AWS::CodeBuild::ReportGroup.S3ReportExportConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html
+type ReportGroup_S3ReportExportConfig struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // BucketOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-bucketowner
+ BucketOwner *types.Value `json:"BucketOwner,omitempty"`
+
+ // EncryptionDisabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-encryptiondisabled
+ EncryptionDisabled *types.Value `json:"EncryptionDisabled,omitempty"`
+
+ // EncryptionKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-encryptionkey
+ EncryptionKey *types.Value `json:"EncryptionKey,omitempty"`
+
+ // Packaging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-packaging
+ Packaging *types.Value `json:"Packaging,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-reportgroup-s3reportexportconfig.html#cfn-codebuild-reportgroup-s3reportexportconfig-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReportGroup_S3ReportExportConfig) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::ReportGroup.S3ReportExportConfig"
+}
diff --git a/goformation/cloudformation/codebuild/aws-codebuild-sourcecredential.go b/goformation/cloudformation/codebuild/aws-codebuild-sourcecredential.go
new file mode 100644
index 0000000000..90deac45f1
--- /dev/null
+++ b/goformation/cloudformation/codebuild/aws-codebuild-sourcecredential.go
@@ -0,0 +1,123 @@
+package codebuild
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SourceCredential AWS CloudFormation Resource (AWS::CodeBuild::SourceCredential)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html
+type SourceCredential struct {
+
+ // AuthType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-authtype
+ AuthType *types.Value `json:"AuthType,omitempty"`
+
+ // ServerType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-servertype
+ ServerType *types.Value `json:"ServerType,omitempty"`
+
+ // Token AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-token
+ Token *types.Value `json:"Token,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-sourcecredential.html#cfn-codebuild-sourcecredential-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SourceCredential) AWSCloudFormationType() string {
+ return "AWS::CodeBuild::SourceCredential"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SourceCredential) MarshalJSON() ([]byte, error) {
+ type Properties SourceCredential
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SourceCredential) UnmarshalJSON(b []byte) error {
+ type Properties SourceCredential
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SourceCredential(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codecommit/aws-codecommit-repository.go b/goformation/cloudformation/codecommit/aws-codecommit-repository.go
new file mode 100644
index 0000000000..d6e57cab5a
--- /dev/null
+++ b/goformation/cloudformation/codecommit/aws-codecommit-repository.go
@@ -0,0 +1,129 @@
+package codecommit
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository AWS CloudFormation Resource (AWS::CodeCommit::Repository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html
+type Repository struct {
+
+ // Code AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-code
+ Code *Repository_Code `json:"Code,omitempty"`
+
+ // RepositoryDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-repositorydescription
+ RepositoryDescription *types.Value `json:"RepositoryDescription,omitempty"`
+
+ // RepositoryName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-repositoryname
+ RepositoryName *types.Value `json:"RepositoryName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Triggers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codecommit-repository.html#cfn-codecommit-repository-triggers
+ Triggers []Repository_RepositoryTrigger `json:"Triggers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository) AWSCloudFormationType() string {
+ return "AWS::CodeCommit::Repository"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Repository) MarshalJSON() ([]byte, error) {
+ type Properties Repository
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Repository) UnmarshalJSON(b []byte) error {
+ type Properties Repository
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Repository(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codecommit/aws-codecommit-repository_code.go b/goformation/cloudformation/codecommit/aws-codecommit-repository_code.go
new file mode 100644
index 0000000000..1b78790a6c
--- /dev/null
+++ b/goformation/cloudformation/codecommit/aws-codecommit-repository_code.go
@@ -0,0 +1,42 @@
+package codecommit
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository_Code AWS CloudFormation Resource (AWS::CodeCommit::Repository.Code)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html
+type Repository_Code struct {
+
+ // BranchName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html#cfn-codecommit-repository-code-branchname
+ BranchName *types.Value `json:"BranchName,omitempty"`
+
+ // S3 AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-code.html#cfn-codecommit-repository-code-s3
+ S3 *Repository_S3 `json:"S3,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository_Code) AWSCloudFormationType() string {
+ return "AWS::CodeCommit::Repository.Code"
+}
diff --git a/goformation/cloudformation/codecommit/aws-codecommit-repository_repositorytrigger.go b/goformation/cloudformation/codecommit/aws-codecommit-repository_repositorytrigger.go
new file mode 100644
index 0000000000..e135930cc6
--- /dev/null
+++ b/goformation/cloudformation/codecommit/aws-codecommit-repository_repositorytrigger.go
@@ -0,0 +1,57 @@
+package codecommit
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository_RepositoryTrigger AWS CloudFormation Resource (AWS::CodeCommit::Repository.RepositoryTrigger)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html
+type Repository_RepositoryTrigger struct {
+
+ // Branches AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-branches
+ Branches *types.Value `json:"Branches,omitempty"`
+
+ // CustomData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-customdata
+ CustomData *types.Value `json:"CustomData,omitempty"`
+
+ // DestinationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-destinationarn
+ DestinationArn *types.Value `json:"DestinationArn,omitempty"`
+
+ // Events AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-events
+ Events *types.Value `json:"Events,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-repositorytrigger.html#cfn-codecommit-repository-repositorytrigger-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository_RepositoryTrigger) AWSCloudFormationType() string {
+ return "AWS::CodeCommit::Repository.RepositoryTrigger"
+}
diff --git a/goformation/cloudformation/codecommit/aws-codecommit-repository_s3.go b/goformation/cloudformation/codecommit/aws-codecommit-repository_s3.go
new file mode 100644
index 0000000000..9412d07f7a
--- /dev/null
+++ b/goformation/cloudformation/codecommit/aws-codecommit-repository_s3.go
@@ -0,0 +1,47 @@
+package codecommit
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository_S3 AWS CloudFormation Resource (AWS::CodeCommit::Repository.S3)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html
+type Repository_S3 struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html#cfn-codecommit-repository-s3-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html#cfn-codecommit-repository-s3-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // ObjectVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codecommit-repository-s3.html#cfn-codecommit-repository-s3-objectversion
+ ObjectVersion *types.Value `json:"ObjectVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository_S3) AWSCloudFormationType() string {
+ return "AWS::CodeCommit::Repository.S3"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-application.go b/goformation/cloudformation/codedeploy/aws-codedeploy-application.go
new file mode 100644
index 0000000000..ad31d0c761
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-application.go
@@ -0,0 +1,119 @@
+package codedeploy
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application AWS CloudFormation Resource (AWS::CodeDeploy::Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html
+type Application struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // ComputePlatform AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-computeplatform
+ ComputePlatform *types.Value `json:"ComputePlatform,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html#cfn-codedeploy-application-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::Application"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Application) MarshalJSON() ([]byte, error) {
+ type Properties Application
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Application) UnmarshalJSON(b []byte) error {
+ type Properties Application
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Application(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig.go
new file mode 100644
index 0000000000..146050f3e8
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig.go
@@ -0,0 +1,123 @@
+package codedeploy
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentConfig AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html
+type DeploymentConfig struct {
+
+ // ComputePlatform AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-computeplatform
+ ComputePlatform *types.Value `json:"ComputePlatform,omitempty"`
+
+ // DeploymentConfigName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-deploymentconfigname
+ DeploymentConfigName *types.Value `json:"DeploymentConfigName,omitempty"`
+
+ // MinimumHealthyHosts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts
+ MinimumHealthyHosts *DeploymentConfig_MinimumHealthyHosts `json:"MinimumHealthyHosts,omitempty"`
+
+ // TrafficRoutingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html#cfn-codedeploy-deploymentconfig-trafficroutingconfig
+ TrafficRoutingConfig *DeploymentConfig_TrafficRoutingConfig `json:"TrafficRoutingConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentConfig) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentConfig"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DeploymentConfig) MarshalJSON() ([]byte, error) {
+ type Properties DeploymentConfig
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DeploymentConfig) UnmarshalJSON(b []byte) error {
+ type Properties DeploymentConfig
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DeploymentConfig(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go
new file mode 100644
index 0000000000..d3144a723c
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_minimumhealthyhosts.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentConfig_MinimumHealthyHosts AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html
+type DeploymentConfig_MinimumHealthyHosts struct {
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-minimumhealthyhosts.html#cfn-codedeploy-deploymentconfig-minimumhealthyhosts-value
+ Value *types.Value `json:"Value"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentConfig_MinimumHealthyHosts) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_timebasedcanary.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_timebasedcanary.go
new file mode 100644
index 0000000000..c3f54d3663
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_timebasedcanary.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentConfig_TimeBasedCanary AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html
+type DeploymentConfig_TimeBasedCanary struct {
+
+ // CanaryInterval AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedcanary-canaryinterval
+ CanaryInterval *types.Value `json:"CanaryInterval"`
+
+ // CanaryPercentage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedcanary.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedcanary-canarypercentage
+ CanaryPercentage *types.Value `json:"CanaryPercentage"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentConfig_TimeBasedCanary) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_timebasedlinear.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_timebasedlinear.go
new file mode 100644
index 0000000000..dbe5188e24
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_timebasedlinear.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentConfig_TimeBasedLinear AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html
+type DeploymentConfig_TimeBasedLinear struct {
+
+ // LinearInterval AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedlinear-linearinterval
+ LinearInterval *types.Value `json:"LinearInterval"`
+
+ // LinearPercentage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-timebasedlinear.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedlinear-linearpercentage
+ LinearPercentage *types.Value `json:"LinearPercentage"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentConfig_TimeBasedLinear) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_trafficroutingconfig.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_trafficroutingconfig.go
new file mode 100644
index 0000000000..5448ddf6d5
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentconfig_trafficroutingconfig.go
@@ -0,0 +1,47 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentConfig_TrafficRoutingConfig AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html
+type DeploymentConfig_TrafficRoutingConfig struct {
+
+ // TimeBasedCanary AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedcanary
+ TimeBasedCanary *DeploymentConfig_TimeBasedCanary `json:"TimeBasedCanary,omitempty"`
+
+ // TimeBasedLinear AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-timebasedlinear
+ TimeBasedLinear *DeploymentConfig_TimeBasedLinear `json:"TimeBasedLinear,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentconfig-trafficroutingconfig.html#cfn-properties-codedeploy-deploymentconfig-trafficroutingconfig-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentConfig_TrafficRoutingConfig) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup.go
new file mode 100644
index 0000000000..7977bef912
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup.go
@@ -0,0 +1,188 @@
+package codedeploy
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html
+type DeploymentGroup struct {
+
+ // AlarmConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-alarmconfiguration
+ AlarmConfiguration *DeploymentGroup_AlarmConfiguration `json:"AlarmConfiguration,omitempty"`
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // AutoRollbackConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration
+ AutoRollbackConfiguration *DeploymentGroup_AutoRollbackConfiguration `json:"AutoRollbackConfiguration,omitempty"`
+
+ // AutoScalingGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-autoscalinggroups
+ AutoScalingGroups *types.Value `json:"AutoScalingGroups,omitempty"`
+
+ // BlueGreenDeploymentConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration
+ BlueGreenDeploymentConfiguration *DeploymentGroup_BlueGreenDeploymentConfiguration `json:"BlueGreenDeploymentConfiguration,omitempty"`
+
+ // Deployment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deployment
+ Deployment *DeploymentGroup_Deployment `json:"Deployment,omitempty"`
+
+ // DeploymentConfigName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentconfigname
+ DeploymentConfigName *types.Value `json:"DeploymentConfigName,omitempty"`
+
+ // DeploymentGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentgroupname
+ DeploymentGroupName *types.Value `json:"DeploymentGroupName,omitempty"`
+
+ // DeploymentStyle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-deploymentstyle
+ DeploymentStyle *DeploymentGroup_DeploymentStyle `json:"DeploymentStyle,omitempty"`
+
+ // ECSServices AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-ecsservices
+ ECSServices []DeploymentGroup_ECSService `json:"ECSServices,omitempty"`
+
+ // Ec2TagFilters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-ec2tagfilters
+ Ec2TagFilters []DeploymentGroup_EC2TagFilter `json:"Ec2TagFilters,omitempty"`
+
+ // Ec2TagSet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-ec2tagset
+ Ec2TagSet *DeploymentGroup_EC2TagSet `json:"Ec2TagSet,omitempty"`
+
+ // LoadBalancerInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo
+ LoadBalancerInfo *DeploymentGroup_LoadBalancerInfo `json:"LoadBalancerInfo,omitempty"`
+
+ // OnPremisesInstanceTagFilters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-onpremisesinstancetagfilters
+ OnPremisesInstanceTagFilters []DeploymentGroup_TagFilter `json:"OnPremisesInstanceTagFilters,omitempty"`
+
+ // OnPremisesTagSet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-onpremisestagset
+ OnPremisesTagSet *DeploymentGroup_OnPremisesTagSet `json:"OnPremisesTagSet,omitempty"`
+
+ // ServiceRoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-servicerolearn
+ ServiceRoleArn *types.Value `json:"ServiceRoleArn,omitempty"`
+
+ // TriggerConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html#cfn-codedeploy-deploymentgroup-triggerconfigurations
+ TriggerConfigurations []DeploymentGroup_TriggerConfig `json:"TriggerConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DeploymentGroup) MarshalJSON() ([]byte, error) {
+ type Properties DeploymentGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DeploymentGroup) UnmarshalJSON(b []byte) error {
+ type Properties DeploymentGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DeploymentGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_alarm.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_alarm.go
new file mode 100644
index 0000000000..546113db51
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_alarm.go
@@ -0,0 +1,37 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_Alarm AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.Alarm)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html
+type DeploymentGroup_Alarm struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarm.html#cfn-codedeploy-deploymentgroup-alarm-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_Alarm) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.Alarm"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_alarmconfiguration.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_alarmconfiguration.go
new file mode 100644
index 0000000000..56b5e4b1e4
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_alarmconfiguration.go
@@ -0,0 +1,47 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_AlarmConfiguration AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html
+type DeploymentGroup_AlarmConfiguration struct {
+
+ // Alarms AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-alarms
+ Alarms []DeploymentGroup_Alarm `json:"Alarms,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // IgnorePollAlarmFailure AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-alarmconfiguration.html#cfn-codedeploy-deploymentgroup-alarmconfiguration-ignorepollalarmfailure
+ IgnorePollAlarmFailure *types.Value `json:"IgnorePollAlarmFailure,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_AlarmConfiguration) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go
new file mode 100644
index 0000000000..ba341d8c83
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_autorollbackconfiguration.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_AutoRollbackConfiguration AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html
+type DeploymentGroup_AutoRollbackConfiguration struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // Events AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-autorollbackconfiguration.html#cfn-codedeploy-deploymentgroup-autorollbackconfiguration-events
+ Events *types.Value `json:"Events,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_AutoRollbackConfiguration) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_bluegreendeploymentconfiguration.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_bluegreendeploymentconfiguration.go
new file mode 100644
index 0000000000..8f8011800d
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_bluegreendeploymentconfiguration.go
@@ -0,0 +1,45 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_BlueGreenDeploymentConfiguration AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html
+type DeploymentGroup_BlueGreenDeploymentConfiguration struct {
+
+ // DeploymentReadyOption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-deploymentreadyoption
+ DeploymentReadyOption *DeploymentGroup_DeploymentReadyOption `json:"DeploymentReadyOption,omitempty"`
+
+ // GreenFleetProvisioningOption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-greenfleetprovisioningoption
+ GreenFleetProvisioningOption *DeploymentGroup_GreenFleetProvisioningOption `json:"GreenFleetProvisioningOption,omitempty"`
+
+ // TerminateBlueInstancesOnDeploymentSuccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-bluegreendeploymentconfiguration.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-terminateblueinstancesondeploymentsuccess
+ TerminateBlueInstancesOnDeploymentSuccess *DeploymentGroup_BlueInstanceTerminationOption `json:"TerminateBlueInstancesOnDeploymentSuccess,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_BlueGreenDeploymentConfiguration) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_blueinstanceterminationoption.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_blueinstanceterminationoption.go
new file mode 100644
index 0000000000..f19787c836
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_blueinstanceterminationoption.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_BlueInstanceTerminationOption AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html
+type DeploymentGroup_BlueInstanceTerminationOption struct {
+
+ // Action AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-blueinstanceterminationoption-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // TerminationWaitTimeInMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-blueinstanceterminationoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-blueinstanceterminationoption-terminationwaittimeinminutes
+ TerminationWaitTimeInMinutes *types.Value `json:"TerminationWaitTimeInMinutes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_BlueInstanceTerminationOption) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deployment.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deployment.go
new file mode 100644
index 0000000000..799cc3984f
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deployment.go
@@ -0,0 +1,47 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_Deployment AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.Deployment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html
+type DeploymentGroup_Deployment struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IgnoreApplicationStopFailures AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-ignoreapplicationstopfailures
+ IgnoreApplicationStopFailures *types.Value `json:"IgnoreApplicationStopFailures,omitempty"`
+
+ // Revision AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision
+ Revision *DeploymentGroup_RevisionLocation `json:"Revision,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_Deployment) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.Deployment"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deploymentreadyoption.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deploymentreadyoption.go
new file mode 100644
index 0000000000..f615444aa9
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deploymentreadyoption.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_DeploymentReadyOption AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html
+type DeploymentGroup_DeploymentReadyOption struct {
+
+ // ActionOnTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-deploymentreadyoption-actionontimeout
+ ActionOnTimeout *types.Value `json:"ActionOnTimeout,omitempty"`
+
+ // WaitTimeInMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentreadyoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-deploymentreadyoption-waittimeinminutes
+ WaitTimeInMinutes *types.Value `json:"WaitTimeInMinutes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_DeploymentReadyOption) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deploymentstyle.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deploymentstyle.go
new file mode 100644
index 0000000000..606e16532d
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_deploymentstyle.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_DeploymentStyle AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.DeploymentStyle)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html
+type DeploymentGroup_DeploymentStyle struct {
+
+ // DeploymentOption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymentoption
+ DeploymentOption *types.Value `json:"DeploymentOption,omitempty"`
+
+ // DeploymentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deploymentstyle.html#cfn-codedeploy-deploymentgroup-deploymentstyle-deploymenttype
+ DeploymentType *types.Value `json:"DeploymentType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_DeploymentStyle) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagfilter.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagfilter.go
new file mode 100644
index 0000000000..2061fe6b6e
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagfilter.go
@@ -0,0 +1,47 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_EC2TagFilter AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.EC2TagFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html
+type DeploymentGroup_EC2TagFilter struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagfilter.html#cfn-codedeploy-deploymentgroup-ec2tagfilter-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_EC2TagFilter) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagset.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagset.go
new file mode 100644
index 0000000000..569e08b0bd
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagset.go
@@ -0,0 +1,35 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_EC2TagSet AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.EC2TagSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html
+type DeploymentGroup_EC2TagSet struct {
+
+ // Ec2TagSetList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagset.html#cfn-codedeploy-deploymentgroup-ec2tagset-ec2tagsetlist
+ Ec2TagSetList []DeploymentGroup_EC2TagSetListObject `json:"Ec2TagSetList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_EC2TagSet) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.EC2TagSet"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go
new file mode 100644
index 0000000000..e182b21a20
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ec2tagsetlistobject.go
@@ -0,0 +1,35 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_EC2TagSetListObject AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html
+type DeploymentGroup_EC2TagSetListObject struct {
+
+ // Ec2TagGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ec2tagsetlistobject.html#cfn-codedeploy-deploymentgroup-ec2tagsetlistobject-ec2taggroup
+ Ec2TagGroup []DeploymentGroup_EC2TagFilter `json:"Ec2TagGroup,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_EC2TagSetListObject) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ecsservice.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ecsservice.go
new file mode 100644
index 0000000000..8469aff767
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_ecsservice.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_ECSService AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.ECSService)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html
+type DeploymentGroup_ECSService struct {
+
+ // ClusterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html#cfn-codedeploy-deploymentgroup-ecsservice-clustername
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-ecsservice.html#cfn-codedeploy-deploymentgroup-ecsservice-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_ECSService) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.ECSService"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_elbinfo.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_elbinfo.go
new file mode 100644
index 0000000000..9b71f944dd
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_elbinfo.go
@@ -0,0 +1,37 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_ELBInfo AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.ELBInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html
+type DeploymentGroup_ELBInfo struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-elbinfo.html#cfn-codedeploy-deploymentgroup-elbinfo-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_ELBInfo) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.ELBInfo"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_githublocation.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_githublocation.go
new file mode 100644
index 0000000000..505833e6b2
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_githublocation.go
@@ -0,0 +1,42 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_GitHubLocation AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.GitHubLocation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html
+type DeploymentGroup_GitHubLocation struct {
+
+ // CommitId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation-commitid
+ CommitId *types.Value `json:"CommitId,omitempty"`
+
+ // Repository AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-githublocation.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation-repository
+ Repository *types.Value `json:"Repository,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_GitHubLocation) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.GitHubLocation"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_greenfleetprovisioningoption.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_greenfleetprovisioningoption.go
new file mode 100644
index 0000000000..34dab5188e
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_greenfleetprovisioningoption.go
@@ -0,0 +1,37 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_GreenFleetProvisioningOption AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-greenfleetprovisioningoption.html
+type DeploymentGroup_GreenFleetProvisioningOption struct {
+
+ // Action AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-greenfleetprovisioningoption.html#cfn-codedeploy-deploymentgroup-bluegreendeploymentconfiguration-greenfleetprovisioningoption-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_GreenFleetProvisioningOption) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_loadbalancerinfo.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_loadbalancerinfo.go
new file mode 100644
index 0000000000..c43c8f06be
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_loadbalancerinfo.go
@@ -0,0 +1,40 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_LoadBalancerInfo AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html
+type DeploymentGroup_LoadBalancerInfo struct {
+
+ // ElbInfoList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo-elbinfolist
+ ElbInfoList []DeploymentGroup_ELBInfo `json:"ElbInfoList,omitempty"`
+
+ // TargetGroupInfoList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-loadbalancerinfo.html#cfn-codedeploy-deploymentgroup-loadbalancerinfo-targetgroupinfolist
+ TargetGroupInfoList []DeploymentGroup_TargetGroupInfo `json:"TargetGroupInfoList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_LoadBalancerInfo) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_onpremisestagset.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_onpremisestagset.go
new file mode 100644
index 0000000000..f692f51ec1
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_onpremisestagset.go
@@ -0,0 +1,35 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_OnPremisesTagSet AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html
+type DeploymentGroup_OnPremisesTagSet struct {
+
+ // OnPremisesTagSetList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagset.html#cfn-codedeploy-deploymentgroup-onpremisestagset-onpremisestagsetlist
+ OnPremisesTagSetList []DeploymentGroup_OnPremisesTagSetListObject `json:"OnPremisesTagSetList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_OnPremisesTagSet) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go
new file mode 100644
index 0000000000..c19b29c9cb
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_onpremisestagsetlistobject.go
@@ -0,0 +1,35 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_OnPremisesTagSetListObject AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html
+type DeploymentGroup_OnPremisesTagSetListObject struct {
+
+ // OnPremisesTagGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-onpremisestagsetlistobject.html#cfn-codedeploy-deploymentgroup-onpremisestagsetlistobject-onpremisestaggroup
+ OnPremisesTagGroup []DeploymentGroup_TagFilter `json:"OnPremisesTagGroup,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_OnPremisesTagSetListObject) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_revisionlocation.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_revisionlocation.go
new file mode 100644
index 0000000000..fb18710b25
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_revisionlocation.go
@@ -0,0 +1,47 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_RevisionLocation AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.RevisionLocation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html
+type DeploymentGroup_RevisionLocation struct {
+
+ // GitHubLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-githublocation
+ GitHubLocation *DeploymentGroup_GitHubLocation `json:"GitHubLocation,omitempty"`
+
+ // RevisionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-revisiontype
+ RevisionType *types.Value `json:"RevisionType,omitempty"`
+
+ // S3Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location
+ S3Location *DeploymentGroup_S3Location `json:"S3Location,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_RevisionLocation) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.RevisionLocation"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_s3location.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_s3location.go
new file mode 100644
index 0000000000..004d48fc50
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_s3location.go
@@ -0,0 +1,57 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_S3Location AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html
+type DeploymentGroup_S3Location struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // BundleType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-bundletype
+ BundleType *types.Value `json:"BundleType,omitempty"`
+
+ // ETag AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-etag
+ ETag *types.Value `json:"ETag,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-deployment-revision-s3location.html#cfn-properties-codedeploy-deploymentgroup-deployment-revision-s3location-value
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_S3Location) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.S3Location"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_tagfilter.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_tagfilter.go
new file mode 100644
index 0000000000..fd646820ce
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_tagfilter.go
@@ -0,0 +1,47 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_TagFilter AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.TagFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html
+type DeploymentGroup_TagFilter struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-tagfilter.html#cfn-codedeploy-deploymentgroup-tagfilter-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_TagFilter) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.TagFilter"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_targetgroupinfo.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_targetgroupinfo.go
new file mode 100644
index 0000000000..7a62554df6
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_targetgroupinfo.go
@@ -0,0 +1,37 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_TargetGroupInfo AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html
+type DeploymentGroup_TargetGroupInfo struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-targetgroupinfo.html#cfn-codedeploy-deploymentgroup-targetgroupinfo-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_TargetGroupInfo) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo"
+}
diff --git a/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_triggerconfig.go b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_triggerconfig.go
new file mode 100644
index 0000000000..4a44ce98f5
--- /dev/null
+++ b/goformation/cloudformation/codedeploy/aws-codedeploy-deploymentgroup_triggerconfig.go
@@ -0,0 +1,47 @@
+package codedeploy
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeploymentGroup_TriggerConfig AWS CloudFormation Resource (AWS::CodeDeploy::DeploymentGroup.TriggerConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html
+type DeploymentGroup_TriggerConfig struct {
+
+ // TriggerEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggerevents
+ TriggerEvents *types.Value `json:"TriggerEvents,omitempty"`
+
+ // TriggerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggername
+ TriggerName *types.Value `json:"TriggerName,omitempty"`
+
+ // TriggerTargetArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codedeploy-deploymentgroup-triggerconfig.html#cfn-codedeploy-deploymentgroup-triggerconfig-triggertargetarn
+ TriggerTargetArn *types.Value `json:"TriggerTargetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeploymentGroup_TriggerConfig) AWSCloudFormationType() string {
+ return "AWS::CodeDeploy::DeploymentGroup.TriggerConfig"
+}
diff --git a/goformation/cloudformation/codeguruprofiler/aws-codeguruprofiler-profilinggroup.go b/goformation/cloudformation/codeguruprofiler/aws-codeguruprofiler-profilinggroup.go
new file mode 100644
index 0000000000..26017ffc3e
--- /dev/null
+++ b/goformation/cloudformation/codeguruprofiler/aws-codeguruprofiler-profilinggroup.go
@@ -0,0 +1,129 @@
+package codeguruprofiler
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ProfilingGroup AWS CloudFormation Resource (AWS::CodeGuruProfiler::ProfilingGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html
+type ProfilingGroup struct {
+
+ // AgentPermissions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-agentpermissions
+ AgentPermissions interface{} `json:"AgentPermissions,omitempty"`
+
+ // AnomalyDetectionNotificationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-anomalydetectionnotificationconfiguration
+ AnomalyDetectionNotificationConfiguration []ProfilingGroup_Channel `json:"AnomalyDetectionNotificationConfiguration,omitempty"`
+
+ // ComputePlatform AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-computeplatform
+ ComputePlatform *types.Value `json:"ComputePlatform,omitempty"`
+
+ // ProfilingGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-profilinggroupname
+ ProfilingGroupName *types.Value `json:"ProfilingGroupName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeguruprofiler-profilinggroup.html#cfn-codeguruprofiler-profilinggroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ProfilingGroup) AWSCloudFormationType() string {
+ return "AWS::CodeGuruProfiler::ProfilingGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ProfilingGroup) MarshalJSON() ([]byte, error) {
+ type Properties ProfilingGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ProfilingGroup) UnmarshalJSON(b []byte) error {
+ type Properties ProfilingGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ProfilingGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codeguruprofiler/aws-codeguruprofiler-profilinggroup_channel.go b/goformation/cloudformation/codeguruprofiler/aws-codeguruprofiler-profilinggroup_channel.go
new file mode 100644
index 0000000000..a161015acc
--- /dev/null
+++ b/goformation/cloudformation/codeguruprofiler/aws-codeguruprofiler-profilinggroup_channel.go
@@ -0,0 +1,42 @@
+package codeguruprofiler
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ProfilingGroup_Channel AWS CloudFormation Resource (AWS::CodeGuruProfiler::ProfilingGroup.Channel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeguruprofiler-profilinggroup-channel.html
+type ProfilingGroup_Channel struct {
+
+ // channelId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeguruprofiler-profilinggroup-channel.html#cfn-codeguruprofiler-profilinggroup-channel-channelid
+ channelId *types.Value `json:"channelId,omitempty"`
+
+ // channelUri AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codeguruprofiler-profilinggroup-channel.html#cfn-codeguruprofiler-profilinggroup-channel-channeluri
+ channelUri *types.Value `json:"channelUri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ProfilingGroup_Channel) AWSCloudFormationType() string {
+ return "AWS::CodeGuruProfiler::ProfilingGroup.Channel"
+}
diff --git a/goformation/cloudformation/codegurureviewer/aws-codegurureviewer-repositoryassociation.go b/goformation/cloudformation/codegurureviewer/aws-codegurureviewer-repositoryassociation.go
new file mode 100644
index 0000000000..4163b22f76
--- /dev/null
+++ b/goformation/cloudformation/codegurureviewer/aws-codegurureviewer-repositoryassociation.go
@@ -0,0 +1,134 @@
+package codegurureviewer
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// RepositoryAssociation AWS CloudFormation Resource (AWS::CodeGuruReviewer::RepositoryAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html
+type RepositoryAssociation struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html#cfn-codegurureviewer-repositoryassociation-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // ConnectionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html#cfn-codegurureviewer-repositoryassociation-connectionarn
+ ConnectionArn *types.Value `json:"ConnectionArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html#cfn-codegurureviewer-repositoryassociation-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Owner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html#cfn-codegurureviewer-repositoryassociation-owner
+ Owner *types.Value `json:"Owner,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html#cfn-codegurureviewer-repositoryassociation-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codegurureviewer-repositoryassociation.html#cfn-codegurureviewer-repositoryassociation-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RepositoryAssociation) AWSCloudFormationType() string {
+ return "AWS::CodeGuruReviewer::RepositoryAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RepositoryAssociation) MarshalJSON() ([]byte, error) {
+ type Properties RepositoryAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RepositoryAssociation) UnmarshalJSON(b []byte) error {
+ type Properties RepositoryAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RepositoryAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype.go b/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype.go
new file mode 100644
index 0000000000..5410d968cc
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype.go
@@ -0,0 +1,144 @@
+package codepipeline
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CustomActionType AWS CloudFormation Resource (AWS::CodePipeline::CustomActionType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html
+type CustomActionType struct {
+
+ // Category AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-category
+ Category *types.Value `json:"Category,omitempty"`
+
+ // ConfigurationProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-configurationproperties
+ ConfigurationProperties []CustomActionType_ConfigurationProperties `json:"ConfigurationProperties,omitempty"`
+
+ // InputArtifactDetails AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-inputartifactdetails
+ InputArtifactDetails *CustomActionType_ArtifactDetails `json:"InputArtifactDetails,omitempty"`
+
+ // OutputArtifactDetails AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-outputartifactdetails
+ OutputArtifactDetails *CustomActionType_ArtifactDetails `json:"OutputArtifactDetails,omitempty"`
+
+ // Provider AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-provider
+ Provider *types.Value `json:"Provider,omitempty"`
+
+ // Settings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings
+ Settings *CustomActionType_Settings `json:"Settings,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomActionType) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::CustomActionType"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CustomActionType) MarshalJSON() ([]byte, error) {
+ type Properties CustomActionType
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CustomActionType) UnmarshalJSON(b []byte) error {
+ type Properties CustomActionType
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CustomActionType(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_artifactdetails.go b/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_artifactdetails.go
new file mode 100644
index 0000000000..6d8980afa4
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_artifactdetails.go
@@ -0,0 +1,42 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CustomActionType_ArtifactDetails AWS CloudFormation Resource (AWS::CodePipeline::CustomActionType.ArtifactDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html
+type CustomActionType_ArtifactDetails struct {
+
+ // MaximumCount AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html#cfn-codepipeline-customactiontype-artifactdetails-maximumcount
+ MaximumCount *types.Value `json:"MaximumCount"`
+
+ // MinimumCount AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html#cfn-codepipeline-customactiontype-artifactdetails-minimumcount
+ MinimumCount *types.Value `json:"MinimumCount"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomActionType_ArtifactDetails) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::CustomActionType.ArtifactDetails"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_configurationproperties.go b/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_configurationproperties.go
new file mode 100644
index 0000000000..a8fc78b189
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_configurationproperties.go
@@ -0,0 +1,67 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CustomActionType_ConfigurationProperties AWS CloudFormation Resource (AWS::CodePipeline::CustomActionType.ConfigurationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html
+type CustomActionType_ConfigurationProperties struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-key
+ Key *types.Value `json:"Key"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Queryable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-queryable
+ Queryable *types.Value `json:"Queryable,omitempty"`
+
+ // Required AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-required
+ Required *types.Value `json:"Required"`
+
+ // Secret AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-secret
+ Secret *types.Value `json:"Secret"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomActionType_ConfigurationProperties) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::CustomActionType.ConfigurationProperties"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_settings.go b/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_settings.go
new file mode 100644
index 0000000000..fb8b89d268
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-customactiontype_settings.go
@@ -0,0 +1,52 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CustomActionType_Settings AWS CloudFormation Resource (AWS::CodePipeline::CustomActionType.Settings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html
+type CustomActionType_Settings struct {
+
+ // EntityUrlTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-entityurltemplate
+ EntityUrlTemplate *types.Value `json:"EntityUrlTemplate,omitempty"`
+
+ // ExecutionUrlTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-executionurltemplate
+ ExecutionUrlTemplate *types.Value `json:"ExecutionUrlTemplate,omitempty"`
+
+ // RevisionUrlTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-revisionurltemplate
+ RevisionUrlTemplate *types.Value `json:"RevisionUrlTemplate,omitempty"`
+
+ // ThirdPartyConfigurationUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-thirdpartyconfigurationurl
+ ThirdPartyConfigurationUrl *types.Value `json:"ThirdPartyConfigurationUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomActionType_Settings) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::CustomActionType.Settings"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline.go
new file mode 100644
index 0000000000..7d524b870a
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline.go
@@ -0,0 +1,144 @@
+package codepipeline
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline AWS CloudFormation Resource (AWS::CodePipeline::Pipeline)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html
+type Pipeline struct {
+
+ // ArtifactStore AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-artifactstore
+ ArtifactStore *Pipeline_ArtifactStore `json:"ArtifactStore,omitempty"`
+
+ // ArtifactStores AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-artifactstores
+ ArtifactStores []Pipeline_ArtifactStoreMap `json:"ArtifactStores,omitempty"`
+
+ // DisableInboundStageTransitions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-disableinboundstagetransitions
+ DisableInboundStageTransitions []Pipeline_StageTransition `json:"DisableInboundStageTransitions,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RestartExecutionOnUpdate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-restartexecutiononupdate
+ RestartExecutionOnUpdate *types.Value `json:"RestartExecutionOnUpdate,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Stages AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-stages
+ Stages []Pipeline_StageDeclaration `json:"Stages,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Pipeline) MarshalJSON() ([]byte, error) {
+ type Properties Pipeline
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Pipeline) UnmarshalJSON(b []byte) error {
+ type Properties Pipeline
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Pipeline(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_actiondeclaration.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_actiondeclaration.go
new file mode 100644
index 0000000000..e97ccd912d
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_actiondeclaration.go
@@ -0,0 +1,77 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_ActionDeclaration AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.ActionDeclaration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html
+type Pipeline_ActionDeclaration struct {
+
+ // ActionTypeId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid
+ ActionTypeId *Pipeline_ActionTypeId `json:"ActionTypeId,omitempty"`
+
+ // Configuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-configuration
+ Configuration interface{} `json:"Configuration,omitempty"`
+
+ // InputArtifacts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-inputartifacts
+ InputArtifacts []Pipeline_InputArtifact `json:"InputArtifacts,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-actiondeclaration-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // OutputArtifacts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-outputartifacts
+ OutputArtifacts []Pipeline_OutputArtifact `json:"OutputArtifacts,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // RunOrder AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-runorder
+ RunOrder *types.Value `json:"RunOrder,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_ActionDeclaration) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.ActionDeclaration"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_actiontypeid.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_actiontypeid.go
new file mode 100644
index 0000000000..7de517fa2a
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_actiontypeid.go
@@ -0,0 +1,52 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_ActionTypeId AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.ActionTypeId)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html
+type Pipeline_ActionTypeId struct {
+
+ // Category AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-category
+ Category *types.Value `json:"Category,omitempty"`
+
+ // Owner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-owner
+ Owner *types.Value `json:"Owner,omitempty"`
+
+ // Provider AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-provider
+ Provider *types.Value `json:"Provider,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_ActionTypeId) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.ActionTypeId"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_artifactstore.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_artifactstore.go
new file mode 100644
index 0000000000..3fe27d5b1d
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_artifactstore.go
@@ -0,0 +1,47 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_ArtifactStore AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.ArtifactStore)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html
+type Pipeline_ArtifactStore struct {
+
+ // EncryptionKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey
+ EncryptionKey *Pipeline_EncryptionKey `json:"EncryptionKey,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_ArtifactStore) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.ArtifactStore"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_artifactstoremap.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_artifactstoremap.go
new file mode 100644
index 0000000000..a65c53a0cd
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_artifactstoremap.go
@@ -0,0 +1,42 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_ArtifactStoreMap AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.ArtifactStoreMap)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstoremap.html
+type Pipeline_ArtifactStoreMap struct {
+
+ // ArtifactStore AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstoremap.html#cfn-codepipeline-pipeline-artifactstoremap-artifactstore
+ ArtifactStore *Pipeline_ArtifactStore `json:"ArtifactStore,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstoremap.html#cfn-codepipeline-pipeline-artifactstoremap-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_ArtifactStoreMap) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.ArtifactStoreMap"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_blockerdeclaration.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_blockerdeclaration.go
new file mode 100644
index 0000000000..e6812ce84a
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_blockerdeclaration.go
@@ -0,0 +1,42 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_BlockerDeclaration AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.BlockerDeclaration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html
+type Pipeline_BlockerDeclaration struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html#cfn-codepipeline-pipeline-stages-blockers-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html#cfn-codepipeline-pipeline-stages-blockers-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_BlockerDeclaration) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.BlockerDeclaration"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_encryptionkey.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_encryptionkey.go
new file mode 100644
index 0000000000..2551662562
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_encryptionkey.go
@@ -0,0 +1,42 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_EncryptionKey AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.EncryptionKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html
+type Pipeline_EncryptionKey struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_EncryptionKey) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.EncryptionKey"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_inputartifact.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_inputartifact.go
new file mode 100644
index 0000000000..87760e1b4b
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_inputartifact.go
@@ -0,0 +1,37 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_InputArtifact AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.InputArtifact)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html
+type Pipeline_InputArtifact struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html#cfn-codepipeline-pipeline-stages-actions-inputartifacts-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_InputArtifact) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.InputArtifact"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_outputartifact.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_outputartifact.go
new file mode 100644
index 0000000000..cb22f660c6
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_outputartifact.go
@@ -0,0 +1,37 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_OutputArtifact AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.OutputArtifact)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html
+type Pipeline_OutputArtifact struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html#cfn-codepipeline-pipeline-stages-actions-outputartifacts-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_OutputArtifact) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.OutputArtifact"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_stagedeclaration.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_stagedeclaration.go
new file mode 100644
index 0000000000..c2086addb2
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_stagedeclaration.go
@@ -0,0 +1,47 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_StageDeclaration AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.StageDeclaration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html
+type Pipeline_StageDeclaration struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-actions
+ Actions []Pipeline_ActionDeclaration `json:"Actions,omitempty"`
+
+ // Blockers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-blockers
+ Blockers []Pipeline_BlockerDeclaration `json:"Blockers,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_StageDeclaration) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.StageDeclaration"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_stagetransition.go b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_stagetransition.go
new file mode 100644
index 0000000000..4896f64755
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-pipeline_stagetransition.go
@@ -0,0 +1,42 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_StageTransition AWS CloudFormation Resource (AWS::CodePipeline::Pipeline.StageTransition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html
+type Pipeline_StageTransition struct {
+
+ // Reason AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html#cfn-codepipeline-pipeline-disableinboundstagetransitions-reason
+ Reason *types.Value `json:"Reason,omitempty"`
+
+ // StageName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html#cfn-codepipeline-pipeline-disableinboundstagetransitions-stagename
+ StageName *types.Value `json:"StageName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_StageTransition) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Pipeline.StageTransition"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-webhook.go b/goformation/cloudformation/codepipeline/aws-codepipeline-webhook.go
new file mode 100644
index 0000000000..69ccae9ba4
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-webhook.go
@@ -0,0 +1,143 @@
+package codepipeline
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Webhook AWS CloudFormation Resource (AWS::CodePipeline::Webhook)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html
+type Webhook struct {
+
+ // Authentication AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-authentication
+ Authentication *types.Value `json:"Authentication,omitempty"`
+
+ // AuthenticationConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-authenticationconfiguration
+ AuthenticationConfiguration *Webhook_WebhookAuthConfiguration `json:"AuthenticationConfiguration,omitempty"`
+
+ // Filters AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-filters
+ Filters []Webhook_WebhookFilterRule `json:"Filters,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RegisterWithThirdParty AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-registerwiththirdparty
+ RegisterWithThirdParty *types.Value `json:"RegisterWithThirdParty,omitempty"`
+
+ // TargetAction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-targetaction
+ TargetAction *types.Value `json:"TargetAction,omitempty"`
+
+ // TargetPipeline AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-targetpipeline
+ TargetPipeline *types.Value `json:"TargetPipeline,omitempty"`
+
+ // TargetPipelineVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html#cfn-codepipeline-webhook-targetpipelineversion
+ TargetPipelineVersion *types.Value `json:"TargetPipelineVersion"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Webhook) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Webhook"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Webhook) MarshalJSON() ([]byte, error) {
+ type Properties Webhook
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Webhook) UnmarshalJSON(b []byte) error {
+ type Properties Webhook
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Webhook(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-webhook_webhookauthconfiguration.go b/goformation/cloudformation/codepipeline/aws-codepipeline-webhook_webhookauthconfiguration.go
new file mode 100644
index 0000000000..8c89f49115
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-webhook_webhookauthconfiguration.go
@@ -0,0 +1,42 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Webhook_WebhookAuthConfiguration AWS CloudFormation Resource (AWS::CodePipeline::Webhook.WebhookAuthConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookauthconfiguration.html
+type Webhook_WebhookAuthConfiguration struct {
+
+ // AllowedIPRange AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookauthconfiguration.html#cfn-codepipeline-webhook-webhookauthconfiguration-allowediprange
+ AllowedIPRange *types.Value `json:"AllowedIPRange,omitempty"`
+
+ // SecretToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookauthconfiguration.html#cfn-codepipeline-webhook-webhookauthconfiguration-secrettoken
+ SecretToken *types.Value `json:"SecretToken,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Webhook_WebhookAuthConfiguration) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Webhook.WebhookAuthConfiguration"
+}
diff --git a/goformation/cloudformation/codepipeline/aws-codepipeline-webhook_webhookfilterrule.go b/goformation/cloudformation/codepipeline/aws-codepipeline-webhook_webhookfilterrule.go
new file mode 100644
index 0000000000..9e60fc38e8
--- /dev/null
+++ b/goformation/cloudformation/codepipeline/aws-codepipeline-webhook_webhookfilterrule.go
@@ -0,0 +1,42 @@
+package codepipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Webhook_WebhookFilterRule AWS CloudFormation Resource (AWS::CodePipeline::Webhook.WebhookFilterRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookfilterrule.html
+type Webhook_WebhookFilterRule struct {
+
+ // JsonPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookfilterrule.html#cfn-codepipeline-webhook-webhookfilterrule-jsonpath
+ JsonPath *types.Value `json:"JsonPath,omitempty"`
+
+ // MatchEquals AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-webhook-webhookfilterrule.html#cfn-codepipeline-webhook-webhookfilterrule-matchequals
+ MatchEquals *types.Value `json:"MatchEquals,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Webhook_WebhookFilterRule) AWSCloudFormationType() string {
+ return "AWS::CodePipeline::Webhook.WebhookFilterRule"
+}
diff --git a/goformation/cloudformation/codestar/aws-codestar-githubrepository.go b/goformation/cloudformation/codestar/aws-codestar-githubrepository.go
new file mode 100644
index 0000000000..8b36a38337
--- /dev/null
+++ b/goformation/cloudformation/codestar/aws-codestar-githubrepository.go
@@ -0,0 +1,143 @@
+package codestar
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GitHubRepository AWS CloudFormation Resource (AWS::CodeStar::GitHubRepository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html
+type GitHubRepository struct {
+
+ // Code AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-code
+ Code *GitHubRepository_Code `json:"Code,omitempty"`
+
+ // ConnectionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-connectionarn
+ ConnectionArn *types.Value `json:"ConnectionArn,omitempty"`
+
+ // EnableIssues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-enableissues
+ EnableIssues *types.Value `json:"EnableIssues,omitempty"`
+
+ // IsPrivate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-isprivate
+ IsPrivate *types.Value `json:"IsPrivate,omitempty"`
+
+ // RepositoryAccessToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-repositoryaccesstoken
+ RepositoryAccessToken *types.Value `json:"RepositoryAccessToken,omitempty"`
+
+ // RepositoryDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-repositorydescription
+ RepositoryDescription *types.Value `json:"RepositoryDescription,omitempty"`
+
+ // RepositoryName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-repositoryname
+ RepositoryName *types.Value `json:"RepositoryName,omitempty"`
+
+ // RepositoryOwner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html#cfn-codestar-githubrepository-repositoryowner
+ RepositoryOwner *types.Value `json:"RepositoryOwner,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GitHubRepository) AWSCloudFormationType() string {
+ return "AWS::CodeStar::GitHubRepository"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GitHubRepository) MarshalJSON() ([]byte, error) {
+ type Properties GitHubRepository
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GitHubRepository) UnmarshalJSON(b []byte) error {
+ type Properties GitHubRepository
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GitHubRepository(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codestar/aws-codestar-githubrepository_code.go b/goformation/cloudformation/codestar/aws-codestar-githubrepository_code.go
new file mode 100644
index 0000000000..c894a21ede
--- /dev/null
+++ b/goformation/cloudformation/codestar/aws-codestar-githubrepository_code.go
@@ -0,0 +1,35 @@
+package codestar
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GitHubRepository_Code AWS CloudFormation Resource (AWS::CodeStar::GitHubRepository.Code)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-code.html
+type GitHubRepository_Code struct {
+
+ // S3 AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-code.html#cfn-codestar-githubrepository-code-s3
+ S3 *GitHubRepository_S3 `json:"S3,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GitHubRepository_Code) AWSCloudFormationType() string {
+ return "AWS::CodeStar::GitHubRepository.Code"
+}
diff --git a/goformation/cloudformation/codestar/aws-codestar-githubrepository_s3.go b/goformation/cloudformation/codestar/aws-codestar-githubrepository_s3.go
new file mode 100644
index 0000000000..c21604a03f
--- /dev/null
+++ b/goformation/cloudformation/codestar/aws-codestar-githubrepository_s3.go
@@ -0,0 +1,47 @@
+package codestar
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GitHubRepository_S3 AWS CloudFormation Resource (AWS::CodeStar::GitHubRepository.S3)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-s3.html
+type GitHubRepository_S3 struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-s3.html#cfn-codestar-githubrepository-s3-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-s3.html#cfn-codestar-githubrepository-s3-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // ObjectVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestar-githubrepository-s3.html#cfn-codestar-githubrepository-s3-objectversion
+ ObjectVersion *types.Value `json:"ObjectVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GitHubRepository_S3) AWSCloudFormationType() string {
+ return "AWS::CodeStar::GitHubRepository.S3"
+}
diff --git a/goformation/cloudformation/codestarconnections/aws-codestarconnections-connection.go b/goformation/cloudformation/codestarconnections/aws-codestarconnections-connection.go
new file mode 100644
index 0000000000..e7cecf16d8
--- /dev/null
+++ b/goformation/cloudformation/codestarconnections/aws-codestarconnections-connection.go
@@ -0,0 +1,124 @@
+package codestarconnections
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Connection AWS CloudFormation Resource (AWS::CodeStarConnections::Connection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html
+type Connection struct {
+
+ // ConnectionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html#cfn-codestarconnections-connection-connectionname
+ ConnectionName *types.Value `json:"ConnectionName,omitempty"`
+
+ // HostArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html#cfn-codestarconnections-connection-hostarn
+ HostArn *types.Value `json:"HostArn,omitempty"`
+
+ // ProviderType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html#cfn-codestarconnections-connection-providertype
+ ProviderType *types.Value `json:"ProviderType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html#cfn-codestarconnections-connection-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Connection) AWSCloudFormationType() string {
+ return "AWS::CodeStarConnections::Connection"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Connection) MarshalJSON() ([]byte, error) {
+ type Properties Connection
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Connection) UnmarshalJSON(b []byte) error {
+ type Properties Connection
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Connection(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule.go b/goformation/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule.go
new file mode 100644
index 0000000000..d5f022f29b
--- /dev/null
+++ b/goformation/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule.go
@@ -0,0 +1,153 @@
+package codestarnotifications
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NotificationRule AWS CloudFormation Resource (AWS::CodeStarNotifications::NotificationRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html
+type NotificationRule struct {
+
+ // CreatedBy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-createdby
+ CreatedBy *types.Value `json:"CreatedBy,omitempty"`
+
+ // DetailType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-detailtype
+ DetailType *types.Value `json:"DetailType,omitempty"`
+
+ // EventTypeId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-eventtypeid
+ EventTypeId *types.Value `json:"EventTypeId,omitempty"`
+
+ // EventTypeIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-eventtypeids
+ EventTypeIds *types.Value `json:"EventTypeIds,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Resource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-resource
+ Resource *types.Value `json:"Resource,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // TargetAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-targetaddress
+ TargetAddress *types.Value `json:"TargetAddress,omitempty"`
+
+ // Targets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-targets
+ Targets []NotificationRule_Target `json:"Targets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NotificationRule) AWSCloudFormationType() string {
+ return "AWS::CodeStarNotifications::NotificationRule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NotificationRule) MarshalJSON() ([]byte, error) {
+ type Properties NotificationRule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NotificationRule) UnmarshalJSON(b []byte) error {
+ type Properties NotificationRule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NotificationRule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule_target.go b/goformation/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule_target.go
new file mode 100644
index 0000000000..2fafbb02f2
--- /dev/null
+++ b/goformation/cloudformation/codestarnotifications/aws-codestarnotifications-notificationrule_target.go
@@ -0,0 +1,42 @@
+package codestarnotifications
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NotificationRule_Target AWS CloudFormation Resource (AWS::CodeStarNotifications::NotificationRule.Target)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestarnotifications-notificationrule-target.html
+type NotificationRule_Target struct {
+
+ // TargetAddress AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestarnotifications-notificationrule-target.html#cfn-codestarnotifications-notificationrule-target-targetaddress
+ TargetAddress *types.Value `json:"TargetAddress,omitempty"`
+
+ // TargetType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codestarnotifications-notificationrule-target.html#cfn-codestarnotifications-notificationrule-target-targettype
+ TargetType *types.Value `json:"TargetType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NotificationRule_Target) AWSCloudFormationType() string {
+ return "AWS::CodeStarNotifications::NotificationRule.Target"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-identitypool.go b/goformation/cloudformation/cognito/aws-cognito-identitypool.go
new file mode 100644
index 0000000000..b39014d8da
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-identitypool.go
@@ -0,0 +1,158 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityPool AWS CloudFormation Resource (AWS::Cognito::IdentityPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html
+type IdentityPool struct {
+
+ // AllowClassicFlow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-allowclassicflow
+ AllowClassicFlow *types.Value `json:"AllowClassicFlow,omitempty"`
+
+ // AllowUnauthenticatedIdentities AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-allowunauthenticatedidentities
+ AllowUnauthenticatedIdentities *types.Value `json:"AllowUnauthenticatedIdentities"`
+
+ // CognitoEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-cognitoevents
+ CognitoEvents interface{} `json:"CognitoEvents,omitempty"`
+
+ // CognitoIdentityProviders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-cognitoidentityproviders
+ CognitoIdentityProviders []IdentityPool_CognitoIdentityProvider `json:"CognitoIdentityProviders,omitempty"`
+
+ // CognitoStreams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-cognitostreams
+ CognitoStreams *IdentityPool_CognitoStreams `json:"CognitoStreams,omitempty"`
+
+ // DeveloperProviderName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-developerprovidername
+ DeveloperProviderName *types.Value `json:"DeveloperProviderName,omitempty"`
+
+ // IdentityPoolName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-identitypoolname
+ IdentityPoolName *types.Value `json:"IdentityPoolName,omitempty"`
+
+ // OpenIdConnectProviderARNs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-openidconnectproviderarns
+ OpenIdConnectProviderARNs *types.Value `json:"OpenIdConnectProviderARNs,omitempty"`
+
+ // PushSync AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-pushsync
+ PushSync *IdentityPool_PushSync `json:"PushSync,omitempty"`
+
+ // SamlProviderARNs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-samlproviderarns
+ SamlProviderARNs *types.Value `json:"SamlProviderARNs,omitempty"`
+
+ // SupportedLoginProviders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html#cfn-cognito-identitypool-supportedloginproviders
+ SupportedLoginProviders interface{} `json:"SupportedLoginProviders,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityPool) AWSCloudFormationType() string {
+ return "AWS::Cognito::IdentityPool"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IdentityPool) MarshalJSON() ([]byte, error) {
+ type Properties IdentityPool
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IdentityPool) UnmarshalJSON(b []byte) error {
+ type Properties IdentityPool
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IdentityPool(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-identitypool_cognitoidentityprovider.go b/goformation/cloudformation/cognito/aws-cognito-identitypool_cognitoidentityprovider.go
new file mode 100644
index 0000000000..7b48104e53
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-identitypool_cognitoidentityprovider.go
@@ -0,0 +1,47 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityPool_CognitoIdentityProvider AWS CloudFormation Resource (AWS::Cognito::IdentityPool.CognitoIdentityProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html
+type IdentityPool_CognitoIdentityProvider struct {
+
+ // ClientId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html#cfn-cognito-identitypool-cognitoidentityprovider-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // ProviderName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html#cfn-cognito-identitypool-cognitoidentityprovider-providername
+ ProviderName *types.Value `json:"ProviderName,omitempty"`
+
+ // ServerSideTokenCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html#cfn-cognito-identitypool-cognitoidentityprovider-serversidetokencheck
+ ServerSideTokenCheck *types.Value `json:"ServerSideTokenCheck,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityPool_CognitoIdentityProvider) AWSCloudFormationType() string {
+ return "AWS::Cognito::IdentityPool.CognitoIdentityProvider"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-identitypool_cognitostreams.go b/goformation/cloudformation/cognito/aws-cognito-identitypool_cognitostreams.go
new file mode 100644
index 0000000000..0ef3c70d61
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-identitypool_cognitostreams.go
@@ -0,0 +1,47 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityPool_CognitoStreams AWS CloudFormation Resource (AWS::Cognito::IdentityPool.CognitoStreams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html
+type IdentityPool_CognitoStreams struct {
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html#cfn-cognito-identitypool-cognitostreams-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // StreamName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html#cfn-cognito-identitypool-cognitostreams-streamname
+ StreamName *types.Value `json:"StreamName,omitempty"`
+
+ // StreamingStatus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html#cfn-cognito-identitypool-cognitostreams-streamingstatus
+ StreamingStatus *types.Value `json:"StreamingStatus,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityPool_CognitoStreams) AWSCloudFormationType() string {
+ return "AWS::Cognito::IdentityPool.CognitoStreams"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-identitypool_pushsync.go b/goformation/cloudformation/cognito/aws-cognito-identitypool_pushsync.go
new file mode 100644
index 0000000000..a31fe6b0a7
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-identitypool_pushsync.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityPool_PushSync AWS CloudFormation Resource (AWS::Cognito::IdentityPool.PushSync)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html
+type IdentityPool_PushSync struct {
+
+ // ApplicationArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html#cfn-cognito-identitypool-pushsync-applicationarns
+ ApplicationArns *types.Value `json:"ApplicationArns,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html#cfn-cognito-identitypool-pushsync-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityPool_PushSync) AWSCloudFormationType() string {
+ return "AWS::Cognito::IdentityPool.PushSync"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment.go b/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment.go
new file mode 100644
index 0000000000..e3a52c4ec2
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment.go
@@ -0,0 +1,118 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityPoolRoleAttachment AWS CloudFormation Resource (AWS::Cognito::IdentityPoolRoleAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html
+type IdentityPoolRoleAttachment struct {
+
+ // IdentityPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html#cfn-cognito-identitypoolroleattachment-identitypoolid
+ IdentityPoolId *types.Value `json:"IdentityPoolId,omitempty"`
+
+ // RoleMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html#cfn-cognito-identitypoolroleattachment-rolemappings
+ RoleMappings interface{} `json:"RoleMappings,omitempty"`
+
+ // Roles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html#cfn-cognito-identitypoolroleattachment-roles
+ Roles interface{} `json:"Roles,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityPoolRoleAttachment) AWSCloudFormationType() string {
+ return "AWS::Cognito::IdentityPoolRoleAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IdentityPoolRoleAttachment) MarshalJSON() ([]byte, error) {
+ type Properties IdentityPoolRoleAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IdentityPoolRoleAttachment) UnmarshalJSON(b []byte) error {
+ type Properties IdentityPoolRoleAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IdentityPoolRoleAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_mappingrule.go b/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_mappingrule.go
new file mode 100644
index 0000000000..26cc34b647
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_mappingrule.go
@@ -0,0 +1,52 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityPoolRoleAttachment_MappingRule AWS CloudFormation Resource (AWS::Cognito::IdentityPoolRoleAttachment.MappingRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html
+type IdentityPoolRoleAttachment_MappingRule struct {
+
+ // Claim AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html#cfn-cognito-identitypoolroleattachment-mappingrule-claim
+ Claim *types.Value `json:"Claim,omitempty"`
+
+ // MatchType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html#cfn-cognito-identitypoolroleattachment-mappingrule-matchtype
+ MatchType *types.Value `json:"MatchType,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html#cfn-cognito-identitypoolroleattachment-mappingrule-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html#cfn-cognito-identitypoolroleattachment-mappingrule-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityPoolRoleAttachment_MappingRule) AWSCloudFormationType() string {
+ return "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_rolemapping.go b/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_rolemapping.go
new file mode 100644
index 0000000000..d54770b48a
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_rolemapping.go
@@ -0,0 +1,52 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityPoolRoleAttachment_RoleMapping AWS CloudFormation Resource (AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html
+type IdentityPoolRoleAttachment_RoleMapping struct {
+
+ // AmbiguousRoleResolution AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html#cfn-cognito-identitypoolroleattachment-rolemapping-ambiguousroleresolution
+ AmbiguousRoleResolution *types.Value `json:"AmbiguousRoleResolution,omitempty"`
+
+ // IdentityProvider AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html#cfn-cognito-identitypoolroleattachment-rolemapping-identityprovider
+ IdentityProvider *types.Value `json:"IdentityProvider,omitempty"`
+
+ // RulesConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html#cfn-cognito-identitypoolroleattachment-rolemapping-rulesconfiguration
+ RulesConfiguration *IdentityPoolRoleAttachment_RulesConfigurationType `json:"RulesConfiguration,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html#cfn-cognito-identitypoolroleattachment-rolemapping-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityPoolRoleAttachment_RoleMapping) AWSCloudFormationType() string {
+ return "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go b/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go
new file mode 100644
index 0000000000..54458c1ece
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-identitypoolroleattachment_rulesconfigurationtype.go
@@ -0,0 +1,35 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityPoolRoleAttachment_RulesConfigurationType AWS CloudFormation Resource (AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html
+type IdentityPoolRoleAttachment_RulesConfigurationType struct {
+
+ // Rules AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html#cfn-cognito-identitypoolroleattachment-rulesconfigurationtype-rules
+ Rules []IdentityPoolRoleAttachment_MappingRule `json:"Rules,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityPoolRoleAttachment_RulesConfigurationType) AWSCloudFormationType() string {
+ return "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool.go b/goformation/cloudformation/cognito/aws-cognito-userpool.go
new file mode 100644
index 0000000000..b8ad5c5651
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool.go
@@ -0,0 +1,213 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool AWS CloudFormation Resource (AWS::Cognito::UserPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html
+type UserPool struct {
+
+ // AccountRecoverySetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-accountrecoverysetting
+ AccountRecoverySetting *UserPool_AccountRecoverySetting `json:"AccountRecoverySetting,omitempty"`
+
+ // AdminCreateUserConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-admincreateuserconfig
+ AdminCreateUserConfig *UserPool_AdminCreateUserConfig `json:"AdminCreateUserConfig,omitempty"`
+
+ // AliasAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-aliasattributes
+ AliasAttributes *types.Value `json:"AliasAttributes,omitempty"`
+
+ // AutoVerifiedAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-autoverifiedattributes
+ AutoVerifiedAttributes *types.Value `json:"AutoVerifiedAttributes,omitempty"`
+
+ // DeviceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-deviceconfiguration
+ DeviceConfiguration *UserPool_DeviceConfiguration `json:"DeviceConfiguration,omitempty"`
+
+ // EmailConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailconfiguration
+ EmailConfiguration *UserPool_EmailConfiguration `json:"EmailConfiguration,omitempty"`
+
+ // EmailVerificationMessage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailverificationmessage
+ EmailVerificationMessage *types.Value `json:"EmailVerificationMessage,omitempty"`
+
+ // EmailVerificationSubject AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-emailverificationsubject
+ EmailVerificationSubject *types.Value `json:"EmailVerificationSubject,omitempty"`
+
+ // EnabledMfas AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-enabledmfas
+ EnabledMfas *types.Value `json:"EnabledMfas,omitempty"`
+
+ // LambdaConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-lambdaconfig
+ LambdaConfig *UserPool_LambdaConfig `json:"LambdaConfig,omitempty"`
+
+ // MfaConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-mfaconfiguration
+ MfaConfiguration *types.Value `json:"MfaConfiguration,omitempty"`
+
+ // Policies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-policies
+ Policies *UserPool_Policies `json:"Policies,omitempty"`
+
+ // Schema AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-schema
+ Schema []UserPool_SchemaAttribute `json:"Schema,omitempty"`
+
+ // SmsAuthenticationMessage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsauthenticationmessage
+ SmsAuthenticationMessage *types.Value `json:"SmsAuthenticationMessage,omitempty"`
+
+ // SmsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsconfiguration
+ SmsConfiguration *UserPool_SmsConfiguration `json:"SmsConfiguration,omitempty"`
+
+ // SmsVerificationMessage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-smsverificationmessage
+ SmsVerificationMessage *types.Value `json:"SmsVerificationMessage,omitempty"`
+
+ // UserPoolAddOns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpooladdons
+ UserPoolAddOns *UserPool_UserPoolAddOns `json:"UserPoolAddOns,omitempty"`
+
+ // UserPoolName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpoolname
+ UserPoolName *types.Value `json:"UserPoolName,omitempty"`
+
+ // UserPoolTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-userpooltags
+ UserPoolTags interface{} `json:"UserPoolTags,omitempty"`
+
+ // UsernameAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-usernameattributes
+ UsernameAttributes *types.Value `json:"UsernameAttributes,omitempty"`
+
+ // UsernameConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-usernameconfiguration
+ UsernameConfiguration *UserPool_UsernameConfiguration `json:"UsernameConfiguration,omitempty"`
+
+ // VerificationMessageTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html#cfn-cognito-userpool-verificationmessagetemplate
+ VerificationMessageTemplate *UserPool_VerificationMessageTemplate `json:"VerificationMessageTemplate,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPool) MarshalJSON() ([]byte, error) {
+ type Properties UserPool
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPool) UnmarshalJSON(b []byte) error {
+ type Properties UserPool
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPool(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_accountrecoverysetting.go b/goformation/cloudformation/cognito/aws-cognito-userpool_accountrecoverysetting.go
new file mode 100644
index 0000000000..b64d5240ae
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_accountrecoverysetting.go
@@ -0,0 +1,35 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_AccountRecoverySetting AWS CloudFormation Resource (AWS::Cognito::UserPool.AccountRecoverySetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-accountrecoverysetting.html
+type UserPool_AccountRecoverySetting struct {
+
+ // RecoveryMechanisms AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-accountrecoverysetting.html#cfn-cognito-userpool-accountrecoverysetting-recoverymechanisms
+ RecoveryMechanisms []UserPool_RecoveryOption `json:"RecoveryMechanisms,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_AccountRecoverySetting) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.AccountRecoverySetting"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_admincreateuserconfig.go b/goformation/cloudformation/cognito/aws-cognito-userpool_admincreateuserconfig.go
new file mode 100644
index 0000000000..7dbe9e0ed2
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_admincreateuserconfig.go
@@ -0,0 +1,47 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_AdminCreateUserConfig AWS CloudFormation Resource (AWS::Cognito::UserPool.AdminCreateUserConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html
+type UserPool_AdminCreateUserConfig struct {
+
+ // AllowAdminCreateUserOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html#cfn-cognito-userpool-admincreateuserconfig-allowadmincreateuseronly
+ AllowAdminCreateUserOnly *types.Value `json:"AllowAdminCreateUserOnly,omitempty"`
+
+ // InviteMessageTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html#cfn-cognito-userpool-admincreateuserconfig-invitemessagetemplate
+ InviteMessageTemplate *UserPool_InviteMessageTemplate `json:"InviteMessageTemplate,omitempty"`
+
+ // UnusedAccountValidityDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html#cfn-cognito-userpool-admincreateuserconfig-unusedaccountvaliditydays
+ UnusedAccountValidityDays *types.Value `json:"UnusedAccountValidityDays,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_AdminCreateUserConfig) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.AdminCreateUserConfig"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_customemailsender.go b/goformation/cloudformation/cognito/aws-cognito-userpool_customemailsender.go
new file mode 100644
index 0000000000..acbcfc80bb
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_customemailsender.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_CustomEmailSender AWS CloudFormation Resource (AWS::Cognito::UserPool.CustomEmailSender)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customemailsender.html
+type UserPool_CustomEmailSender struct {
+
+ // LambdaArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customemailsender.html#cfn-cognito-userpool-customemailsender-lambdaarn
+ LambdaArn *types.Value `json:"LambdaArn,omitempty"`
+
+ // LambdaVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customemailsender.html#cfn-cognito-userpool-customemailsender-lambdaversion
+ LambdaVersion *types.Value `json:"LambdaVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_CustomEmailSender) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.CustomEmailSender"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_customsmssender.go b/goformation/cloudformation/cognito/aws-cognito-userpool_customsmssender.go
new file mode 100644
index 0000000000..89a1243a3c
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_customsmssender.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_CustomSMSSender AWS CloudFormation Resource (AWS::Cognito::UserPool.CustomSMSSender)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customsmssender.html
+type UserPool_CustomSMSSender struct {
+
+ // LambdaArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customsmssender.html#cfn-cognito-userpool-customsmssender-lambdaarn
+ LambdaArn *types.Value `json:"LambdaArn,omitempty"`
+
+ // LambdaVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-customsmssender.html#cfn-cognito-userpool-customsmssender-lambdaversion
+ LambdaVersion *types.Value `json:"LambdaVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_CustomSMSSender) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.CustomSMSSender"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_deviceconfiguration.go b/goformation/cloudformation/cognito/aws-cognito-userpool_deviceconfiguration.go
new file mode 100644
index 0000000000..29257e9b25
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_deviceconfiguration.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_DeviceConfiguration AWS CloudFormation Resource (AWS::Cognito::UserPool.DeviceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html
+type UserPool_DeviceConfiguration struct {
+
+ // ChallengeRequiredOnNewDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html#cfn-cognito-userpool-deviceconfiguration-challengerequiredonnewdevice
+ ChallengeRequiredOnNewDevice *types.Value `json:"ChallengeRequiredOnNewDevice,omitempty"`
+
+ // DeviceOnlyRememberedOnUserPrompt AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html#cfn-cognito-userpool-deviceconfiguration-deviceonlyrememberedonuserprompt
+ DeviceOnlyRememberedOnUserPrompt *types.Value `json:"DeviceOnlyRememberedOnUserPrompt,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_DeviceConfiguration) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.DeviceConfiguration"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_emailconfiguration.go b/goformation/cloudformation/cognito/aws-cognito-userpool_emailconfiguration.go
new file mode 100644
index 0000000000..b6dfa9dfcc
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_emailconfiguration.go
@@ -0,0 +1,57 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_EmailConfiguration AWS CloudFormation Resource (AWS::Cognito::UserPool.EmailConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html
+type UserPool_EmailConfiguration struct {
+
+ // ConfigurationSet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html#cfn-cognito-userpool-emailconfiguration-configurationset
+ ConfigurationSet *types.Value `json:"ConfigurationSet,omitempty"`
+
+ // EmailSendingAccount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html#cfn-cognito-userpool-emailconfiguration-emailsendingaccount
+ EmailSendingAccount *types.Value `json:"EmailSendingAccount,omitempty"`
+
+ // From AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html#cfn-cognito-userpool-emailconfiguration-from
+ From *types.Value `json:"From,omitempty"`
+
+ // ReplyToEmailAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html#cfn-cognito-userpool-emailconfiguration-replytoemailaddress
+ ReplyToEmailAddress *types.Value `json:"ReplyToEmailAddress,omitempty"`
+
+ // SourceArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html#cfn-cognito-userpool-emailconfiguration-sourcearn
+ SourceArn *types.Value `json:"SourceArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_EmailConfiguration) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.EmailConfiguration"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_invitemessagetemplate.go b/goformation/cloudformation/cognito/aws-cognito-userpool_invitemessagetemplate.go
new file mode 100644
index 0000000000..8eebb4a9e9
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_invitemessagetemplate.go
@@ -0,0 +1,47 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_InviteMessageTemplate AWS CloudFormation Resource (AWS::Cognito::UserPool.InviteMessageTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html
+type UserPool_InviteMessageTemplate struct {
+
+ // EmailMessage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html#cfn-cognito-userpool-invitemessagetemplate-emailmessage
+ EmailMessage *types.Value `json:"EmailMessage,omitempty"`
+
+ // EmailSubject AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html#cfn-cognito-userpool-invitemessagetemplate-emailsubject
+ EmailSubject *types.Value `json:"EmailSubject,omitempty"`
+
+ // SMSMessage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html#cfn-cognito-userpool-invitemessagetemplate-smsmessage
+ SMSMessage *types.Value `json:"SMSMessage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_InviteMessageTemplate) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.InviteMessageTemplate"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_lambdaconfig.go b/goformation/cloudformation/cognito/aws-cognito-userpool_lambdaconfig.go
new file mode 100644
index 0000000000..c16296fd01
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_lambdaconfig.go
@@ -0,0 +1,97 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_LambdaConfig AWS CloudFormation Resource (AWS::Cognito::UserPool.LambdaConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html
+type UserPool_LambdaConfig struct {
+
+ // CreateAuthChallenge AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-createauthchallenge
+ CreateAuthChallenge *types.Value `json:"CreateAuthChallenge,omitempty"`
+
+ // CustomEmailSender AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-customemailsender
+ CustomEmailSender *UserPool_CustomEmailSender `json:"CustomEmailSender,omitempty"`
+
+ // CustomMessage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-custommessage
+ CustomMessage *types.Value `json:"CustomMessage,omitempty"`
+
+ // CustomSMSSender AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-customsmssender
+ CustomSMSSender *UserPool_CustomSMSSender `json:"CustomSMSSender,omitempty"`
+
+ // DefineAuthChallenge AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-defineauthchallenge
+ DefineAuthChallenge *types.Value `json:"DefineAuthChallenge,omitempty"`
+
+ // KMSKeyID AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-kmskeyid
+ KMSKeyID *types.Value `json:"KMSKeyID,omitempty"`
+
+ // PostAuthentication AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-postauthentication
+ PostAuthentication *types.Value `json:"PostAuthentication,omitempty"`
+
+ // PostConfirmation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-postconfirmation
+ PostConfirmation *types.Value `json:"PostConfirmation,omitempty"`
+
+ // PreAuthentication AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-preauthentication
+ PreAuthentication *types.Value `json:"PreAuthentication,omitempty"`
+
+ // PreSignUp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-presignup
+ PreSignUp *types.Value `json:"PreSignUp,omitempty"`
+
+ // PreTokenGeneration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-pretokengeneration
+ PreTokenGeneration *types.Value `json:"PreTokenGeneration,omitempty"`
+
+ // UserMigration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-usermigration
+ UserMigration *types.Value `json:"UserMigration,omitempty"`
+
+ // VerifyAuthChallengeResponse AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html#cfn-cognito-userpool-lambdaconfig-verifyauthchallengeresponse
+ VerifyAuthChallengeResponse *types.Value `json:"VerifyAuthChallengeResponse,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_LambdaConfig) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.LambdaConfig"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_numberattributeconstraints.go b/goformation/cloudformation/cognito/aws-cognito-userpool_numberattributeconstraints.go
new file mode 100644
index 0000000000..91c792e705
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_numberattributeconstraints.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_NumberAttributeConstraints AWS CloudFormation Resource (AWS::Cognito::UserPool.NumberAttributeConstraints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html
+type UserPool_NumberAttributeConstraints struct {
+
+ // MaxValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html#cfn-cognito-userpool-numberattributeconstraints-maxvalue
+ MaxValue *types.Value `json:"MaxValue,omitempty"`
+
+ // MinValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html#cfn-cognito-userpool-numberattributeconstraints-minvalue
+ MinValue *types.Value `json:"MinValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_NumberAttributeConstraints) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.NumberAttributeConstraints"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_passwordpolicy.go b/goformation/cloudformation/cognito/aws-cognito-userpool_passwordpolicy.go
new file mode 100644
index 0000000000..484ec95239
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_passwordpolicy.go
@@ -0,0 +1,62 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_PasswordPolicy AWS CloudFormation Resource (AWS::Cognito::UserPool.PasswordPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html
+type UserPool_PasswordPolicy struct {
+
+ // MinimumLength AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-minimumlength
+ MinimumLength *types.Value `json:"MinimumLength,omitempty"`
+
+ // RequireLowercase AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requirelowercase
+ RequireLowercase *types.Value `json:"RequireLowercase,omitempty"`
+
+ // RequireNumbers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requirenumbers
+ RequireNumbers *types.Value `json:"RequireNumbers,omitempty"`
+
+ // RequireSymbols AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requiresymbols
+ RequireSymbols *types.Value `json:"RequireSymbols,omitempty"`
+
+ // RequireUppercase AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-requireuppercase
+ RequireUppercase *types.Value `json:"RequireUppercase,omitempty"`
+
+ // TemporaryPasswordValidityDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html#cfn-cognito-userpool-passwordpolicy-temporarypasswordvaliditydays
+ TemporaryPasswordValidityDays *types.Value `json:"TemporaryPasswordValidityDays,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_PasswordPolicy) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.PasswordPolicy"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_policies.go b/goformation/cloudformation/cognito/aws-cognito-userpool_policies.go
new file mode 100644
index 0000000000..50369543e7
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_policies.go
@@ -0,0 +1,35 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_Policies AWS CloudFormation Resource (AWS::Cognito::UserPool.Policies)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html
+type UserPool_Policies struct {
+
+ // PasswordPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html#cfn-cognito-userpool-policies-passwordpolicy
+ PasswordPolicy *UserPool_PasswordPolicy `json:"PasswordPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_Policies) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.Policies"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_recoveryoption.go b/goformation/cloudformation/cognito/aws-cognito-userpool_recoveryoption.go
new file mode 100644
index 0000000000..ad6978b94a
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_recoveryoption.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_RecoveryOption AWS CloudFormation Resource (AWS::Cognito::UserPool.RecoveryOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-recoveryoption.html
+type UserPool_RecoveryOption struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-recoveryoption.html#cfn-cognito-userpool-recoveryoption-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Priority AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-recoveryoption.html#cfn-cognito-userpool-recoveryoption-priority
+ Priority *types.Value `json:"Priority,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_RecoveryOption) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.RecoveryOption"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_schemaattribute.go b/goformation/cloudformation/cognito/aws-cognito-userpool_schemaattribute.go
new file mode 100644
index 0000000000..a586d63226
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_schemaattribute.go
@@ -0,0 +1,67 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_SchemaAttribute AWS CloudFormation Resource (AWS::Cognito::UserPool.SchemaAttribute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html
+type UserPool_SchemaAttribute struct {
+
+ // AttributeDataType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-attributedatatype
+ AttributeDataType *types.Value `json:"AttributeDataType,omitempty"`
+
+ // DeveloperOnlyAttribute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-developeronlyattribute
+ DeveloperOnlyAttribute *types.Value `json:"DeveloperOnlyAttribute,omitempty"`
+
+ // Mutable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-mutable
+ Mutable *types.Value `json:"Mutable,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // NumberAttributeConstraints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-numberattributeconstraints
+ NumberAttributeConstraints *UserPool_NumberAttributeConstraints `json:"NumberAttributeConstraints,omitempty"`
+
+ // Required AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-required
+ Required *types.Value `json:"Required,omitempty"`
+
+ // StringAttributeConstraints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html#cfn-cognito-userpool-schemaattribute-stringattributeconstraints
+ StringAttributeConstraints *UserPool_StringAttributeConstraints `json:"StringAttributeConstraints,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_SchemaAttribute) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.SchemaAttribute"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_smsconfiguration.go b/goformation/cloudformation/cognito/aws-cognito-userpool_smsconfiguration.go
new file mode 100644
index 0000000000..b04a937c7d
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_smsconfiguration.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_SmsConfiguration AWS CloudFormation Resource (AWS::Cognito::UserPool.SmsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html
+type UserPool_SmsConfiguration struct {
+
+ // ExternalId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html#cfn-cognito-userpool-smsconfiguration-externalid
+ ExternalId *types.Value `json:"ExternalId,omitempty"`
+
+ // SnsCallerArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html#cfn-cognito-userpool-smsconfiguration-snscallerarn
+ SnsCallerArn *types.Value `json:"SnsCallerArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_SmsConfiguration) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.SmsConfiguration"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_stringattributeconstraints.go b/goformation/cloudformation/cognito/aws-cognito-userpool_stringattributeconstraints.go
new file mode 100644
index 0000000000..781ecdf1c8
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_stringattributeconstraints.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_StringAttributeConstraints AWS CloudFormation Resource (AWS::Cognito::UserPool.StringAttributeConstraints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html
+type UserPool_StringAttributeConstraints struct {
+
+ // MaxLength AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html#cfn-cognito-userpool-stringattributeconstraints-maxlength
+ MaxLength *types.Value `json:"MaxLength,omitempty"`
+
+ // MinLength AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html#cfn-cognito-userpool-stringattributeconstraints-minlength
+ MinLength *types.Value `json:"MinLength,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_StringAttributeConstraints) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.StringAttributeConstraints"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_usernameconfiguration.go b/goformation/cloudformation/cognito/aws-cognito-userpool_usernameconfiguration.go
new file mode 100644
index 0000000000..8113f0f5f4
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_usernameconfiguration.go
@@ -0,0 +1,37 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_UsernameConfiguration AWS CloudFormation Resource (AWS::Cognito::UserPool.UsernameConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-usernameconfiguration.html
+type UserPool_UsernameConfiguration struct {
+
+ // CaseSensitive AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-usernameconfiguration.html#cfn-cognito-userpool-usernameconfiguration-casesensitive
+ CaseSensitive *types.Value `json:"CaseSensitive,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_UsernameConfiguration) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.UsernameConfiguration"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_userpooladdons.go b/goformation/cloudformation/cognito/aws-cognito-userpool_userpooladdons.go
new file mode 100644
index 0000000000..dd07d81730
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_userpooladdons.go
@@ -0,0 +1,37 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_UserPoolAddOns AWS CloudFormation Resource (AWS::Cognito::UserPool.UserPoolAddOns)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-userpooladdons.html
+type UserPool_UserPoolAddOns struct {
+
+ // AdvancedSecurityMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-userpooladdons.html#cfn-cognito-userpool-userpooladdons-advancedsecuritymode
+ AdvancedSecurityMode *types.Value `json:"AdvancedSecurityMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_UserPoolAddOns) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.UserPoolAddOns"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpool_verificationmessagetemplate.go b/goformation/cloudformation/cognito/aws-cognito-userpool_verificationmessagetemplate.go
new file mode 100644
index 0000000000..b6c659f0ad
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpool_verificationmessagetemplate.go
@@ -0,0 +1,62 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPool_VerificationMessageTemplate AWS CloudFormation Resource (AWS::Cognito::UserPool.VerificationMessageTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html
+type UserPool_VerificationMessageTemplate struct {
+
+ // DefaultEmailOption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html#cfn-cognito-userpool-verificationmessagetemplate-defaultemailoption
+ DefaultEmailOption *types.Value `json:"DefaultEmailOption,omitempty"`
+
+ // EmailMessage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html#cfn-cognito-userpool-verificationmessagetemplate-emailmessage
+ EmailMessage *types.Value `json:"EmailMessage,omitempty"`
+
+ // EmailMessageByLink AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html#cfn-cognito-userpool-verificationmessagetemplate-emailmessagebylink
+ EmailMessageByLink *types.Value `json:"EmailMessageByLink,omitempty"`
+
+ // EmailSubject AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html#cfn-cognito-userpool-verificationmessagetemplate-emailsubject
+ EmailSubject *types.Value `json:"EmailSubject,omitempty"`
+
+ // EmailSubjectByLink AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html#cfn-cognito-userpool-verificationmessagetemplate-emailsubjectbylink
+ EmailSubjectByLink *types.Value `json:"EmailSubjectByLink,omitempty"`
+
+ // SmsMessage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-verificationmessagetemplate.html#cfn-cognito-userpool-verificationmessagetemplate-smsmessage
+ SmsMessage *types.Value `json:"SmsMessage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPool_VerificationMessageTemplate) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPool.VerificationMessageTemplate"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolclient.go b/goformation/cloudformation/cognito/aws-cognito-userpoolclient.go
new file mode 100644
index 0000000000..e0fe48c1d7
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolclient.go
@@ -0,0 +1,203 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolClient AWS CloudFormation Resource (AWS::Cognito::UserPoolClient)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html
+type UserPoolClient struct {
+
+ // AccessTokenValidity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-accesstokenvalidity
+ AccessTokenValidity *types.Value `json:"AccessTokenValidity,omitempty"`
+
+ // AllowedOAuthFlows AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-allowedoauthflows
+ AllowedOAuthFlows *types.Value `json:"AllowedOAuthFlows,omitempty"`
+
+ // AllowedOAuthFlowsUserPoolClient AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-allowedoauthflowsuserpoolclient
+ AllowedOAuthFlowsUserPoolClient *types.Value `json:"AllowedOAuthFlowsUserPoolClient,omitempty"`
+
+ // AllowedOAuthScopes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-allowedoauthscopes
+ AllowedOAuthScopes *types.Value `json:"AllowedOAuthScopes,omitempty"`
+
+ // AnalyticsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-analyticsconfiguration
+ AnalyticsConfiguration *UserPoolClient_AnalyticsConfiguration `json:"AnalyticsConfiguration,omitempty"`
+
+ // CallbackURLs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-callbackurls
+ CallbackURLs *types.Value `json:"CallbackURLs,omitempty"`
+
+ // ClientName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-clientname
+ ClientName *types.Value `json:"ClientName,omitempty"`
+
+ // DefaultRedirectURI AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-defaultredirecturi
+ DefaultRedirectURI *types.Value `json:"DefaultRedirectURI,omitempty"`
+
+ // EnableTokenRevocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-enabletokenrevocation
+ EnableTokenRevocation *types.Value `json:"EnableTokenRevocation,omitempty"`
+
+ // ExplicitAuthFlows AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-explicitauthflows
+ ExplicitAuthFlows *types.Value `json:"ExplicitAuthFlows,omitempty"`
+
+ // GenerateSecret AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-generatesecret
+ GenerateSecret *types.Value `json:"GenerateSecret,omitempty"`
+
+ // IdTokenValidity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-idtokenvalidity
+ IdTokenValidity *types.Value `json:"IdTokenValidity,omitempty"`
+
+ // LogoutURLs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-logouturls
+ LogoutURLs *types.Value `json:"LogoutURLs,omitempty"`
+
+ // PreventUserExistenceErrors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-preventuserexistenceerrors
+ PreventUserExistenceErrors *types.Value `json:"PreventUserExistenceErrors,omitempty"`
+
+ // ReadAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-readattributes
+ ReadAttributes *types.Value `json:"ReadAttributes,omitempty"`
+
+ // RefreshTokenValidity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-refreshtokenvalidity
+ RefreshTokenValidity *types.Value `json:"RefreshTokenValidity,omitempty"`
+
+ // SupportedIdentityProviders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-supportedidentityproviders
+ SupportedIdentityProviders *types.Value `json:"SupportedIdentityProviders,omitempty"`
+
+ // TokenValidityUnits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-tokenvalidityunits
+ TokenValidityUnits *UserPoolClient_TokenValidityUnits `json:"TokenValidityUnits,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // WriteAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html#cfn-cognito-userpoolclient-writeattributes
+ WriteAttributes *types.Value `json:"WriteAttributes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolClient) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolClient"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolClient) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolClient
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolClient) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolClient
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolClient(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolclient_analyticsconfiguration.go b/goformation/cloudformation/cognito/aws-cognito-userpoolclient_analyticsconfiguration.go
new file mode 100644
index 0000000000..4d1af3a469
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolclient_analyticsconfiguration.go
@@ -0,0 +1,57 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolClient_AnalyticsConfiguration AWS CloudFormation Resource (AWS::Cognito::UserPoolClient.AnalyticsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html
+type UserPoolClient_AnalyticsConfiguration struct {
+
+ // ApplicationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html#cfn-cognito-userpoolclient-analyticsconfiguration-applicationarn
+ ApplicationArn *types.Value `json:"ApplicationArn,omitempty"`
+
+ // ApplicationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html#cfn-cognito-userpoolclient-analyticsconfiguration-applicationid
+ ApplicationId *types.Value `json:"ApplicationId,omitempty"`
+
+ // ExternalId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html#cfn-cognito-userpoolclient-analyticsconfiguration-externalid
+ ExternalId *types.Value `json:"ExternalId,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html#cfn-cognito-userpoolclient-analyticsconfiguration-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // UserDataShared AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-analyticsconfiguration.html#cfn-cognito-userpoolclient-analyticsconfiguration-userdatashared
+ UserDataShared *types.Value `json:"UserDataShared,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolClient_AnalyticsConfiguration) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolClient.AnalyticsConfiguration"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolclient_tokenvalidityunits.go b/goformation/cloudformation/cognito/aws-cognito-userpoolclient_tokenvalidityunits.go
new file mode 100644
index 0000000000..5b86a598b8
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolclient_tokenvalidityunits.go
@@ -0,0 +1,47 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolClient_TokenValidityUnits AWS CloudFormation Resource (AWS::Cognito::UserPoolClient.TokenValidityUnits)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-tokenvalidityunits.html
+type UserPoolClient_TokenValidityUnits struct {
+
+ // AccessToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-tokenvalidityunits.html#cfn-cognito-userpoolclient-tokenvalidityunits-accesstoken
+ AccessToken *types.Value `json:"AccessToken,omitempty"`
+
+ // IdToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-tokenvalidityunits.html#cfn-cognito-userpoolclient-tokenvalidityunits-idtoken
+ IdToken *types.Value `json:"IdToken,omitempty"`
+
+ // RefreshToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolclient-tokenvalidityunits.html#cfn-cognito-userpoolclient-tokenvalidityunits-refreshtoken
+ RefreshToken *types.Value `json:"RefreshToken,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolClient_TokenValidityUnits) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolClient.TokenValidityUnits"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpooldomain.go b/goformation/cloudformation/cognito/aws-cognito-userpooldomain.go
new file mode 100644
index 0000000000..a897c184ca
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpooldomain.go
@@ -0,0 +1,118 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolDomain AWS CloudFormation Resource (AWS::Cognito::UserPoolDomain)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooldomain.html
+type UserPoolDomain struct {
+
+ // CustomDomainConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooldomain.html#cfn-cognito-userpooldomain-customdomainconfig
+ CustomDomainConfig *UserPoolDomain_CustomDomainConfigType `json:"CustomDomainConfig,omitempty"`
+
+ // Domain AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooldomain.html#cfn-cognito-userpooldomain-domain
+ Domain *types.Value `json:"Domain,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooldomain.html#cfn-cognito-userpooldomain-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolDomain) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolDomain"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolDomain) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolDomain
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolDomain) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolDomain
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolDomain(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpooldomain_customdomainconfigtype.go b/goformation/cloudformation/cognito/aws-cognito-userpooldomain_customdomainconfigtype.go
new file mode 100644
index 0000000000..9ee1d563ba
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpooldomain_customdomainconfigtype.go
@@ -0,0 +1,37 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolDomain_CustomDomainConfigType AWS CloudFormation Resource (AWS::Cognito::UserPoolDomain.CustomDomainConfigType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooldomain-customdomainconfigtype.html
+type UserPoolDomain_CustomDomainConfigType struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooldomain-customdomainconfigtype.html#cfn-cognito-userpooldomain-customdomainconfigtype-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolDomain_CustomDomainConfigType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolDomain.CustomDomainConfigType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolgroup.go b/goformation/cloudformation/cognito/aws-cognito-userpoolgroup.go
new file mode 100644
index 0000000000..a686c17576
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolgroup.go
@@ -0,0 +1,128 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolGroup AWS CloudFormation Resource (AWS::Cognito::UserPoolGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html
+type UserPoolGroup struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // Precedence AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-precedence
+ Precedence *types.Value `json:"Precedence,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html#cfn-cognito-userpoolgroup-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolGroup) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolGroup) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolGroup) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolidentityprovider.go b/goformation/cloudformation/cognito/aws-cognito-userpoolidentityprovider.go
new file mode 100644
index 0000000000..b4a07725a5
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolidentityprovider.go
@@ -0,0 +1,133 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolIdentityProvider AWS CloudFormation Resource (AWS::Cognito::UserPoolIdentityProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html
+type UserPoolIdentityProvider struct {
+
+ // AttributeMapping AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-attributemapping
+ AttributeMapping interface{} `json:"AttributeMapping,omitempty"`
+
+ // IdpIdentifiers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-idpidentifiers
+ IdpIdentifiers *types.Value `json:"IdpIdentifiers,omitempty"`
+
+ // ProviderDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-providerdetails
+ ProviderDetails interface{} `json:"ProviderDetails,omitempty"`
+
+ // ProviderName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-providername
+ ProviderName *types.Value `json:"ProviderName,omitempty"`
+
+ // ProviderType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-providertype
+ ProviderType *types.Value `json:"ProviderType,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolidentityprovider.html#cfn-cognito-userpoolidentityprovider-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolIdentityProvider) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolIdentityProvider"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolIdentityProvider) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolIdentityProvider
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolIdentityProvider) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolIdentityProvider
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolIdentityProvider(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolresourceserver.go b/goformation/cloudformation/cognito/aws-cognito-userpoolresourceserver.go
new file mode 100644
index 0000000000..8aeb53be23
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolresourceserver.go
@@ -0,0 +1,123 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolResourceServer AWS CloudFormation Resource (AWS::Cognito::UserPoolResourceServer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html
+type UserPoolResourceServer struct {
+
+ // Identifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html#cfn-cognito-userpoolresourceserver-identifier
+ Identifier *types.Value `json:"Identifier,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html#cfn-cognito-userpoolresourceserver-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Scopes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html#cfn-cognito-userpoolresourceserver-scopes
+ Scopes []UserPoolResourceServer_ResourceServerScopeType `json:"Scopes,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolresourceserver.html#cfn-cognito-userpoolresourceserver-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolResourceServer) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolResourceServer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolResourceServer) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolResourceServer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolResourceServer) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolResourceServer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolResourceServer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolresourceserver_resourceserverscopetype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolresourceserver_resourceserverscopetype.go
new file mode 100644
index 0000000000..80660efc28
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolresourceserver_resourceserverscopetype.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolResourceServer_ResourceServerScopeType AWS CloudFormation Resource (AWS::Cognito::UserPoolResourceServer.ResourceServerScopeType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolresourceserver-resourceserverscopetype.html
+type UserPoolResourceServer_ResourceServerScopeType struct {
+
+ // ScopeDescription AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolresourceserver-resourceserverscopetype.html#cfn-cognito-userpoolresourceserver-resourceserverscopetype-scopedescription
+ ScopeDescription *types.Value `json:"ScopeDescription,omitempty"`
+
+ // ScopeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolresourceserver-resourceserverscopetype.html#cfn-cognito-userpoolresourceserver-resourceserverscopetype-scopename
+ ScopeName *types.Value `json:"ScopeName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolResourceServer_ResourceServerScopeType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolResourceServer.ResourceServerScopeType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment.go
new file mode 100644
index 0000000000..d61882d2b9
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment.go
@@ -0,0 +1,128 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html
+type UserPoolRiskConfigurationAttachment struct {
+
+ // AccountTakeoverRiskConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfiguration
+ AccountTakeoverRiskConfiguration *UserPoolRiskConfigurationAttachment_AccountTakeoverRiskConfigurationType `json:"AccountTakeoverRiskConfiguration,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html#cfn-cognito-userpoolriskconfigurationattachment-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // CompromisedCredentialsRiskConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html#cfn-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfiguration
+ CompromisedCredentialsRiskConfiguration *UserPoolRiskConfigurationAttachment_CompromisedCredentialsRiskConfigurationType `json:"CompromisedCredentialsRiskConfiguration,omitempty"`
+
+ // RiskExceptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html#cfn-cognito-userpoolriskconfigurationattachment-riskexceptionconfiguration
+ RiskExceptionConfiguration *UserPoolRiskConfigurationAttachment_RiskExceptionConfigurationType `json:"RiskExceptionConfiguration,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolriskconfigurationattachment.html#cfn-cognito-userpoolriskconfigurationattachment-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolRiskConfigurationAttachment) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolRiskConfigurationAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolRiskConfigurationAttachment) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolRiskConfigurationAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolRiskConfigurationAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoveractionstype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoveractionstype.go
new file mode 100644
index 0000000000..7b3cb113e8
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoveractionstype.go
@@ -0,0 +1,45 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment_AccountTakeoverActionsType AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html
+type UserPoolRiskConfigurationAttachment_AccountTakeoverActionsType struct {
+
+ // HighAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype-highaction
+ HighAction *UserPoolRiskConfigurationAttachment_AccountTakeoverActionType `json:"HighAction,omitempty"`
+
+ // LowAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype-lowaction
+ LowAction *UserPoolRiskConfigurationAttachment_AccountTakeoverActionType `json:"LowAction,omitempty"`
+
+ // MediumAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype-mediumaction
+ MediumAction *UserPoolRiskConfigurationAttachment_AccountTakeoverActionType `json:"MediumAction,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment_AccountTakeoverActionsType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoveractiontype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoveractiontype.go
new file mode 100644
index 0000000000..d370cefefd
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoveractiontype.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment_AccountTakeoverActionType AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html
+type UserPoolRiskConfigurationAttachment_AccountTakeoverActionType struct {
+
+ // EventAction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype-eventaction
+ EventAction *types.Value `json:"EventAction,omitempty"`
+
+ // Notify AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoveractiontype-notify
+ Notify *types.Value `json:"Notify"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment_AccountTakeoverActionType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoverriskconfigurationtype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoverriskconfigurationtype.go
new file mode 100644
index 0000000000..719673073b
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_accounttakeoverriskconfigurationtype.go
@@ -0,0 +1,40 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment_AccountTakeoverRiskConfigurationType AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfigurationtype.html
+type UserPoolRiskConfigurationAttachment_AccountTakeoverRiskConfigurationType struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfigurationtype-actions
+ Actions *UserPoolRiskConfigurationAttachment_AccountTakeoverActionsType `json:"Actions,omitempty"`
+
+ // NotifyConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoverriskconfigurationtype-notifyconfiguration
+ NotifyConfiguration *UserPoolRiskConfigurationAttachment_NotifyConfigurationType `json:"NotifyConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment_AccountTakeoverRiskConfigurationType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_compromisedcredentialsactionstype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_compromisedcredentialsactionstype.go
new file mode 100644
index 0000000000..7d69262896
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_compromisedcredentialsactionstype.go
@@ -0,0 +1,37 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment_CompromisedCredentialsActionsType AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsactionstype.html
+type UserPoolRiskConfigurationAttachment_CompromisedCredentialsActionsType struct {
+
+ // EventAction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsactionstype.html#cfn-cognito-userpoolriskconfigurationattachment-compromisedcredentialsactionstype-eventaction
+ EventAction *types.Value `json:"EventAction,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment_CompromisedCredentialsActionsType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_compromisedcredentialsriskconfigurationtype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_compromisedcredentialsriskconfigurationtype.go
new file mode 100644
index 0000000000..b59d03d6aa
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_compromisedcredentialsriskconfigurationtype.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment_CompromisedCredentialsRiskConfigurationType AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfigurationtype.html
+type UserPoolRiskConfigurationAttachment_CompromisedCredentialsRiskConfigurationType struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfigurationtype-actions
+ Actions *UserPoolRiskConfigurationAttachment_CompromisedCredentialsActionsType `json:"Actions,omitempty"`
+
+ // EventFilter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-compromisedcredentialsriskconfigurationtype-eventfilter
+ EventFilter *types.Value `json:"EventFilter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment_CompromisedCredentialsRiskConfigurationType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_notifyconfigurationtype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_notifyconfigurationtype.go
new file mode 100644
index 0000000000..d845a61d86
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_notifyconfigurationtype.go
@@ -0,0 +1,62 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment_NotifyConfigurationType AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html
+type UserPoolRiskConfigurationAttachment_NotifyConfigurationType struct {
+
+ // BlockEmail AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype-blockemail
+ BlockEmail *UserPoolRiskConfigurationAttachment_NotifyEmailType `json:"BlockEmail,omitempty"`
+
+ // From AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype-from
+ From *types.Value `json:"From,omitempty"`
+
+ // MfaEmail AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype-mfaemail
+ MfaEmail *UserPoolRiskConfigurationAttachment_NotifyEmailType `json:"MfaEmail,omitempty"`
+
+ // NoActionEmail AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype-noactionemail
+ NoActionEmail *UserPoolRiskConfigurationAttachment_NotifyEmailType `json:"NoActionEmail,omitempty"`
+
+ // ReplyTo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype-replyto
+ ReplyTo *types.Value `json:"ReplyTo,omitempty"`
+
+ // SourceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyconfigurationtype-sourcearn
+ SourceArn *types.Value `json:"SourceArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment_NotifyConfigurationType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_notifyemailtype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_notifyemailtype.go
new file mode 100644
index 0000000000..5eb0f223a3
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_notifyemailtype.go
@@ -0,0 +1,47 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment_NotifyEmailType AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html
+type UserPoolRiskConfigurationAttachment_NotifyEmailType struct {
+
+ // HtmlBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyemailtype-htmlbody
+ HtmlBody *types.Value `json:"HtmlBody,omitempty"`
+
+ // Subject AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyemailtype-subject
+ Subject *types.Value `json:"Subject,omitempty"`
+
+ // TextBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-notifyemailtype.html#cfn-cognito-userpoolriskconfigurationattachment-notifyemailtype-textbody
+ TextBody *types.Value `json:"TextBody,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment_NotifyEmailType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_riskexceptionconfigurationtype.go b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_riskexceptionconfigurationtype.go
new file mode 100644
index 0000000000..c4c45db1ee
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolriskconfigurationattachment_riskexceptionconfigurationtype.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolRiskConfigurationAttachment_RiskExceptionConfigurationType AWS CloudFormation Resource (AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-riskexceptionconfigurationtype.html
+type UserPoolRiskConfigurationAttachment_RiskExceptionConfigurationType struct {
+
+ // BlockedIPRangeList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-riskexceptionconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-riskexceptionconfigurationtype-blockediprangelist
+ BlockedIPRangeList *types.Value `json:"BlockedIPRangeList,omitempty"`
+
+ // SkippedIPRangeList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-riskexceptionconfigurationtype.html#cfn-cognito-userpoolriskconfigurationattachment-riskexceptionconfigurationtype-skippediprangelist
+ SkippedIPRangeList *types.Value `json:"SkippedIPRangeList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolRiskConfigurationAttachment_RiskExceptionConfigurationType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpooluicustomizationattachment.go b/goformation/cloudformation/cognito/aws-cognito-userpooluicustomizationattachment.go
new file mode 100644
index 0000000000..52e55493b6
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpooluicustomizationattachment.go
@@ -0,0 +1,118 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolUICustomizationAttachment AWS CloudFormation Resource (AWS::Cognito::UserPoolUICustomizationAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html
+type UserPoolUICustomizationAttachment struct {
+
+ // CSS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html#cfn-cognito-userpooluicustomizationattachment-css
+ CSS *types.Value `json:"CSS,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html#cfn-cognito-userpooluicustomizationattachment-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluicustomizationattachment.html#cfn-cognito-userpooluicustomizationattachment-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolUICustomizationAttachment) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolUICustomizationAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolUICustomizationAttachment) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolUICustomizationAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolUICustomizationAttachment) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolUICustomizationAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolUICustomizationAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpooluser.go b/goformation/cloudformation/cognito/aws-cognito-userpooluser.go
new file mode 100644
index 0000000000..4b9f941eb1
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpooluser.go
@@ -0,0 +1,143 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolUser AWS CloudFormation Resource (AWS::Cognito::UserPoolUser)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html
+type UserPoolUser struct {
+
+ // ClientMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-clientmetadata
+ ClientMetadata interface{} `json:"ClientMetadata,omitempty"`
+
+ // DesiredDeliveryMediums AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-desireddeliverymediums
+ DesiredDeliveryMediums *types.Value `json:"DesiredDeliveryMediums,omitempty"`
+
+ // ForceAliasCreation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-forcealiascreation
+ ForceAliasCreation *types.Value `json:"ForceAliasCreation,omitempty"`
+
+ // MessageAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-messageaction
+ MessageAction *types.Value `json:"MessageAction,omitempty"`
+
+ // UserAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-userattributes
+ UserAttributes []UserPoolUser_AttributeType `json:"UserAttributes,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // ValidationData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html#cfn-cognito-userpooluser-validationdata
+ ValidationData []UserPoolUser_AttributeType `json:"ValidationData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolUser) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolUser"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolUser) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolUser
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolUser) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolUser
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolUser(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpooluser_attributetype.go b/goformation/cloudformation/cognito/aws-cognito-userpooluser_attributetype.go
new file mode 100644
index 0000000000..1caf4fddce
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpooluser_attributetype.go
@@ -0,0 +1,42 @@
+package cognito
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolUser_AttributeType AWS CloudFormation Resource (AWS::Cognito::UserPoolUser.AttributeType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html
+type UserPoolUser_AttributeType struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html#cfn-cognito-userpooluser-attributetype-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html#cfn-cognito-userpooluser-attributetype-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolUser_AttributeType) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolUser.AttributeType"
+}
diff --git a/goformation/cloudformation/cognito/aws-cognito-userpoolusertogroupattachment.go b/goformation/cloudformation/cognito/aws-cognito-userpoolusertogroupattachment.go
new file mode 100644
index 0000000000..c4153d9a4f
--- /dev/null
+++ b/goformation/cloudformation/cognito/aws-cognito-userpoolusertogroupattachment.go
@@ -0,0 +1,118 @@
+package cognito
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserPoolUserToGroupAttachment AWS CloudFormation Resource (AWS::Cognito::UserPoolUserToGroupAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html
+type UserPoolUserToGroupAttachment struct {
+
+ // GroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html#cfn-cognito-userpoolusertogroupattachment-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserPoolUserToGroupAttachment) AWSCloudFormationType() string {
+ return "AWS::Cognito::UserPoolUserToGroupAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserPoolUserToGroupAttachment) MarshalJSON() ([]byte, error) {
+ type Properties UserPoolUserToGroupAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserPoolUserToGroupAttachment) UnmarshalJSON(b []byte) error {
+ type Properties UserPoolUserToGroupAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserPoolUserToGroupAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-aggregationauthorization.go b/goformation/cloudformation/config/aws-config-aggregationauthorization.go
new file mode 100644
index 0000000000..92a4e4decf
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-aggregationauthorization.go
@@ -0,0 +1,119 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// AggregationAuthorization AWS CloudFormation Resource (AWS::Config::AggregationAuthorization)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html
+type AggregationAuthorization struct {
+
+ // AuthorizedAccountId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html#cfn-config-aggregationauthorization-authorizedaccountid
+ AuthorizedAccountId *types.Value `json:"AuthorizedAccountId,omitempty"`
+
+ // AuthorizedAwsRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html#cfn-config-aggregationauthorization-authorizedawsregion
+ AuthorizedAwsRegion *types.Value `json:"AuthorizedAwsRegion,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-aggregationauthorization.html#cfn-config-aggregationauthorization-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AggregationAuthorization) AWSCloudFormationType() string {
+ return "AWS::Config::AggregationAuthorization"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AggregationAuthorization) MarshalJSON() ([]byte, error) {
+ type Properties AggregationAuthorization
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AggregationAuthorization) UnmarshalJSON(b []byte) error {
+ type Properties AggregationAuthorization
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AggregationAuthorization(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-configrule.go b/goformation/cloudformation/config/aws-config-configrule.go
new file mode 100644
index 0000000000..9b21fd1437
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configrule.go
@@ -0,0 +1,133 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigRule AWS CloudFormation Resource (AWS::Config::ConfigRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html
+type ConfigRule struct {
+
+ // ConfigRuleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-configrulename
+ ConfigRuleName *types.Value `json:"ConfigRuleName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // InputParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-inputparameters
+ InputParameters interface{} `json:"InputParameters,omitempty"`
+
+ // MaximumExecutionFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-maximumexecutionfrequency
+ MaximumExecutionFrequency *types.Value `json:"MaximumExecutionFrequency,omitempty"`
+
+ // Scope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-scope
+ Scope *ConfigRule_Scope `json:"Scope,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configrule.html#cfn-config-configrule-source
+ Source *ConfigRule_Source `json:"Source,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigRule) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigRule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConfigRule) MarshalJSON() ([]byte, error) {
+ type Properties ConfigRule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConfigRule) UnmarshalJSON(b []byte) error {
+ type Properties ConfigRule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConfigRule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-configrule_scope.go b/goformation/cloudformation/config/aws-config-configrule_scope.go
new file mode 100644
index 0000000000..5e739d49cf
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configrule_scope.go
@@ -0,0 +1,52 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigRule_Scope AWS CloudFormation Resource (AWS::Config::ConfigRule.Scope)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html
+type ConfigRule_Scope struct {
+
+ // ComplianceResourceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html#cfn-config-configrule-scope-complianceresourceid
+ ComplianceResourceId *types.Value `json:"ComplianceResourceId,omitempty"`
+
+ // ComplianceResourceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html#cfn-config-configrule-scope-complianceresourcetypes
+ ComplianceResourceTypes *types.Value `json:"ComplianceResourceTypes,omitempty"`
+
+ // TagKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html#cfn-config-configrule-scope-tagkey
+ TagKey *types.Value `json:"TagKey,omitempty"`
+
+ // TagValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-scope.html#cfn-config-configrule-scope-tagvalue
+ TagValue *types.Value `json:"TagValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigRule_Scope) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigRule.Scope"
+}
diff --git a/goformation/cloudformation/config/aws-config-configrule_source.go b/goformation/cloudformation/config/aws-config-configrule_source.go
new file mode 100644
index 0000000000..8bfaffa989
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configrule_source.go
@@ -0,0 +1,47 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigRule_Source AWS CloudFormation Resource (AWS::Config::ConfigRule.Source)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html
+type ConfigRule_Source struct {
+
+ // Owner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html#cfn-config-configrule-source-owner
+ Owner *types.Value `json:"Owner,omitempty"`
+
+ // SourceDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html#cfn-config-configrule-source-sourcedetails
+ SourceDetails []ConfigRule_SourceDetail `json:"SourceDetails,omitempty"`
+
+ // SourceIdentifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source.html#cfn-config-configrule-source-sourceidentifier
+ SourceIdentifier *types.Value `json:"SourceIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigRule_Source) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigRule.Source"
+}
diff --git a/goformation/cloudformation/config/aws-config-configrule_sourcedetail.go b/goformation/cloudformation/config/aws-config-configrule_sourcedetail.go
new file mode 100644
index 0000000000..7722595949
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configrule_sourcedetail.go
@@ -0,0 +1,47 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigRule_SourceDetail AWS CloudFormation Resource (AWS::Config::ConfigRule.SourceDetail)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html
+type ConfigRule_SourceDetail struct {
+
+ // EventSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html#cfn-config-configrule-source-sourcedetail-eventsource
+ EventSource *types.Value `json:"EventSource,omitempty"`
+
+ // MaximumExecutionFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html#cfn-config-configrule-sourcedetail-maximumexecutionfrequency
+ MaximumExecutionFrequency *types.Value `json:"MaximumExecutionFrequency,omitempty"`
+
+ // MessageType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configrule-source-sourcedetails.html#cfn-config-configrule-source-sourcedetail-messagetype
+ MessageType *types.Value `json:"MessageType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigRule_SourceDetail) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigRule.SourceDetail"
+}
diff --git a/goformation/cloudformation/config/aws-config-configurationaggregator.go b/goformation/cloudformation/config/aws-config-configurationaggregator.go
new file mode 100644
index 0000000000..e35cd18481
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configurationaggregator.go
@@ -0,0 +1,124 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationAggregator AWS CloudFormation Resource (AWS::Config::ConfigurationAggregator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html
+type ConfigurationAggregator struct {
+
+ // AccountAggregationSources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html#cfn-config-configurationaggregator-accountaggregationsources
+ AccountAggregationSources []ConfigurationAggregator_AccountAggregationSource `json:"AccountAggregationSources,omitempty"`
+
+ // ConfigurationAggregatorName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html#cfn-config-configurationaggregator-configurationaggregatorname
+ ConfigurationAggregatorName *types.Value `json:"ConfigurationAggregatorName,omitempty"`
+
+ // OrganizationAggregationSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html#cfn-config-configurationaggregator-organizationaggregationsource
+ OrganizationAggregationSource *ConfigurationAggregator_OrganizationAggregationSource `json:"OrganizationAggregationSource,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationaggregator.html#cfn-config-configurationaggregator-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationAggregator) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigurationAggregator"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConfigurationAggregator) MarshalJSON() ([]byte, error) {
+ type Properties ConfigurationAggregator
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConfigurationAggregator) UnmarshalJSON(b []byte) error {
+ type Properties ConfigurationAggregator
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConfigurationAggregator(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-configurationaggregator_accountaggregationsource.go b/goformation/cloudformation/config/aws-config-configurationaggregator_accountaggregationsource.go
new file mode 100644
index 0000000000..67a79c27af
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configurationaggregator_accountaggregationsource.go
@@ -0,0 +1,47 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationAggregator_AccountAggregationSource AWS CloudFormation Resource (AWS::Config::ConfigurationAggregator.AccountAggregationSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-accountaggregationsource.html
+type ConfigurationAggregator_AccountAggregationSource struct {
+
+ // AccountIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-accountaggregationsource.html#cfn-config-configurationaggregator-accountaggregationsource-accountids
+ AccountIds *types.Value `json:"AccountIds,omitempty"`
+
+ // AllAwsRegions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-accountaggregationsource.html#cfn-config-configurationaggregator-accountaggregationsource-allawsregions
+ AllAwsRegions *types.Value `json:"AllAwsRegions,omitempty"`
+
+ // AwsRegions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-accountaggregationsource.html#cfn-config-configurationaggregator-accountaggregationsource-awsregions
+ AwsRegions *types.Value `json:"AwsRegions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationAggregator_AccountAggregationSource) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigurationAggregator.AccountAggregationSource"
+}
diff --git a/goformation/cloudformation/config/aws-config-configurationaggregator_organizationaggregationsource.go b/goformation/cloudformation/config/aws-config-configurationaggregator_organizationaggregationsource.go
new file mode 100644
index 0000000000..928fe0831c
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configurationaggregator_organizationaggregationsource.go
@@ -0,0 +1,47 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationAggregator_OrganizationAggregationSource AWS CloudFormation Resource (AWS::Config::ConfigurationAggregator.OrganizationAggregationSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-organizationaggregationsource.html
+type ConfigurationAggregator_OrganizationAggregationSource struct {
+
+ // AllAwsRegions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-organizationaggregationsource.html#cfn-config-configurationaggregator-organizationaggregationsource-allawsregions
+ AllAwsRegions *types.Value `json:"AllAwsRegions,omitempty"`
+
+ // AwsRegions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-organizationaggregationsource.html#cfn-config-configurationaggregator-organizationaggregationsource-awsregions
+ AwsRegions *types.Value `json:"AwsRegions,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationaggregator-organizationaggregationsource.html#cfn-config-configurationaggregator-organizationaggregationsource-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationAggregator_OrganizationAggregationSource) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource"
+}
diff --git a/goformation/cloudformation/config/aws-config-configurationrecorder.go b/goformation/cloudformation/config/aws-config-configurationrecorder.go
new file mode 100644
index 0000000000..adcf279cdb
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configurationrecorder.go
@@ -0,0 +1,118 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationRecorder AWS CloudFormation Resource (AWS::Config::ConfigurationRecorder)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html
+type ConfigurationRecorder struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html#cfn-config-configurationrecorder-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RecordingGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html#cfn-config-configurationrecorder-recordinggroup
+ RecordingGroup *ConfigurationRecorder_RecordingGroup `json:"RecordingGroup,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-configurationrecorder.html#cfn-config-configurationrecorder-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationRecorder) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigurationRecorder"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConfigurationRecorder) MarshalJSON() ([]byte, error) {
+ type Properties ConfigurationRecorder
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConfigurationRecorder) UnmarshalJSON(b []byte) error {
+ type Properties ConfigurationRecorder
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConfigurationRecorder(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-configurationrecorder_recordinggroup.go b/goformation/cloudformation/config/aws-config-configurationrecorder_recordinggroup.go
new file mode 100644
index 0000000000..99db495b4a
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-configurationrecorder_recordinggroup.go
@@ -0,0 +1,47 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationRecorder_RecordingGroup AWS CloudFormation Resource (AWS::Config::ConfigurationRecorder.RecordingGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html
+type ConfigurationRecorder_RecordingGroup struct {
+
+ // AllSupported AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-allsupported
+ AllSupported *types.Value `json:"AllSupported,omitempty"`
+
+ // IncludeGlobalResourceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-includeglobalresourcetypes
+ IncludeGlobalResourceTypes *types.Value `json:"IncludeGlobalResourceTypes,omitempty"`
+
+ // ResourceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-configurationrecorder-recordinggroup.html#cfn-config-configurationrecorder-recordinggroup-resourcetypes
+ ResourceTypes *types.Value `json:"ResourceTypes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationRecorder_RecordingGroup) AWSCloudFormationType() string {
+ return "AWS::Config::ConfigurationRecorder.RecordingGroup"
+}
diff --git a/goformation/cloudformation/config/aws-config-conformancepack.go b/goformation/cloudformation/config/aws-config-conformancepack.go
new file mode 100644
index 0000000000..f1da352883
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-conformancepack.go
@@ -0,0 +1,133 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConformancePack AWS CloudFormation Resource (AWS::Config::ConformancePack)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html
+type ConformancePack struct {
+
+ // ConformancePackInputParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-conformancepackinputparameters
+ ConformancePackInputParameters []ConformancePack_ConformancePackInputParameter `json:"ConformancePackInputParameters,omitempty"`
+
+ // ConformancePackName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-conformancepackname
+ ConformancePackName *types.Value `json:"ConformancePackName,omitempty"`
+
+ // DeliveryS3Bucket AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-deliverys3bucket
+ DeliveryS3Bucket *types.Value `json:"DeliveryS3Bucket,omitempty"`
+
+ // DeliveryS3KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-deliverys3keyprefix
+ DeliveryS3KeyPrefix *types.Value `json:"DeliveryS3KeyPrefix,omitempty"`
+
+ // TemplateBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-templatebody
+ TemplateBody *types.Value `json:"TemplateBody,omitempty"`
+
+ // TemplateS3Uri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-conformancepack.html#cfn-config-conformancepack-templates3uri
+ TemplateS3Uri *types.Value `json:"TemplateS3Uri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConformancePack) AWSCloudFormationType() string {
+ return "AWS::Config::ConformancePack"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConformancePack) MarshalJSON() ([]byte, error) {
+ type Properties ConformancePack
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConformancePack) UnmarshalJSON(b []byte) error {
+ type Properties ConformancePack
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConformancePack(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-conformancepack_conformancepackinputparameter.go b/goformation/cloudformation/config/aws-config-conformancepack_conformancepackinputparameter.go
new file mode 100644
index 0000000000..30f674f8cf
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-conformancepack_conformancepackinputparameter.go
@@ -0,0 +1,42 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConformancePack_ConformancePackInputParameter AWS CloudFormation Resource (AWS::Config::ConformancePack.ConformancePackInputParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-conformancepack-conformancepackinputparameter.html
+type ConformancePack_ConformancePackInputParameter struct {
+
+ // ParameterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-conformancepack-conformancepackinputparameter.html#cfn-config-conformancepack-conformancepackinputparameter-parametername
+ ParameterName *types.Value `json:"ParameterName,omitempty"`
+
+ // ParameterValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-conformancepack-conformancepackinputparameter.html#cfn-config-conformancepack-conformancepackinputparameter-parametervalue
+ ParameterValue *types.Value `json:"ParameterValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConformancePack_ConformancePackInputParameter) AWSCloudFormationType() string {
+ return "AWS::Config::ConformancePack.ConformancePackInputParameter"
+}
diff --git a/goformation/cloudformation/config/aws-config-deliverychannel.go b/goformation/cloudformation/config/aws-config-deliverychannel.go
new file mode 100644
index 0000000000..53eb25da74
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-deliverychannel.go
@@ -0,0 +1,133 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryChannel AWS CloudFormation Resource (AWS::Config::DeliveryChannel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html
+type DeliveryChannel struct {
+
+ // ConfigSnapshotDeliveryProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-configsnapshotdeliveryproperties
+ ConfigSnapshotDeliveryProperties *DeliveryChannel_ConfigSnapshotDeliveryProperties `json:"ConfigSnapshotDeliveryProperties,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // S3BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-s3bucketname
+ S3BucketName *types.Value `json:"S3BucketName,omitempty"`
+
+ // S3KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-s3keyprefix
+ S3KeyPrefix *types.Value `json:"S3KeyPrefix,omitempty"`
+
+ // S3KmsKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-s3kmskeyarn
+ S3KmsKeyArn *types.Value `json:"S3KmsKeyArn,omitempty"`
+
+ // SnsTopicARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-deliverychannel.html#cfn-config-deliverychannel-snstopicarn
+ SnsTopicARN *types.Value `json:"SnsTopicARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryChannel) AWSCloudFormationType() string {
+ return "AWS::Config::DeliveryChannel"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DeliveryChannel) MarshalJSON() ([]byte, error) {
+ type Properties DeliveryChannel
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DeliveryChannel) UnmarshalJSON(b []byte) error {
+ type Properties DeliveryChannel
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DeliveryChannel(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-deliverychannel_configsnapshotdeliveryproperties.go b/goformation/cloudformation/config/aws-config-deliverychannel_configsnapshotdeliveryproperties.go
new file mode 100644
index 0000000000..a253840233
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-deliverychannel_configsnapshotdeliveryproperties.go
@@ -0,0 +1,37 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryChannel_ConfigSnapshotDeliveryProperties AWS CloudFormation Resource (AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html
+type DeliveryChannel_ConfigSnapshotDeliveryProperties struct {
+
+ // DeliveryFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-deliverychannel-configsnapshotdeliveryproperties.html#cfn-config-deliverychannel-configsnapshotdeliveryproperties-deliveryfrequency
+ DeliveryFrequency *types.Value `json:"DeliveryFrequency,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryChannel_ConfigSnapshotDeliveryProperties) AWSCloudFormationType() string {
+ return "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties"
+}
diff --git a/goformation/cloudformation/config/aws-config-organizationconfigrule.go b/goformation/cloudformation/config/aws-config-organizationconfigrule.go
new file mode 100644
index 0000000000..a79ecd0e20
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-organizationconfigrule.go
@@ -0,0 +1,123 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OrganizationConfigRule AWS CloudFormation Resource (AWS::Config::OrganizationConfigRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html
+type OrganizationConfigRule struct {
+
+ // ExcludedAccounts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html#cfn-config-organizationconfigrule-excludedaccounts
+ ExcludedAccounts *types.Value `json:"ExcludedAccounts,omitempty"`
+
+ // OrganizationConfigRuleName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html#cfn-config-organizationconfigrule-organizationconfigrulename
+ OrganizationConfigRuleName *types.Value `json:"OrganizationConfigRuleName,omitempty"`
+
+ // OrganizationCustomRuleMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata
+ OrganizationCustomRuleMetadata *OrganizationConfigRule_OrganizationCustomRuleMetadata `json:"OrganizationCustomRuleMetadata,omitempty"`
+
+ // OrganizationManagedRuleMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconfigrule.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata
+ OrganizationManagedRuleMetadata *OrganizationConfigRule_OrganizationManagedRuleMetadata `json:"OrganizationManagedRuleMetadata,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OrganizationConfigRule) AWSCloudFormationType() string {
+ return "AWS::Config::OrganizationConfigRule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r OrganizationConfigRule) MarshalJSON() ([]byte, error) {
+ type Properties OrganizationConfigRule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *OrganizationConfigRule) UnmarshalJSON(b []byte) error {
+ type Properties OrganizationConfigRule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = OrganizationConfigRule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-organizationconfigrule_organizationcustomrulemetadata.go b/goformation/cloudformation/config/aws-config-organizationconfigrule_organizationcustomrulemetadata.go
new file mode 100644
index 0000000000..e1f0dc320e
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-organizationconfigrule_organizationcustomrulemetadata.go
@@ -0,0 +1,77 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OrganizationConfigRule_OrganizationCustomRuleMetadata AWS CloudFormation Resource (AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html
+type OrganizationConfigRule_OrganizationCustomRuleMetadata struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // InputParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-inputparameters
+ InputParameters *types.Value `json:"InputParameters,omitempty"`
+
+ // LambdaFunctionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-lambdafunctionarn
+ LambdaFunctionArn *types.Value `json:"LambdaFunctionArn,omitempty"`
+
+ // MaximumExecutionFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-maximumexecutionfrequency
+ MaximumExecutionFrequency *types.Value `json:"MaximumExecutionFrequency,omitempty"`
+
+ // OrganizationConfigRuleTriggerTypes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-organizationconfigruletriggertypes
+ OrganizationConfigRuleTriggerTypes *types.Value `json:"OrganizationConfigRuleTriggerTypes,omitempty"`
+
+ // ResourceIdScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-resourceidscope
+ ResourceIdScope *types.Value `json:"ResourceIdScope,omitempty"`
+
+ // ResourceTypesScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-resourcetypesscope
+ ResourceTypesScope *types.Value `json:"ResourceTypesScope,omitempty"`
+
+ // TagKeyScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-tagkeyscope
+ TagKeyScope *types.Value `json:"TagKeyScope,omitempty"`
+
+ // TagValueScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationcustomrulemetadata.html#cfn-config-organizationconfigrule-organizationcustomrulemetadata-tagvaluescope
+ TagValueScope *types.Value `json:"TagValueScope,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OrganizationConfigRule_OrganizationCustomRuleMetadata) AWSCloudFormationType() string {
+ return "AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata"
+}
diff --git a/goformation/cloudformation/config/aws-config-organizationconfigrule_organizationmanagedrulemetadata.go b/goformation/cloudformation/config/aws-config-organizationconfigrule_organizationmanagedrulemetadata.go
new file mode 100644
index 0000000000..d116a3cfa9
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-organizationconfigrule_organizationmanagedrulemetadata.go
@@ -0,0 +1,72 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OrganizationConfigRule_OrganizationManagedRuleMetadata AWS CloudFormation Resource (AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html
+type OrganizationConfigRule_OrganizationManagedRuleMetadata struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // InputParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata-inputparameters
+ InputParameters *types.Value `json:"InputParameters,omitempty"`
+
+ // MaximumExecutionFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata-maximumexecutionfrequency
+ MaximumExecutionFrequency *types.Value `json:"MaximumExecutionFrequency,omitempty"`
+
+ // ResourceIdScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata-resourceidscope
+ ResourceIdScope *types.Value `json:"ResourceIdScope,omitempty"`
+
+ // ResourceTypesScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata-resourcetypesscope
+ ResourceTypesScope *types.Value `json:"ResourceTypesScope,omitempty"`
+
+ // RuleIdentifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata-ruleidentifier
+ RuleIdentifier *types.Value `json:"RuleIdentifier,omitempty"`
+
+ // TagKeyScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata-tagkeyscope
+ TagKeyScope *types.Value `json:"TagKeyScope,omitempty"`
+
+ // TagValueScope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconfigrule-organizationmanagedrulemetadata.html#cfn-config-organizationconfigrule-organizationmanagedrulemetadata-tagvaluescope
+ TagValueScope *types.Value `json:"TagValueScope,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OrganizationConfigRule_OrganizationManagedRuleMetadata) AWSCloudFormationType() string {
+ return "AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata"
+}
diff --git a/goformation/cloudformation/config/aws-config-organizationconformancepack.go b/goformation/cloudformation/config/aws-config-organizationconformancepack.go
new file mode 100644
index 0000000000..b8c579e20b
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-organizationconformancepack.go
@@ -0,0 +1,138 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OrganizationConformancePack AWS CloudFormation Resource (AWS::Config::OrganizationConformancePack)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html
+type OrganizationConformancePack struct {
+
+ // ConformancePackInputParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html#cfn-config-organizationconformancepack-conformancepackinputparameters
+ ConformancePackInputParameters []OrganizationConformancePack_ConformancePackInputParameter `json:"ConformancePackInputParameters,omitempty"`
+
+ // DeliveryS3Bucket AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html#cfn-config-organizationconformancepack-deliverys3bucket
+ DeliveryS3Bucket *types.Value `json:"DeliveryS3Bucket,omitempty"`
+
+ // DeliveryS3KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html#cfn-config-organizationconformancepack-deliverys3keyprefix
+ DeliveryS3KeyPrefix *types.Value `json:"DeliveryS3KeyPrefix,omitempty"`
+
+ // ExcludedAccounts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html#cfn-config-organizationconformancepack-excludedaccounts
+ ExcludedAccounts *types.Value `json:"ExcludedAccounts,omitempty"`
+
+ // OrganizationConformancePackName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html#cfn-config-organizationconformancepack-organizationconformancepackname
+ OrganizationConformancePackName *types.Value `json:"OrganizationConformancePackName,omitempty"`
+
+ // TemplateBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html#cfn-config-organizationconformancepack-templatebody
+ TemplateBody *types.Value `json:"TemplateBody,omitempty"`
+
+ // TemplateS3Uri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-organizationconformancepack.html#cfn-config-organizationconformancepack-templates3uri
+ TemplateS3Uri *types.Value `json:"TemplateS3Uri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OrganizationConformancePack) AWSCloudFormationType() string {
+ return "AWS::Config::OrganizationConformancePack"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r OrganizationConformancePack) MarshalJSON() ([]byte, error) {
+ type Properties OrganizationConformancePack
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *OrganizationConformancePack) UnmarshalJSON(b []byte) error {
+ type Properties OrganizationConformancePack
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = OrganizationConformancePack(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-organizationconformancepack_conformancepackinputparameter.go b/goformation/cloudformation/config/aws-config-organizationconformancepack_conformancepackinputparameter.go
new file mode 100644
index 0000000000..599bf2b4cd
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-organizationconformancepack_conformancepackinputparameter.go
@@ -0,0 +1,42 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// OrganizationConformancePack_ConformancePackInputParameter AWS CloudFormation Resource (AWS::Config::OrganizationConformancePack.ConformancePackInputParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconformancepack-conformancepackinputparameter.html
+type OrganizationConformancePack_ConformancePackInputParameter struct {
+
+ // ParameterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconformancepack-conformancepackinputparameter.html#cfn-config-organizationconformancepack-conformancepackinputparameter-parametername
+ ParameterName *types.Value `json:"ParameterName,omitempty"`
+
+ // ParameterValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-organizationconformancepack-conformancepackinputparameter.html#cfn-config-organizationconformancepack-conformancepackinputparameter-parametervalue
+ ParameterValue *types.Value `json:"ParameterValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OrganizationConformancePack_ConformancePackInputParameter) AWSCloudFormationType() string {
+ return "AWS::Config::OrganizationConformancePack.ConformancePackInputParameter"
+}
diff --git a/goformation/cloudformation/config/aws-config-remediationconfiguration.go b/goformation/cloudformation/config/aws-config-remediationconfiguration.go
new file mode 100644
index 0000000000..057d5709c0
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-remediationconfiguration.go
@@ -0,0 +1,153 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RemediationConfiguration AWS CloudFormation Resource (AWS::Config::RemediationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html
+type RemediationConfiguration struct {
+
+ // Automatic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-automatic
+ Automatic *types.Value `json:"Automatic,omitempty"`
+
+ // ConfigRuleName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-configrulename
+ ConfigRuleName *types.Value `json:"ConfigRuleName,omitempty"`
+
+ // ExecutionControls AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-executioncontrols
+ ExecutionControls *RemediationConfiguration_ExecutionControls `json:"ExecutionControls,omitempty"`
+
+ // MaximumAutomaticAttempts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-maximumautomaticattempts
+ MaximumAutomaticAttempts *types.Value `json:"MaximumAutomaticAttempts,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // ResourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // RetryAttemptSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-retryattemptseconds
+ RetryAttemptSeconds *types.Value `json:"RetryAttemptSeconds,omitempty"`
+
+ // TargetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targetid
+ TargetId *types.Value `json:"TargetId,omitempty"`
+
+ // TargetType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targettype
+ TargetType *types.Value `json:"TargetType,omitempty"`
+
+ // TargetVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-remediationconfiguration.html#cfn-config-remediationconfiguration-targetversion
+ TargetVersion *types.Value `json:"TargetVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RemediationConfiguration) AWSCloudFormationType() string {
+ return "AWS::Config::RemediationConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RemediationConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties RemediationConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RemediationConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties RemediationConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RemediationConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/config/aws-config-remediationconfiguration_executioncontrols.go b/goformation/cloudformation/config/aws-config-remediationconfiguration_executioncontrols.go
new file mode 100644
index 0000000000..0052a0d5bc
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-remediationconfiguration_executioncontrols.go
@@ -0,0 +1,35 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// RemediationConfiguration_ExecutionControls AWS CloudFormation Resource (AWS::Config::RemediationConfiguration.ExecutionControls)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-executioncontrols.html
+type RemediationConfiguration_ExecutionControls struct {
+
+ // SsmControls AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-executioncontrols.html#cfn-config-remediationconfiguration-executioncontrols-ssmcontrols
+ SsmControls *RemediationConfiguration_SsmControls `json:"SsmControls,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RemediationConfiguration_ExecutionControls) AWSCloudFormationType() string {
+ return "AWS::Config::RemediationConfiguration.ExecutionControls"
+}
diff --git a/goformation/cloudformation/config/aws-config-remediationconfiguration_remediationparametervalue.go b/goformation/cloudformation/config/aws-config-remediationconfiguration_remediationparametervalue.go
new file mode 100644
index 0000000000..f743298f62
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-remediationconfiguration_remediationparametervalue.go
@@ -0,0 +1,40 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// RemediationConfiguration_RemediationParameterValue AWS CloudFormation Resource (AWS::Config::RemediationConfiguration.RemediationParameterValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-remediationparametervalue.html
+type RemediationConfiguration_RemediationParameterValue struct {
+
+ // ResourceValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-remediationparametervalue.html#cfn-config-remediationconfiguration-remediationparametervalue-resourcevalue
+ ResourceValue *RemediationConfiguration_ResourceValue `json:"ResourceValue,omitempty"`
+
+ // StaticValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-remediationparametervalue.html#cfn-config-remediationconfiguration-remediationparametervalue-staticvalue
+ StaticValue *RemediationConfiguration_StaticValue `json:"StaticValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RemediationConfiguration_RemediationParameterValue) AWSCloudFormationType() string {
+ return "AWS::Config::RemediationConfiguration.RemediationParameterValue"
+}
diff --git a/goformation/cloudformation/config/aws-config-remediationconfiguration_resourcevalue.go b/goformation/cloudformation/config/aws-config-remediationconfiguration_resourcevalue.go
new file mode 100644
index 0000000000..3410444f5e
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-remediationconfiguration_resourcevalue.go
@@ -0,0 +1,37 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RemediationConfiguration_ResourceValue AWS CloudFormation Resource (AWS::Config::RemediationConfiguration.ResourceValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-resourcevalue.html
+type RemediationConfiguration_ResourceValue struct {
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-resourcevalue.html#cfn-config-remediationconfiguration-resourcevalue-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RemediationConfiguration_ResourceValue) AWSCloudFormationType() string {
+ return "AWS::Config::RemediationConfiguration.ResourceValue"
+}
diff --git a/goformation/cloudformation/config/aws-config-remediationconfiguration_ssmcontrols.go b/goformation/cloudformation/config/aws-config-remediationconfiguration_ssmcontrols.go
new file mode 100644
index 0000000000..1806710ec4
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-remediationconfiguration_ssmcontrols.go
@@ -0,0 +1,42 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RemediationConfiguration_SsmControls AWS CloudFormation Resource (AWS::Config::RemediationConfiguration.SsmControls)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-ssmcontrols.html
+type RemediationConfiguration_SsmControls struct {
+
+ // ConcurrentExecutionRatePercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-ssmcontrols.html#cfn-config-remediationconfiguration-ssmcontrols-concurrentexecutionratepercentage
+ ConcurrentExecutionRatePercentage *types.Value `json:"ConcurrentExecutionRatePercentage,omitempty"`
+
+ // ErrorPercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-ssmcontrols.html#cfn-config-remediationconfiguration-ssmcontrols-errorpercentage
+ ErrorPercentage *types.Value `json:"ErrorPercentage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RemediationConfiguration_SsmControls) AWSCloudFormationType() string {
+ return "AWS::Config::RemediationConfiguration.SsmControls"
+}
diff --git a/goformation/cloudformation/config/aws-config-remediationconfiguration_staticvalue.go b/goformation/cloudformation/config/aws-config-remediationconfiguration_staticvalue.go
new file mode 100644
index 0000000000..80c983c79b
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-remediationconfiguration_staticvalue.go
@@ -0,0 +1,37 @@
+package config
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RemediationConfiguration_StaticValue AWS CloudFormation Resource (AWS::Config::RemediationConfiguration.StaticValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-staticvalue.html
+type RemediationConfiguration_StaticValue struct {
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-config-remediationconfiguration-staticvalue.html#cfn-config-remediationconfiguration-staticvalue-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RemediationConfiguration_StaticValue) AWSCloudFormationType() string {
+ return "AWS::Config::RemediationConfiguration.StaticValue"
+}
diff --git a/goformation/cloudformation/config/aws-config-storedquery.go b/goformation/cloudformation/config/aws-config-storedquery.go
new file mode 100644
index 0000000000..4dbfcb8c8c
--- /dev/null
+++ b/goformation/cloudformation/config/aws-config-storedquery.go
@@ -0,0 +1,124 @@
+package config
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// StoredQuery AWS CloudFormation Resource (AWS::Config::StoredQuery)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html
+type StoredQuery struct {
+
+ // QueryDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html#cfn-config-storedquery-querydescription
+ QueryDescription *types.Value `json:"QueryDescription,omitempty"`
+
+ // QueryExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html#cfn-config-storedquery-queryexpression
+ QueryExpression *types.Value `json:"QueryExpression,omitempty"`
+
+ // QueryName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html#cfn-config-storedquery-queryname
+ QueryName *types.Value `json:"QueryName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-config-storedquery.html#cfn-config-storedquery-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StoredQuery) AWSCloudFormationType() string {
+ return "AWS::Config::StoredQuery"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StoredQuery) MarshalJSON() ([]byte, error) {
+ type Properties StoredQuery
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StoredQuery) UnmarshalJSON(b []byte) error {
+ type Properties StoredQuery
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StoredQuery(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/connect/aws-connect-contactflow.go b/goformation/cloudformation/connect/aws-connect-contactflow.go
new file mode 100644
index 0000000000..f570b81cc6
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-contactflow.go
@@ -0,0 +1,139 @@
+package connect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ContactFlow AWS CloudFormation Resource (AWS::Connect::ContactFlow)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html
+type ContactFlow struct {
+
+ // Content AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html#cfn-connect-contactflow-content
+ Content *types.Value `json:"Content,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html#cfn-connect-contactflow-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // InstanceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html#cfn-connect-contactflow-instancearn
+ InstanceArn *types.Value `json:"InstanceArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html#cfn-connect-contactflow-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html#cfn-connect-contactflow-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html#cfn-connect-contactflow-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html#cfn-connect-contactflow-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ContactFlow) AWSCloudFormationType() string {
+ return "AWS::Connect::ContactFlow"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ContactFlow) MarshalJSON() ([]byte, error) {
+ type Properties ContactFlow
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ContactFlow) UnmarshalJSON(b []byte) error {
+ type Properties ContactFlow
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ContactFlow(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/connect/aws-connect-contactflowmodule.go b/goformation/cloudformation/connect/aws-connect-contactflowmodule.go
new file mode 100644
index 0000000000..c5ca649328
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-contactflowmodule.go
@@ -0,0 +1,134 @@
+package connect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ContactFlowModule AWS CloudFormation Resource (AWS::Connect::ContactFlowModule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html
+type ContactFlowModule struct {
+
+ // Content AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html#cfn-connect-contactflowmodule-content
+ Content *types.Value `json:"Content,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html#cfn-connect-contactflowmodule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // InstanceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html#cfn-connect-contactflowmodule-instancearn
+ InstanceArn *types.Value `json:"InstanceArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html#cfn-connect-contactflowmodule-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html#cfn-connect-contactflowmodule-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html#cfn-connect-contactflowmodule-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ContactFlowModule) AWSCloudFormationType() string {
+ return "AWS::Connect::ContactFlowModule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ContactFlowModule) MarshalJSON() ([]byte, error) {
+ type Properties ContactFlowModule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ContactFlowModule) UnmarshalJSON(b []byte) error {
+ type Properties ContactFlowModule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ContactFlowModule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/connect/aws-connect-hoursofoperation.go b/goformation/cloudformation/connect/aws-connect-hoursofoperation.go
new file mode 100644
index 0000000000..21413bb0ff
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-hoursofoperation.go
@@ -0,0 +1,134 @@
+package connect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// HoursOfOperation AWS CloudFormation Resource (AWS::Connect::HoursOfOperation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html
+type HoursOfOperation struct {
+
+ // Config AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-config
+ Config []HoursOfOperation_HoursOfOperationConfig `json:"Config,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // InstanceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-instancearn
+ InstanceArn *types.Value `json:"InstanceArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TimeZone AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html#cfn-connect-hoursofoperation-timezone
+ TimeZone *types.Value `json:"TimeZone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *HoursOfOperation) AWSCloudFormationType() string {
+ return "AWS::Connect::HoursOfOperation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r HoursOfOperation) MarshalJSON() ([]byte, error) {
+ type Properties HoursOfOperation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *HoursOfOperation) UnmarshalJSON(b []byte) error {
+ type Properties HoursOfOperation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = HoursOfOperation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationconfig.go b/goformation/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationconfig.go
new file mode 100644
index 0000000000..aaf8753ec8
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationconfig.go
@@ -0,0 +1,47 @@
+package connect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// HoursOfOperation_HoursOfOperationConfig AWS CloudFormation Resource (AWS::Connect::HoursOfOperation.HoursOfOperationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html
+type HoursOfOperation_HoursOfOperationConfig struct {
+
+ // Day AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html#cfn-connect-hoursofoperation-hoursofoperationconfig-day
+ Day *types.Value `json:"Day,omitempty"`
+
+ // EndTime AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html#cfn-connect-hoursofoperation-hoursofoperationconfig-endtime
+ EndTime *HoursOfOperation_HoursOfOperationTimeSlice `json:"EndTime,omitempty"`
+
+ // StartTime AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html#cfn-connect-hoursofoperation-hoursofoperationconfig-starttime
+ StartTime *HoursOfOperation_HoursOfOperationTimeSlice `json:"StartTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *HoursOfOperation_HoursOfOperationConfig) AWSCloudFormationType() string {
+ return "AWS::Connect::HoursOfOperation.HoursOfOperationConfig"
+}
diff --git a/goformation/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationtimeslice.go b/goformation/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationtimeslice.go
new file mode 100644
index 0000000000..784202eb2b
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-hoursofoperation_hoursofoperationtimeslice.go
@@ -0,0 +1,42 @@
+package connect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// HoursOfOperation_HoursOfOperationTimeSlice AWS CloudFormation Resource (AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html
+type HoursOfOperation_HoursOfOperationTimeSlice struct {
+
+ // Hours AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html#cfn-connect-hoursofoperation-hoursofoperationtimeslice-hours
+ Hours *types.Value `json:"Hours"`
+
+ // Minutes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html#cfn-connect-hoursofoperation-hoursofoperationtimeslice-minutes
+ Minutes *types.Value `json:"Minutes"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *HoursOfOperation_HoursOfOperationTimeSlice) AWSCloudFormationType() string {
+ return "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice"
+}
diff --git a/goformation/cloudformation/connect/aws-connect-quickconnect.go b/goformation/cloudformation/connect/aws-connect-quickconnect.go
new file mode 100644
index 0000000000..f6424993db
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-quickconnect.go
@@ -0,0 +1,129 @@
+package connect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// QuickConnect AWS CloudFormation Resource (AWS::Connect::QuickConnect)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html
+type QuickConnect struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // InstanceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-instancearn
+ InstanceArn *types.Value `json:"InstanceArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // QuickConnectConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-quickconnectconfig
+ QuickConnectConfig *QuickConnect_QuickConnectConfig `json:"QuickConnectConfig,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html#cfn-connect-quickconnect-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *QuickConnect) AWSCloudFormationType() string {
+ return "AWS::Connect::QuickConnect"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r QuickConnect) MarshalJSON() ([]byte, error) {
+ type Properties QuickConnect
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *QuickConnect) UnmarshalJSON(b []byte) error {
+ type Properties QuickConnect
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = QuickConnect(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/connect/aws-connect-quickconnect_phonenumberquickconnectconfig.go b/goformation/cloudformation/connect/aws-connect-quickconnect_phonenumberquickconnectconfig.go
new file mode 100644
index 0000000000..b62ff06932
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-quickconnect_phonenumberquickconnectconfig.go
@@ -0,0 +1,37 @@
+package connect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// QuickConnect_PhoneNumberQuickConnectConfig AWS CloudFormation Resource (AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-phonenumberquickconnectconfig.html
+type QuickConnect_PhoneNumberQuickConnectConfig struct {
+
+ // PhoneNumber AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-phonenumberquickconnectconfig.html#cfn-connect-quickconnect-phonenumberquickconnectconfig-phonenumber
+ PhoneNumber *types.Value `json:"PhoneNumber,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *QuickConnect_PhoneNumberQuickConnectConfig) AWSCloudFormationType() string {
+ return "AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig"
+}
diff --git a/goformation/cloudformation/connect/aws-connect-quickconnect_queuequickconnectconfig.go b/goformation/cloudformation/connect/aws-connect-quickconnect_queuequickconnectconfig.go
new file mode 100644
index 0000000000..e35550b285
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-quickconnect_queuequickconnectconfig.go
@@ -0,0 +1,42 @@
+package connect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// QuickConnect_QueueQuickConnectConfig AWS CloudFormation Resource (AWS::Connect::QuickConnect.QueueQuickConnectConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html
+type QuickConnect_QueueQuickConnectConfig struct {
+
+ // ContactFlowArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html#cfn-connect-quickconnect-queuequickconnectconfig-contactflowarn
+ ContactFlowArn *types.Value `json:"ContactFlowArn,omitempty"`
+
+ // QueueArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html#cfn-connect-quickconnect-queuequickconnectconfig-queuearn
+ QueueArn *types.Value `json:"QueueArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *QuickConnect_QueueQuickConnectConfig) AWSCloudFormationType() string {
+ return "AWS::Connect::QuickConnect.QueueQuickConnectConfig"
+}
diff --git a/goformation/cloudformation/connect/aws-connect-quickconnect_quickconnectconfig.go b/goformation/cloudformation/connect/aws-connect-quickconnect_quickconnectconfig.go
new file mode 100644
index 0000000000..5e14e7bf4d
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-quickconnect_quickconnectconfig.go
@@ -0,0 +1,52 @@
+package connect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// QuickConnect_QuickConnectConfig AWS CloudFormation Resource (AWS::Connect::QuickConnect.QuickConnectConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html
+type QuickConnect_QuickConnectConfig struct {
+
+ // PhoneConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html#cfn-connect-quickconnect-quickconnectconfig-phoneconfig
+ PhoneConfig *QuickConnect_PhoneNumberQuickConnectConfig `json:"PhoneConfig,omitempty"`
+
+ // QueueConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html#cfn-connect-quickconnect-quickconnectconfig-queueconfig
+ QueueConfig *QuickConnect_QueueQuickConnectConfig `json:"QueueConfig,omitempty"`
+
+ // QuickConnectType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html#cfn-connect-quickconnect-quickconnectconfig-quickconnecttype
+ QuickConnectType *types.Value `json:"QuickConnectType,omitempty"`
+
+ // UserConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html#cfn-connect-quickconnect-quickconnectconfig-userconfig
+ UserConfig *QuickConnect_UserQuickConnectConfig `json:"UserConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *QuickConnect_QuickConnectConfig) AWSCloudFormationType() string {
+ return "AWS::Connect::QuickConnect.QuickConnectConfig"
+}
diff --git a/goformation/cloudformation/connect/aws-connect-quickconnect_userquickconnectconfig.go b/goformation/cloudformation/connect/aws-connect-quickconnect_userquickconnectconfig.go
new file mode 100644
index 0000000000..cc23909536
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-quickconnect_userquickconnectconfig.go
@@ -0,0 +1,42 @@
+package connect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// QuickConnect_UserQuickConnectConfig AWS CloudFormation Resource (AWS::Connect::QuickConnect.UserQuickConnectConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html
+type QuickConnect_UserQuickConnectConfig struct {
+
+ // ContactFlowArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html#cfn-connect-quickconnect-userquickconnectconfig-contactflowarn
+ ContactFlowArn *types.Value `json:"ContactFlowArn,omitempty"`
+
+ // UserArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html#cfn-connect-quickconnect-userquickconnectconfig-userarn
+ UserArn *types.Value `json:"UserArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *QuickConnect_UserQuickConnectConfig) AWSCloudFormationType() string {
+ return "AWS::Connect::QuickConnect.UserQuickConnectConfig"
+}
diff --git a/goformation/cloudformation/connect/aws-connect-user.go b/goformation/cloudformation/connect/aws-connect-user.go
new file mode 100644
index 0000000000..3d1c1eb0d3
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-user.go
@@ -0,0 +1,154 @@
+package connect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// User AWS CloudFormation Resource (AWS::Connect::User)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html
+type User struct {
+
+ // DirectoryUserId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-directoryuserid
+ DirectoryUserId *types.Value `json:"DirectoryUserId,omitempty"`
+
+ // HierarchyGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-hierarchygrouparn
+ HierarchyGroupArn *types.Value `json:"HierarchyGroupArn,omitempty"`
+
+ // IdentityInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-identityinfo
+ IdentityInfo *User_UserIdentityInfo `json:"IdentityInfo,omitempty"`
+
+ // InstanceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-instancearn
+ InstanceArn *types.Value `json:"InstanceArn,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // PhoneConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-phoneconfig
+ PhoneConfig *User_UserPhoneConfig `json:"PhoneConfig,omitempty"`
+
+ // RoutingProfileArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-routingprofilearn
+ RoutingProfileArn *types.Value `json:"RoutingProfileArn,omitempty"`
+
+ // SecurityProfileArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-securityprofilearns
+ SecurityProfileArns *types.Value `json:"SecurityProfileArns,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-user.html#cfn-connect-user-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *User) AWSCloudFormationType() string {
+ return "AWS::Connect::User"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r User) MarshalJSON() ([]byte, error) {
+ type Properties User
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *User) UnmarshalJSON(b []byte) error {
+ type Properties User
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = User(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/connect/aws-connect-user_useridentityinfo.go b/goformation/cloudformation/connect/aws-connect-user_useridentityinfo.go
new file mode 100644
index 0000000000..5c74a174ec
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-user_useridentityinfo.go
@@ -0,0 +1,47 @@
+package connect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// User_UserIdentityInfo AWS CloudFormation Resource (AWS::Connect::User.UserIdentityInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html
+type User_UserIdentityInfo struct {
+
+ // Email AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html#cfn-connect-user-useridentityinfo-email
+ Email *types.Value `json:"Email,omitempty"`
+
+ // FirstName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html#cfn-connect-user-useridentityinfo-firstname
+ FirstName *types.Value `json:"FirstName,omitempty"`
+
+ // LastName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html#cfn-connect-user-useridentityinfo-lastname
+ LastName *types.Value `json:"LastName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *User_UserIdentityInfo) AWSCloudFormationType() string {
+ return "AWS::Connect::User.UserIdentityInfo"
+}
diff --git a/goformation/cloudformation/connect/aws-connect-user_userphoneconfig.go b/goformation/cloudformation/connect/aws-connect-user_userphoneconfig.go
new file mode 100644
index 0000000000..f9cda7fc6f
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-user_userphoneconfig.go
@@ -0,0 +1,52 @@
+package connect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// User_UserPhoneConfig AWS CloudFormation Resource (AWS::Connect::User.UserPhoneConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html
+type User_UserPhoneConfig struct {
+
+ // AfterContactWorkTimeLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html#cfn-connect-user-userphoneconfig-aftercontactworktimelimit
+ AfterContactWorkTimeLimit *types.Value `json:"AfterContactWorkTimeLimit,omitempty"`
+
+ // AutoAccept AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html#cfn-connect-user-userphoneconfig-autoaccept
+ AutoAccept *types.Value `json:"AutoAccept,omitempty"`
+
+ // DeskPhoneNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html#cfn-connect-user-userphoneconfig-deskphonenumber
+ DeskPhoneNumber *types.Value `json:"DeskPhoneNumber,omitempty"`
+
+ // PhoneType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html#cfn-connect-user-userphoneconfig-phonetype
+ PhoneType *types.Value `json:"PhoneType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *User_UserPhoneConfig) AWSCloudFormationType() string {
+ return "AWS::Connect::User.UserPhoneConfig"
+}
diff --git a/goformation/cloudformation/connect/aws-connect-userhierarchygroup.go b/goformation/cloudformation/connect/aws-connect-userhierarchygroup.go
new file mode 100644
index 0000000000..02bdaa9c02
--- /dev/null
+++ b/goformation/cloudformation/connect/aws-connect-userhierarchygroup.go
@@ -0,0 +1,118 @@
+package connect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserHierarchyGroup AWS CloudFormation Resource (AWS::Connect::UserHierarchyGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html
+type UserHierarchyGroup struct {
+
+ // InstanceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html#cfn-connect-userhierarchygroup-instancearn
+ InstanceArn *types.Value `json:"InstanceArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html#cfn-connect-userhierarchygroup-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ParentGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html#cfn-connect-userhierarchygroup-parentgrouparn
+ ParentGroupArn *types.Value `json:"ParentGroupArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserHierarchyGroup) AWSCloudFormationType() string {
+ return "AWS::Connect::UserHierarchyGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserHierarchyGroup) MarshalJSON() ([]byte, error) {
+ type Properties UserHierarchyGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserHierarchyGroup) UnmarshalJSON(b []byte) error {
+ type Properties UserHierarchyGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserHierarchyGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/cur/aws-cur-reportdefinition.go b/goformation/cloudformation/cur/aws-cur-reportdefinition.go
new file mode 100644
index 0000000000..7f3ea6610c
--- /dev/null
+++ b/goformation/cloudformation/cur/aws-cur-reportdefinition.go
@@ -0,0 +1,163 @@
+package cur
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReportDefinition AWS CloudFormation Resource (AWS::CUR::ReportDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html
+type ReportDefinition struct {
+
+ // AdditionalArtifacts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-additionalartifacts
+ AdditionalArtifacts *types.Value `json:"AdditionalArtifacts,omitempty"`
+
+ // AdditionalSchemaElements AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-additionalschemaelements
+ AdditionalSchemaElements *types.Value `json:"AdditionalSchemaElements,omitempty"`
+
+ // BillingViewArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-billingviewarn
+ BillingViewArn *types.Value `json:"BillingViewArn,omitempty"`
+
+ // Compression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-compression
+ Compression *types.Value `json:"Compression,omitempty"`
+
+ // Format AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // RefreshClosedReports AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-refreshclosedreports
+ RefreshClosedReports *types.Value `json:"RefreshClosedReports"`
+
+ // ReportName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-reportname
+ ReportName *types.Value `json:"ReportName,omitempty"`
+
+ // ReportVersioning AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-reportversioning
+ ReportVersioning *types.Value `json:"ReportVersioning,omitempty"`
+
+ // S3Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-s3bucket
+ S3Bucket *types.Value `json:"S3Bucket,omitempty"`
+
+ // S3Prefix AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-s3prefix
+ S3Prefix *types.Value `json:"S3Prefix,omitempty"`
+
+ // S3Region AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-s3region
+ S3Region *types.Value `json:"S3Region,omitempty"`
+
+ // TimeUnit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cur-reportdefinition.html#cfn-cur-reportdefinition-timeunit
+ TimeUnit *types.Value `json:"TimeUnit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReportDefinition) AWSCloudFormationType() string {
+ return "AWS::CUR::ReportDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReportDefinition) MarshalJSON() ([]byte, error) {
+ type Properties ReportDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReportDefinition) UnmarshalJSON(b []byte) error {
+ type Properties ReportDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReportDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/custom_resource.go b/goformation/cloudformation/custom_resource.go
new file mode 100644
index 0000000000..ca80374240
--- /dev/null
+++ b/goformation/cloudformation/custom_resource.go
@@ -0,0 +1,87 @@
+package cloudformation
+
+import (
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html
+type CustomResource struct {
+ Type string `json:"Type,omitempty"`
+ Properties map[string]interface{} `json:"Properties,omitempty"`
+
+ // _deletionPolicy represents a CloudFormation DeletionPolicy
+ _deletionPolicy policies.DeletionPolicy
+
+ // _dependsOn stores the logical ID of the resources to be created before this resource
+ _dependsOn []string
+
+ // _metadata stores structured data associated with this resource
+ _metadata map[string]interface{}
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomResource) AWSCloudFormationType() string {
+ return r.Type
+}
+
+// DependsOn returns a slice of logical ID names this resource depends on.
+// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html
+func (r *CustomResource) DependsOn() []string {
+ return r._dependsOn
+}
+
+// SetDependsOn specify that the creation of this resource follows another.
+// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html
+func (r *CustomResource) SetDependsOn(dependencies []string) {
+ r._dependsOn = dependencies
+}
+
+// Metadata returns the metadata associated with this resource.
+// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html
+func (r *CustomResource) Metadata() map[string]interface{} {
+ return r._metadata
+}
+
+// SetMetadata enables you to associate structured data with this resource.
+// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html
+func (r *CustomResource) SetMetadata(metadata map[string]interface{}) {
+ r._metadata = metadata
+}
+
+// DeletionPolicy returns the AWS CloudFormation DeletionPolicy to this resource
+// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html
+func (r *CustomResource) DeletionPolicy() policies.DeletionPolicy {
+ return r._deletionPolicy
+}
+
+// SetDeletionPolicy applies an AWS CloudFormation DeletionPolicy to this resource
+// see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html
+func (r *CustomResource) SetDeletionPolicy(policy policies.DeletionPolicy) {
+ r._deletionPolicy = policy
+}
+
+// GetAllCustomResourceResources retrieves all CustomResource items from an AWS CloudFormation template
+func (t *Template) GetAllCustomResources() map[string]*CustomResource {
+ results := map[string]*CustomResource{}
+ for name, untyped := range t.Resources {
+ switch resource := untyped.(type) {
+ case *CustomResource:
+ results[name] = resource
+ }
+ }
+ return results
+}
+
+// GetCustomResourceWithName retrieves all CustomResource items from an AWS CloudFormation template
+// whose logical ID matches the provided name. Returns an error if not found.
+func (t *Template) GetCustomResourceWithName(name string) (*CustomResource, error) {
+ if untyped, ok := t.Resources[name]; ok {
+ switch resource := untyped.(type) {
+ case *CustomResource:
+ return resource, nil
+ }
+ }
+ return nil, fmt.Errorf("resource %q of type CustomResource not found", name)
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-domain.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-domain.go
new file mode 100644
index 0000000000..31a4b0fe86
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-domain.go
@@ -0,0 +1,129 @@
+package customerprofiles
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain AWS CloudFormation Resource (AWS::CustomerProfiles::Domain)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html
+type Domain struct {
+
+ // DeadLetterQueueUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html#cfn-customerprofiles-domain-deadletterqueueurl
+ DeadLetterQueueUrl *types.Value `json:"DeadLetterQueueUrl,omitempty"`
+
+ // DefaultEncryptionKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html#cfn-customerprofiles-domain-defaultencryptionkey
+ DefaultEncryptionKey *types.Value `json:"DefaultEncryptionKey,omitempty"`
+
+ // DefaultExpirationDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html#cfn-customerprofiles-domain-defaultexpirationdays
+ DefaultExpirationDays *types.Value `json:"DefaultExpirationDays,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html#cfn-customerprofiles-domain-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-domain.html#cfn-customerprofiles-domain-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Domain"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Domain) MarshalJSON() ([]byte, error) {
+ type Properties Domain
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Domain) UnmarshalJSON(b []byte) error {
+ type Properties Domain
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Domain(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration.go
new file mode 100644
index 0000000000..7b94f33a18
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration.go
@@ -0,0 +1,129 @@
+package customerprofiles
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration AWS CloudFormation Resource (AWS::CustomerProfiles::Integration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html
+type Integration struct {
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html#cfn-customerprofiles-integration-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // FlowDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html#cfn-customerprofiles-integration-flowdefinition
+ FlowDefinition *Integration_FlowDefinition `json:"FlowDefinition,omitempty"`
+
+ // ObjectTypeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html#cfn-customerprofiles-integration-objecttypename
+ ObjectTypeName *types.Value `json:"ObjectTypeName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html#cfn-customerprofiles-integration-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Uri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-integration.html#cfn-customerprofiles-integration-uri
+ Uri *types.Value `json:"Uri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Integration) MarshalJSON() ([]byte, error) {
+ type Properties Integration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Integration) UnmarshalJSON(b []byte) error {
+ type Properties Integration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Integration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_connectoroperator.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_connectoroperator.go
new file mode 100644
index 0000000000..0e426af002
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_connectoroperator.go
@@ -0,0 +1,57 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_ConnectorOperator AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.ConnectorOperator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html
+type Integration_ConnectorOperator struct {
+
+ // Marketo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html#cfn-customerprofiles-integration-connectoroperator-marketo
+ Marketo *types.Value `json:"Marketo,omitempty"`
+
+ // S3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html#cfn-customerprofiles-integration-connectoroperator-s3
+ S3 *types.Value `json:"S3,omitempty"`
+
+ // Salesforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html#cfn-customerprofiles-integration-connectoroperator-salesforce
+ Salesforce *types.Value `json:"Salesforce,omitempty"`
+
+ // ServiceNow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html#cfn-customerprofiles-integration-connectoroperator-servicenow
+ ServiceNow *types.Value `json:"ServiceNow,omitempty"`
+
+ // Zendesk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-connectoroperator.html#cfn-customerprofiles-integration-connectoroperator-zendesk
+ Zendesk *types.Value `json:"Zendesk,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_ConnectorOperator) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.ConnectorOperator"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_flowdefinition.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_flowdefinition.go
new file mode 100644
index 0000000000..3ad7637940
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_flowdefinition.go
@@ -0,0 +1,62 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_FlowDefinition AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.FlowDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html
+type Integration_FlowDefinition struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FlowName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-flowname
+ FlowName *types.Value `json:"FlowName,omitempty"`
+
+ // KmsArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-kmsarn
+ KmsArn *types.Value `json:"KmsArn,omitempty"`
+
+ // SourceFlowConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-sourceflowconfig
+ SourceFlowConfig *Integration_SourceFlowConfig `json:"SourceFlowConfig,omitempty"`
+
+ // Tasks AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-tasks
+ Tasks []Integration_Task `json:"Tasks,omitempty"`
+
+ // TriggerConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-triggerconfig
+ TriggerConfig *Integration_TriggerConfig `json:"TriggerConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_FlowDefinition) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.FlowDefinition"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_incrementalpullconfig.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_incrementalpullconfig.go
new file mode 100644
index 0000000000..8f40b59faa
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_incrementalpullconfig.go
@@ -0,0 +1,37 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_IncrementalPullConfig AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.IncrementalPullConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-incrementalpullconfig.html
+type Integration_IncrementalPullConfig struct {
+
+ // DatetimeTypeFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-incrementalpullconfig.html#cfn-customerprofiles-integration-incrementalpullconfig-datetimetypefieldname
+ DatetimeTypeFieldName *types.Value `json:"DatetimeTypeFieldName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_IncrementalPullConfig) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.IncrementalPullConfig"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_marketosourceproperties.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_marketosourceproperties.go
new file mode 100644
index 0000000000..84355dd5b5
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_marketosourceproperties.go
@@ -0,0 +1,37 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_MarketoSourceProperties AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.MarketoSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-marketosourceproperties.html
+type Integration_MarketoSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-marketosourceproperties.html#cfn-customerprofiles-integration-marketosourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_MarketoSourceProperties) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.MarketoSourceProperties"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_s3sourceproperties.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_s3sourceproperties.go
new file mode 100644
index 0000000000..ada956beb6
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_s3sourceproperties.go
@@ -0,0 +1,42 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_S3SourceProperties AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.S3SourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-s3sourceproperties.html
+type Integration_S3SourceProperties struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-s3sourceproperties.html#cfn-customerprofiles-integration-s3sourceproperties-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-s3sourceproperties.html#cfn-customerprofiles-integration-s3sourceproperties-bucketprefix
+ BucketPrefix *types.Value `json:"BucketPrefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_S3SourceProperties) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.S3SourceProperties"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_salesforcesourceproperties.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_salesforcesourceproperties.go
new file mode 100644
index 0000000000..b29cc71e15
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_salesforcesourceproperties.go
@@ -0,0 +1,47 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_SalesforceSourceProperties AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.SalesforceSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html
+type Integration_SalesforceSourceProperties struct {
+
+ // EnableDynamicFieldUpdate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html#cfn-customerprofiles-integration-salesforcesourceproperties-enabledynamicfieldupdate
+ EnableDynamicFieldUpdate *types.Value `json:"EnableDynamicFieldUpdate,omitempty"`
+
+ // IncludeDeletedRecords AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html#cfn-customerprofiles-integration-salesforcesourceproperties-includedeletedrecords
+ IncludeDeletedRecords *types.Value `json:"IncludeDeletedRecords,omitempty"`
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-salesforcesourceproperties.html#cfn-customerprofiles-integration-salesforcesourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_SalesforceSourceProperties) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.SalesforceSourceProperties"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_scheduledtriggerproperties.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_scheduledtriggerproperties.go
new file mode 100644
index 0000000000..e0766bd607
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_scheduledtriggerproperties.go
@@ -0,0 +1,67 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_ScheduledTriggerProperties AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.ScheduledTriggerProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html
+type Integration_ScheduledTriggerProperties struct {
+
+ // DataPullMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html#cfn-customerprofiles-integration-scheduledtriggerproperties-datapullmode
+ DataPullMode *types.Value `json:"DataPullMode,omitempty"`
+
+ // FirstExecutionFrom AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html#cfn-customerprofiles-integration-scheduledtriggerproperties-firstexecutionfrom
+ FirstExecutionFrom *types.Value `json:"FirstExecutionFrom,omitempty"`
+
+ // ScheduleEndTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html#cfn-customerprofiles-integration-scheduledtriggerproperties-scheduleendtime
+ ScheduleEndTime *types.Value `json:"ScheduleEndTime,omitempty"`
+
+ // ScheduleExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html#cfn-customerprofiles-integration-scheduledtriggerproperties-scheduleexpression
+ ScheduleExpression *types.Value `json:"ScheduleExpression,omitempty"`
+
+ // ScheduleOffset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html#cfn-customerprofiles-integration-scheduledtriggerproperties-scheduleoffset
+ ScheduleOffset *types.Value `json:"ScheduleOffset,omitempty"`
+
+ // ScheduleStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html#cfn-customerprofiles-integration-scheduledtriggerproperties-schedulestarttime
+ ScheduleStartTime *types.Value `json:"ScheduleStartTime,omitempty"`
+
+ // Timezone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-scheduledtriggerproperties.html#cfn-customerprofiles-integration-scheduledtriggerproperties-timezone
+ Timezone *types.Value `json:"Timezone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_ScheduledTriggerProperties) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.ScheduledTriggerProperties"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_servicenowsourceproperties.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_servicenowsourceproperties.go
new file mode 100644
index 0000000000..cf7b0a22c1
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_servicenowsourceproperties.go
@@ -0,0 +1,37 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_ServiceNowSourceProperties AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.ServiceNowSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-servicenowsourceproperties.html
+type Integration_ServiceNowSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-servicenowsourceproperties.html#cfn-customerprofiles-integration-servicenowsourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_ServiceNowSourceProperties) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.ServiceNowSourceProperties"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_sourceconnectorproperties.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_sourceconnectorproperties.go
new file mode 100644
index 0000000000..8419724033
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_sourceconnectorproperties.go
@@ -0,0 +1,55 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_SourceConnectorProperties AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.SourceConnectorProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html
+type Integration_SourceConnectorProperties struct {
+
+ // Marketo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html#cfn-customerprofiles-integration-sourceconnectorproperties-marketo
+ Marketo *Integration_MarketoSourceProperties `json:"Marketo,omitempty"`
+
+ // S3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html#cfn-customerprofiles-integration-sourceconnectorproperties-s3
+ S3 *Integration_S3SourceProperties `json:"S3,omitempty"`
+
+ // Salesforce AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html#cfn-customerprofiles-integration-sourceconnectorproperties-salesforce
+ Salesforce *Integration_SalesforceSourceProperties `json:"Salesforce,omitempty"`
+
+ // ServiceNow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html#cfn-customerprofiles-integration-sourceconnectorproperties-servicenow
+ ServiceNow *Integration_ServiceNowSourceProperties `json:"ServiceNow,omitempty"`
+
+ // Zendesk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceconnectorproperties.html#cfn-customerprofiles-integration-sourceconnectorproperties-zendesk
+ Zendesk *Integration_ZendeskSourceProperties `json:"Zendesk,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_SourceConnectorProperties) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.SourceConnectorProperties"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_sourceflowconfig.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_sourceflowconfig.go
new file mode 100644
index 0000000000..d173cd3bf5
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_sourceflowconfig.go
@@ -0,0 +1,52 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_SourceFlowConfig AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.SourceFlowConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html
+type Integration_SourceFlowConfig struct {
+
+ // ConnectorProfileName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html#cfn-customerprofiles-integration-sourceflowconfig-connectorprofilename
+ ConnectorProfileName *types.Value `json:"ConnectorProfileName,omitempty"`
+
+ // ConnectorType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html#cfn-customerprofiles-integration-sourceflowconfig-connectortype
+ ConnectorType *types.Value `json:"ConnectorType,omitempty"`
+
+ // IncrementalPullConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html#cfn-customerprofiles-integration-sourceflowconfig-incrementalpullconfig
+ IncrementalPullConfig *Integration_IncrementalPullConfig `json:"IncrementalPullConfig,omitempty"`
+
+ // SourceConnectorProperties AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-sourceflowconfig.html#cfn-customerprofiles-integration-sourceflowconfig-sourceconnectorproperties
+ SourceConnectorProperties *Integration_SourceConnectorProperties `json:"SourceConnectorProperties,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_SourceFlowConfig) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.SourceFlowConfig"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_task.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_task.go
new file mode 100644
index 0000000000..20f3282b39
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_task.go
@@ -0,0 +1,57 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_Task AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.Task)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html
+type Integration_Task struct {
+
+ // ConnectorOperator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html#cfn-customerprofiles-integration-task-connectoroperator
+ ConnectorOperator *Integration_ConnectorOperator `json:"ConnectorOperator,omitempty"`
+
+ // DestinationField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html#cfn-customerprofiles-integration-task-destinationfield
+ DestinationField *types.Value `json:"DestinationField,omitempty"`
+
+ // SourceFields AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html#cfn-customerprofiles-integration-task-sourcefields
+ SourceFields *types.Value `json:"SourceFields,omitempty"`
+
+ // TaskProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html#cfn-customerprofiles-integration-task-taskproperties
+ TaskProperties []Integration_TaskPropertiesMap `json:"TaskProperties,omitempty"`
+
+ // TaskType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-task.html#cfn-customerprofiles-integration-task-tasktype
+ TaskType *types.Value `json:"TaskType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_Task) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.Task"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_taskpropertiesmap.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_taskpropertiesmap.go
new file mode 100644
index 0000000000..2254f769ca
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_taskpropertiesmap.go
@@ -0,0 +1,42 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_TaskPropertiesMap AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.TaskPropertiesMap)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-taskpropertiesmap.html
+type Integration_TaskPropertiesMap struct {
+
+ // OperatorPropertyKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-taskpropertiesmap.html#cfn-customerprofiles-integration-taskpropertiesmap-operatorpropertykey
+ OperatorPropertyKey *types.Value `json:"OperatorPropertyKey,omitempty"`
+
+ // Property AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-taskpropertiesmap.html#cfn-customerprofiles-integration-taskpropertiesmap-property
+ Property *types.Value `json:"Property,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_TaskPropertiesMap) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.TaskPropertiesMap"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_triggerconfig.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_triggerconfig.go
new file mode 100644
index 0000000000..d3b3a464ec
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_triggerconfig.go
@@ -0,0 +1,42 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_TriggerConfig AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.TriggerConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerconfig.html
+type Integration_TriggerConfig struct {
+
+ // TriggerProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerconfig.html#cfn-customerprofiles-integration-triggerconfig-triggerproperties
+ TriggerProperties *Integration_TriggerProperties `json:"TriggerProperties,omitempty"`
+
+ // TriggerType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerconfig.html#cfn-customerprofiles-integration-triggerconfig-triggertype
+ TriggerType *types.Value `json:"TriggerType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_TriggerConfig) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.TriggerConfig"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_triggerproperties.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_triggerproperties.go
new file mode 100644
index 0000000000..ce7f8e3cd9
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_triggerproperties.go
@@ -0,0 +1,35 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_TriggerProperties AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.TriggerProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerproperties.html
+type Integration_TriggerProperties struct {
+
+ // Scheduled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-triggerproperties.html#cfn-customerprofiles-integration-triggerproperties-scheduled
+ Scheduled *Integration_ScheduledTriggerProperties `json:"Scheduled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_TriggerProperties) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.TriggerProperties"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_zendesksourceproperties.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_zendesksourceproperties.go
new file mode 100644
index 0000000000..c92f5e37a3
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-integration_zendesksourceproperties.go
@@ -0,0 +1,37 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Integration_ZendeskSourceProperties AWS CloudFormation Resource (AWS::CustomerProfiles::Integration.ZendeskSourceProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-zendesksourceproperties.html
+type Integration_ZendeskSourceProperties struct {
+
+ // Object AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-zendesksourceproperties.html#cfn-customerprofiles-integration-zendesksourceproperties-object
+ Object *types.Value `json:"Object,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Integration_ZendeskSourceProperties) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::Integration.ZendeskSourceProperties"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype.go
new file mode 100644
index 0000000000..8ec328fda6
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype.go
@@ -0,0 +1,154 @@
+package customerprofiles
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ObjectType AWS CloudFormation Resource (AWS::CustomerProfiles::ObjectType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html
+type ObjectType struct {
+
+ // AllowProfileCreation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-allowprofilecreation
+ AllowProfileCreation *types.Value `json:"AllowProfileCreation,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // EncryptionKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-encryptionkey
+ EncryptionKey *types.Value `json:"EncryptionKey,omitempty"`
+
+ // ExpirationDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-expirationdays
+ ExpirationDays *types.Value `json:"ExpirationDays,omitempty"`
+
+ // Fields AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-fields
+ Fields []ObjectType_FieldMap `json:"Fields,omitempty"`
+
+ // Keys AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-keys
+ Keys []ObjectType_KeyMap `json:"Keys,omitempty"`
+
+ // ObjectTypeName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-objecttypename
+ ObjectTypeName *types.Value `json:"ObjectTypeName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TemplateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-customerprofiles-objecttype.html#cfn-customerprofiles-objecttype-templateid
+ TemplateId *types.Value `json:"TemplateId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ObjectType) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::ObjectType"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ObjectType) MarshalJSON() ([]byte, error) {
+ type Properties ObjectType
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ObjectType) UnmarshalJSON(b []byte) error {
+ type Properties ObjectType
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ObjectType(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_fieldmap.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_fieldmap.go
new file mode 100644
index 0000000000..c76ac2ffa5
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_fieldmap.go
@@ -0,0 +1,42 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ObjectType_FieldMap AWS CloudFormation Resource (AWS::CustomerProfiles::ObjectType.FieldMap)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-fieldmap.html
+type ObjectType_FieldMap struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-fieldmap.html#cfn-customerprofiles-objecttype-fieldmap-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ObjectTypeField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-fieldmap.html#cfn-customerprofiles-objecttype-fieldmap-objecttypefield
+ ObjectTypeField *ObjectType_ObjectTypeField `json:"ObjectTypeField,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ObjectType_FieldMap) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::ObjectType.FieldMap"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_keymap.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_keymap.go
new file mode 100644
index 0000000000..755ff569c8
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_keymap.go
@@ -0,0 +1,42 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ObjectType_KeyMap AWS CloudFormation Resource (AWS::CustomerProfiles::ObjectType.KeyMap)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-keymap.html
+type ObjectType_KeyMap struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-keymap.html#cfn-customerprofiles-objecttype-keymap-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ObjectTypeKeyList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-keymap.html#cfn-customerprofiles-objecttype-keymap-objecttypekeylist
+ ObjectTypeKeyList []ObjectType_ObjectTypeKey `json:"ObjectTypeKeyList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ObjectType_KeyMap) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::ObjectType.KeyMap"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_objecttypefield.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_objecttypefield.go
new file mode 100644
index 0000000000..320a881869
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_objecttypefield.go
@@ -0,0 +1,47 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ObjectType_ObjectTypeField AWS CloudFormation Resource (AWS::CustomerProfiles::ObjectType.ObjectTypeField)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html
+type ObjectType_ObjectTypeField struct {
+
+ // ContentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html#cfn-customerprofiles-objecttype-objecttypefield-contenttype
+ ContentType *types.Value `json:"ContentType,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html#cfn-customerprofiles-objecttype-objecttypefield-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypefield.html#cfn-customerprofiles-objecttype-objecttypefield-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ObjectType_ObjectTypeField) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::ObjectType.ObjectTypeField"
+}
diff --git a/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_objecttypekey.go b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_objecttypekey.go
new file mode 100644
index 0000000000..7cff8b6dc8
--- /dev/null
+++ b/goformation/cloudformation/customerprofiles/aws-customerprofiles-objecttype_objecttypekey.go
@@ -0,0 +1,42 @@
+package customerprofiles
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ObjectType_ObjectTypeKey AWS CloudFormation Resource (AWS::CustomerProfiles::ObjectType.ObjectTypeKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypekey.html
+type ObjectType_ObjectTypeKey struct {
+
+ // FieldNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypekey.html#cfn-customerprofiles-objecttype-objecttypekey-fieldnames
+ FieldNames *types.Value `json:"FieldNames,omitempty"`
+
+ // StandardIdentifiers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-objecttype-objecttypekey.html#cfn-customerprofiles-objecttype-objecttypekey-standardidentifiers
+ StandardIdentifiers *types.Value `json:"StandardIdentifiers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ObjectType_ObjectTypeKey) AWSCloudFormationType() string {
+ return "AWS::CustomerProfiles::ObjectType.ObjectTypeKey"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset.go b/goformation/cloudformation/databrew/aws-databrew-dataset.go
new file mode 100644
index 0000000000..e795474093
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset.go
@@ -0,0 +1,134 @@
+package databrew
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset AWS CloudFormation Resource (AWS::DataBrew::Dataset)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html
+type Dataset struct {
+
+ // Format AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // FormatOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-formatoptions
+ FormatOptions *Dataset_FormatOptions `json:"FormatOptions,omitempty"`
+
+ // Input AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-input
+ Input *Dataset_Input `json:"Input,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // PathOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-pathoptions
+ PathOptions *Dataset_PathOptions `json:"PathOptions,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-dataset.html#cfn-databrew-dataset-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Dataset) MarshalJSON() ([]byte, error) {
+ type Properties Dataset
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Dataset) UnmarshalJSON(b []byte) error {
+ type Properties Dataset
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Dataset(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_csvoptions.go b/goformation/cloudformation/databrew/aws-databrew-dataset_csvoptions.go
new file mode 100644
index 0000000000..df123c5f48
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_csvoptions.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_CsvOptions AWS CloudFormation Resource (AWS::DataBrew::Dataset.CsvOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html
+type Dataset_CsvOptions struct {
+
+ // Delimiter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html#cfn-databrew-dataset-csvoptions-delimiter
+ Delimiter *types.Value `json:"Delimiter,omitempty"`
+
+ // HeaderRow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-csvoptions.html#cfn-databrew-dataset-csvoptions-headerrow
+ HeaderRow *types.Value `json:"HeaderRow,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_CsvOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.CsvOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_databaseinputdefinition.go b/goformation/cloudformation/databrew/aws-databrew-dataset_databaseinputdefinition.go
new file mode 100644
index 0000000000..17e8588e9e
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_databaseinputdefinition.go
@@ -0,0 +1,52 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DatabaseInputDefinition AWS CloudFormation Resource (AWS::DataBrew::Dataset.DatabaseInputDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html
+type Dataset_DatabaseInputDefinition struct {
+
+ // DatabaseTableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html#cfn-databrew-dataset-databaseinputdefinition-databasetablename
+ DatabaseTableName *types.Value `json:"DatabaseTableName,omitempty"`
+
+ // GlueConnectionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html#cfn-databrew-dataset-databaseinputdefinition-glueconnectionname
+ GlueConnectionName *types.Value `json:"GlueConnectionName,omitempty"`
+
+ // QueryString AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html#cfn-databrew-dataset-databaseinputdefinition-querystring
+ QueryString *types.Value `json:"QueryString,omitempty"`
+
+ // TempDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-databaseinputdefinition.html#cfn-databrew-dataset-databaseinputdefinition-tempdirectory
+ TempDirectory *Dataset_S3Location `json:"TempDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DatabaseInputDefinition) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.DatabaseInputDefinition"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_datacataloginputdefinition.go b/goformation/cloudformation/databrew/aws-databrew-dataset_datacataloginputdefinition.go
new file mode 100644
index 0000000000..63b31b5aa9
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_datacataloginputdefinition.go
@@ -0,0 +1,52 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DataCatalogInputDefinition AWS CloudFormation Resource (AWS::DataBrew::Dataset.DataCatalogInputDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html
+type Dataset_DataCatalogInputDefinition struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html#cfn-databrew-dataset-datacataloginputdefinition-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html#cfn-databrew-dataset-datacataloginputdefinition-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html#cfn-databrew-dataset-datacataloginputdefinition-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // TempDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datacataloginputdefinition.html#cfn-databrew-dataset-datacataloginputdefinition-tempdirectory
+ TempDirectory *Dataset_S3Location `json:"TempDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DataCatalogInputDefinition) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.DataCatalogInputDefinition"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_datasetparameter.go b/goformation/cloudformation/databrew/aws-databrew-dataset_datasetparameter.go
new file mode 100644
index 0000000000..d417d083ef
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_datasetparameter.go
@@ -0,0 +1,57 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DatasetParameter AWS CloudFormation Resource (AWS::DataBrew::Dataset.DatasetParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html
+type Dataset_DatasetParameter struct {
+
+ // CreateColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-createcolumn
+ CreateColumn *types.Value `json:"CreateColumn,omitempty"`
+
+ // DatetimeOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-datetimeoptions
+ DatetimeOptions *Dataset_DatetimeOptions `json:"DatetimeOptions,omitempty"`
+
+ // Filter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-filter
+ Filter *Dataset_FilterExpression `json:"Filter,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datasetparameter.html#cfn-databrew-dataset-datasetparameter-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DatasetParameter) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.DatasetParameter"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_datetimeoptions.go b/goformation/cloudformation/databrew/aws-databrew-dataset_datetimeoptions.go
new file mode 100644
index 0000000000..ac7b2535d2
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_datetimeoptions.go
@@ -0,0 +1,47 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DatetimeOptions AWS CloudFormation Resource (AWS::DataBrew::Dataset.DatetimeOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html
+type Dataset_DatetimeOptions struct {
+
+ // Format AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html#cfn-databrew-dataset-datetimeoptions-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // LocaleCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html#cfn-databrew-dataset-datetimeoptions-localecode
+ LocaleCode *types.Value `json:"LocaleCode,omitempty"`
+
+ // TimezoneOffset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-datetimeoptions.html#cfn-databrew-dataset-datetimeoptions-timezoneoffset
+ TimezoneOffset *types.Value `json:"TimezoneOffset,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DatetimeOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.DatetimeOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_exceloptions.go b/goformation/cloudformation/databrew/aws-databrew-dataset_exceloptions.go
new file mode 100644
index 0000000000..c1e44974cf
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_exceloptions.go
@@ -0,0 +1,47 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_ExcelOptions AWS CloudFormation Resource (AWS::DataBrew::Dataset.ExcelOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html
+type Dataset_ExcelOptions struct {
+
+ // HeaderRow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html#cfn-databrew-dataset-exceloptions-headerrow
+ HeaderRow *types.Value `json:"HeaderRow,omitempty"`
+
+ // SheetIndexes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html#cfn-databrew-dataset-exceloptions-sheetindexes
+ SheetIndexes *types.Value `json:"SheetIndexes,omitempty"`
+
+ // SheetNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-exceloptions.html#cfn-databrew-dataset-exceloptions-sheetnames
+ SheetNames *types.Value `json:"SheetNames,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_ExcelOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.ExcelOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_fileslimit.go b/goformation/cloudformation/databrew/aws-databrew-dataset_fileslimit.go
new file mode 100644
index 0000000000..f352d145ac
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_fileslimit.go
@@ -0,0 +1,47 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_FilesLimit AWS CloudFormation Resource (AWS::DataBrew::Dataset.FilesLimit)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html
+type Dataset_FilesLimit struct {
+
+ // MaxFiles AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html#cfn-databrew-dataset-fileslimit-maxfiles
+ MaxFiles *types.Value `json:"MaxFiles"`
+
+ // Order AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html#cfn-databrew-dataset-fileslimit-order
+ Order *types.Value `json:"Order,omitempty"`
+
+ // OrderedBy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-fileslimit.html#cfn-databrew-dataset-fileslimit-orderedby
+ OrderedBy *types.Value `json:"OrderedBy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_FilesLimit) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.FilesLimit"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_filterexpression.go b/goformation/cloudformation/databrew/aws-databrew-dataset_filterexpression.go
new file mode 100644
index 0000000000..bb54cafa81
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_filterexpression.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_FilterExpression AWS CloudFormation Resource (AWS::DataBrew::Dataset.FilterExpression)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html
+type Dataset_FilterExpression struct {
+
+ // Expression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html#cfn-databrew-dataset-filterexpression-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // ValuesMap AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filterexpression.html#cfn-databrew-dataset-filterexpression-valuesmap
+ ValuesMap []Dataset_FilterValue `json:"ValuesMap,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_FilterExpression) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.FilterExpression"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_filtervalue.go b/goformation/cloudformation/databrew/aws-databrew-dataset_filtervalue.go
new file mode 100644
index 0000000000..ac98941a4f
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_filtervalue.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_FilterValue AWS CloudFormation Resource (AWS::DataBrew::Dataset.FilterValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html
+type Dataset_FilterValue struct {
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html#cfn-databrew-dataset-filtervalue-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // ValueReference AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-filtervalue.html#cfn-databrew-dataset-filtervalue-valuereference
+ ValueReference *types.Value `json:"ValueReference,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_FilterValue) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.FilterValue"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_formatoptions.go b/goformation/cloudformation/databrew/aws-databrew-dataset_formatoptions.go
new file mode 100644
index 0000000000..16e8738b58
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_formatoptions.go
@@ -0,0 +1,45 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_FormatOptions AWS CloudFormation Resource (AWS::DataBrew::Dataset.FormatOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html
+type Dataset_FormatOptions struct {
+
+ // Csv AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html#cfn-databrew-dataset-formatoptions-csv
+ Csv *Dataset_CsvOptions `json:"Csv,omitempty"`
+
+ // Excel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html#cfn-databrew-dataset-formatoptions-excel
+ Excel *Dataset_ExcelOptions `json:"Excel,omitempty"`
+
+ // Json AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-formatoptions.html#cfn-databrew-dataset-formatoptions-json
+ Json *Dataset_JsonOptions `json:"Json,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_FormatOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.FormatOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_input.go b/goformation/cloudformation/databrew/aws-databrew-dataset_input.go
new file mode 100644
index 0000000000..7500c2cdd9
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_input.go
@@ -0,0 +1,50 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_Input AWS CloudFormation Resource (AWS::DataBrew::Dataset.Input)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html
+type Dataset_Input struct {
+
+ // DataCatalogInputDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html#cfn-databrew-dataset-input-datacataloginputdefinition
+ DataCatalogInputDefinition *Dataset_DataCatalogInputDefinition `json:"DataCatalogInputDefinition,omitempty"`
+
+ // DatabaseInputDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html#cfn-databrew-dataset-input-databaseinputdefinition
+ DatabaseInputDefinition *Dataset_DatabaseInputDefinition `json:"DatabaseInputDefinition,omitempty"`
+
+ // Metadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html#cfn-databrew-dataset-input-metadata
+ Metadata *Dataset_Metadata `json:"Metadata,omitempty"`
+
+ // S3InputDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-input.html#cfn-databrew-dataset-input-s3inputdefinition
+ S3InputDefinition *Dataset_S3Location `json:"S3InputDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_Input) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.Input"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_jsonoptions.go b/goformation/cloudformation/databrew/aws-databrew-dataset_jsonoptions.go
new file mode 100644
index 0000000000..d224e805c0
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_jsonoptions.go
@@ -0,0 +1,37 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_JsonOptions AWS CloudFormation Resource (AWS::DataBrew::Dataset.JsonOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-jsonoptions.html
+type Dataset_JsonOptions struct {
+
+ // MultiLine AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-jsonoptions.html#cfn-databrew-dataset-jsonoptions-multiline
+ MultiLine *types.Value `json:"MultiLine,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_JsonOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.JsonOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_metadata.go b/goformation/cloudformation/databrew/aws-databrew-dataset_metadata.go
new file mode 100644
index 0000000000..f5b4590d02
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_metadata.go
@@ -0,0 +1,37 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_Metadata AWS CloudFormation Resource (AWS::DataBrew::Dataset.Metadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-metadata.html
+type Dataset_Metadata struct {
+
+ // SourceArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-metadata.html#cfn-databrew-dataset-metadata-sourcearn
+ SourceArn *types.Value `json:"SourceArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_Metadata) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.Metadata"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_pathoptions.go b/goformation/cloudformation/databrew/aws-databrew-dataset_pathoptions.go
new file mode 100644
index 0000000000..d0038d32ae
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_pathoptions.go
@@ -0,0 +1,45 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_PathOptions AWS CloudFormation Resource (AWS::DataBrew::Dataset.PathOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html
+type Dataset_PathOptions struct {
+
+ // FilesLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html#cfn-databrew-dataset-pathoptions-fileslimit
+ FilesLimit *Dataset_FilesLimit `json:"FilesLimit,omitempty"`
+
+ // LastModifiedDateCondition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html#cfn-databrew-dataset-pathoptions-lastmodifieddatecondition
+ LastModifiedDateCondition *Dataset_FilterExpression `json:"LastModifiedDateCondition,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathoptions.html#cfn-databrew-dataset-pathoptions-parameters
+ Parameters []Dataset_PathParameter `json:"Parameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_PathOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.PathOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_pathparameter.go b/goformation/cloudformation/databrew/aws-databrew-dataset_pathparameter.go
new file mode 100644
index 0000000000..160e59e1eb
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_pathparameter.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_PathParameter AWS CloudFormation Resource (AWS::DataBrew::Dataset.PathParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html
+type Dataset_PathParameter struct {
+
+ // DatasetParameter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html#cfn-databrew-dataset-pathparameter-datasetparameter
+ DatasetParameter *Dataset_DatasetParameter `json:"DatasetParameter,omitempty"`
+
+ // PathParameterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-pathparameter.html#cfn-databrew-dataset-pathparameter-pathparametername
+ PathParameterName *types.Value `json:"PathParameterName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_PathParameter) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.PathParameter"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-dataset_s3location.go b/goformation/cloudformation/databrew/aws-databrew-dataset_s3location.go
new file mode 100644
index 0000000000..5c48a92a00
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-dataset_s3location.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_S3Location AWS CloudFormation Resource (AWS::DataBrew::Dataset.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html
+type Dataset_S3Location struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html#cfn-databrew-dataset-s3location-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-dataset-s3location.html#cfn-databrew-dataset-s3location-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_S3Location) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Dataset.S3Location"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job.go b/goformation/cloudformation/databrew/aws-databrew-job.go
new file mode 100644
index 0000000000..7d1fb401d8
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job.go
@@ -0,0 +1,204 @@
+package databrew
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job AWS CloudFormation Resource (AWS::DataBrew::Job)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html
+type Job struct {
+
+ // DataCatalogOutputs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-datacatalogoutputs
+ DataCatalogOutputs []Job_DataCatalogOutput `json:"DataCatalogOutputs,omitempty"`
+
+ // DatabaseOutputs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-databaseoutputs
+ DatabaseOutputs []Job_DatabaseOutput `json:"DatabaseOutputs,omitempty"`
+
+ // DatasetName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-datasetname
+ DatasetName *types.Value `json:"DatasetName,omitempty"`
+
+ // EncryptionKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-encryptionkeyarn
+ EncryptionKeyArn *types.Value `json:"EncryptionKeyArn,omitempty"`
+
+ // EncryptionMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-encryptionmode
+ EncryptionMode *types.Value `json:"EncryptionMode,omitempty"`
+
+ // JobSample AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-jobsample
+ JobSample *Job_JobSample `json:"JobSample,omitempty"`
+
+ // LogSubscription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-logsubscription
+ LogSubscription *types.Value `json:"LogSubscription,omitempty"`
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity,omitempty"`
+
+ // MaxRetries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-maxretries
+ MaxRetries *types.Value `json:"MaxRetries,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OutputLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-outputlocation
+ OutputLocation *Job_OutputLocation `json:"OutputLocation,omitempty"`
+
+ // Outputs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-outputs
+ Outputs []Job_Output `json:"Outputs,omitempty"`
+
+ // ProfileConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-profileconfiguration
+ ProfileConfiguration *Job_ProfileConfiguration `json:"ProfileConfiguration,omitempty"`
+
+ // ProjectName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-projectname
+ ProjectName *types.Value `json:"ProjectName,omitempty"`
+
+ // Recipe AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-recipe
+ Recipe *Job_Recipe `json:"Recipe,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // ValidationConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-job.html#cfn-databrew-job-validationconfigurations
+ ValidationConfigurations []Job_ValidationConfiguration `json:"ValidationConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Job) MarshalJSON() ([]byte, error) {
+ type Properties Job
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Job) UnmarshalJSON(b []byte) error {
+ type Properties Job
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Job(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_allowedstatistics.go b/goformation/cloudformation/databrew/aws-databrew-job_allowedstatistics.go
new file mode 100644
index 0000000000..dfd1bc7c84
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_allowedstatistics.go
@@ -0,0 +1,37 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_AllowedStatistics AWS CloudFormation Resource (AWS::DataBrew::Job.AllowedStatistics)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-allowedstatistics.html
+type Job_AllowedStatistics struct {
+
+ // Statistics AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-allowedstatistics.html#cfn-databrew-job-allowedstatistics-statistics
+ Statistics *types.Value `json:"Statistics,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_AllowedStatistics) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.AllowedStatistics"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_columnselector.go b/goformation/cloudformation/databrew/aws-databrew-job_columnselector.go
new file mode 100644
index 0000000000..235c00fb46
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_columnselector.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_ColumnSelector AWS CloudFormation Resource (AWS::DataBrew::Job.ColumnSelector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html
+type Job_ColumnSelector struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html#cfn-databrew-job-columnselector-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnselector.html#cfn-databrew-job-columnselector-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_ColumnSelector) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.ColumnSelector"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_columnstatisticsconfiguration.go b/goformation/cloudformation/databrew/aws-databrew-job_columnstatisticsconfiguration.go
new file mode 100644
index 0000000000..0dd723de11
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_columnstatisticsconfiguration.go
@@ -0,0 +1,40 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_ColumnStatisticsConfiguration AWS CloudFormation Resource (AWS::DataBrew::Job.ColumnStatisticsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html
+type Job_ColumnStatisticsConfiguration struct {
+
+ // Selectors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html#cfn-databrew-job-columnstatisticsconfiguration-selectors
+ Selectors []Job_ColumnSelector `json:"Selectors,omitempty"`
+
+ // Statistics AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-columnstatisticsconfiguration.html#cfn-databrew-job-columnstatisticsconfiguration-statistics
+ Statistics *Job_StatisticsConfiguration `json:"Statistics,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_ColumnStatisticsConfiguration) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.ColumnStatisticsConfiguration"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_csvoutputoptions.go b/goformation/cloudformation/databrew/aws-databrew-job_csvoutputoptions.go
new file mode 100644
index 0000000000..c60c592f6e
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_csvoutputoptions.go
@@ -0,0 +1,37 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_CsvOutputOptions AWS CloudFormation Resource (AWS::DataBrew::Job.CsvOutputOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-csvoutputoptions.html
+type Job_CsvOutputOptions struct {
+
+ // Delimiter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-csvoutputoptions.html#cfn-databrew-job-csvoutputoptions-delimiter
+ Delimiter *types.Value `json:"Delimiter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_CsvOutputOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.CsvOutputOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_databaseoutput.go b/goformation/cloudformation/databrew/aws-databrew-job_databaseoutput.go
new file mode 100644
index 0000000000..9ec6b4c7d0
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_databaseoutput.go
@@ -0,0 +1,47 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_DatabaseOutput AWS CloudFormation Resource (AWS::DataBrew::Job.DatabaseOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html
+type Job_DatabaseOutput struct {
+
+ // DatabaseOptions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html#cfn-databrew-job-databaseoutput-databaseoptions
+ DatabaseOptions *Job_DatabaseTableOutputOptions `json:"DatabaseOptions,omitempty"`
+
+ // DatabaseOutputMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html#cfn-databrew-job-databaseoutput-databaseoutputmode
+ DatabaseOutputMode *types.Value `json:"DatabaseOutputMode,omitempty"`
+
+ // GlueConnectionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databaseoutput.html#cfn-databrew-job-databaseoutput-glueconnectionname
+ GlueConnectionName *types.Value `json:"GlueConnectionName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_DatabaseOutput) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.DatabaseOutput"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_databasetableoutputoptions.go b/goformation/cloudformation/databrew/aws-databrew-job_databasetableoutputoptions.go
new file mode 100644
index 0000000000..5964c18083
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_databasetableoutputoptions.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_DatabaseTableOutputOptions AWS CloudFormation Resource (AWS::DataBrew::Job.DatabaseTableOutputOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html
+type Job_DatabaseTableOutputOptions struct {
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html#cfn-databrew-job-databasetableoutputoptions-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // TempDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-databasetableoutputoptions.html#cfn-databrew-job-databasetableoutputoptions-tempdirectory
+ TempDirectory *Job_S3Location `json:"TempDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_DatabaseTableOutputOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.DatabaseTableOutputOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_datacatalogoutput.go b/goformation/cloudformation/databrew/aws-databrew-job_datacatalogoutput.go
new file mode 100644
index 0000000000..2a6bfca713
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_datacatalogoutput.go
@@ -0,0 +1,62 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_DataCatalogOutput AWS CloudFormation Resource (AWS::DataBrew::Job.DataCatalogOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html
+type Job_DataCatalogOutput struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // DatabaseOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-databaseoptions
+ DatabaseOptions *Job_DatabaseTableOutputOptions `json:"DatabaseOptions,omitempty"`
+
+ // Overwrite AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-overwrite
+ Overwrite *types.Value `json:"Overwrite,omitempty"`
+
+ // S3Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-s3options
+ S3Options *Job_S3TableOutputOptions `json:"S3Options,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-datacatalogoutput.html#cfn-databrew-job-datacatalogoutput-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_DataCatalogOutput) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.DataCatalogOutput"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_entitydetectorconfiguration.go b/goformation/cloudformation/databrew/aws-databrew-job_entitydetectorconfiguration.go
new file mode 100644
index 0000000000..017563f228
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_entitydetectorconfiguration.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_EntityDetectorConfiguration AWS CloudFormation Resource (AWS::DataBrew::Job.EntityDetectorConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html
+type Job_EntityDetectorConfiguration struct {
+
+ // AllowedStatistics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html#cfn-databrew-job-entitydetectorconfiguration-allowedstatistics
+ AllowedStatistics *Job_AllowedStatistics `json:"AllowedStatistics,omitempty"`
+
+ // EntityTypes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-entitydetectorconfiguration.html#cfn-databrew-job-entitydetectorconfiguration-entitytypes
+ EntityTypes *types.Value `json:"EntityTypes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_EntityDetectorConfiguration) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.EntityDetectorConfiguration"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_jobsample.go b/goformation/cloudformation/databrew/aws-databrew-job_jobsample.go
new file mode 100644
index 0000000000..ab60c9cb80
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_jobsample.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_JobSample AWS CloudFormation Resource (AWS::DataBrew::Job.JobSample)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html
+type Job_JobSample struct {
+
+ // Mode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html#cfn-databrew-job-jobsample-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // Size AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-jobsample.html#cfn-databrew-job-jobsample-size
+ Size *types.Value `json:"Size,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_JobSample) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.JobSample"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_output.go b/goformation/cloudformation/databrew/aws-databrew-job_output.go
new file mode 100644
index 0000000000..95f49b9bb0
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_output.go
@@ -0,0 +1,62 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_Output AWS CloudFormation Resource (AWS::DataBrew::Job.Output)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html
+type Job_Output struct {
+
+ // CompressionFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-compressionformat
+ CompressionFormat *types.Value `json:"CompressionFormat,omitempty"`
+
+ // Format AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // FormatOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-formatoptions
+ FormatOptions *Job_OutputFormatOptions `json:"FormatOptions,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-location
+ Location *Job_S3Location `json:"Location,omitempty"`
+
+ // Overwrite AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-overwrite
+ Overwrite *types.Value `json:"Overwrite,omitempty"`
+
+ // PartitionColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-output.html#cfn-databrew-job-output-partitioncolumns
+ PartitionColumns *types.Value `json:"PartitionColumns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_Output) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.Output"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_outputformatoptions.go b/goformation/cloudformation/databrew/aws-databrew-job_outputformatoptions.go
new file mode 100644
index 0000000000..71b74780cd
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_outputformatoptions.go
@@ -0,0 +1,35 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_OutputFormatOptions AWS CloudFormation Resource (AWS::DataBrew::Job.OutputFormatOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputformatoptions.html
+type Job_OutputFormatOptions struct {
+
+ // Csv AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputformatoptions.html#cfn-databrew-job-outputformatoptions-csv
+ Csv *Job_CsvOutputOptions `json:"Csv,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_OutputFormatOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.OutputFormatOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_outputlocation.go b/goformation/cloudformation/databrew/aws-databrew-job_outputlocation.go
new file mode 100644
index 0000000000..619c5a39b1
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_outputlocation.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_OutputLocation AWS CloudFormation Resource (AWS::DataBrew::Job.OutputLocation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html
+type Job_OutputLocation struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html#cfn-databrew-job-outputlocation-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-outputlocation.html#cfn-databrew-job-outputlocation-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_OutputLocation) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.OutputLocation"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_parametermap.go b/goformation/cloudformation/databrew/aws-databrew-job_parametermap.go
new file mode 100644
index 0000000000..521d8b7ec9
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_parametermap.go
@@ -0,0 +1,30 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_ParameterMap AWS CloudFormation Resource (AWS::DataBrew::Job.ParameterMap)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-parametermap.html
+type Job_ParameterMap struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_ParameterMap) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.ParameterMap"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_profileconfiguration.go b/goformation/cloudformation/databrew/aws-databrew-job_profileconfiguration.go
new file mode 100644
index 0000000000..2458a1df5f
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_profileconfiguration.go
@@ -0,0 +1,50 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_ProfileConfiguration AWS CloudFormation Resource (AWS::DataBrew::Job.ProfileConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html
+type Job_ProfileConfiguration struct {
+
+ // ColumnStatisticsConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html#cfn-databrew-job-profileconfiguration-columnstatisticsconfigurations
+ ColumnStatisticsConfigurations []Job_ColumnStatisticsConfiguration `json:"ColumnStatisticsConfigurations,omitempty"`
+
+ // DatasetStatisticsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html#cfn-databrew-job-profileconfiguration-datasetstatisticsconfiguration
+ DatasetStatisticsConfiguration *Job_StatisticsConfiguration `json:"DatasetStatisticsConfiguration,omitempty"`
+
+ // EntityDetectorConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html#cfn-databrew-job-profileconfiguration-entitydetectorconfiguration
+ EntityDetectorConfiguration *Job_EntityDetectorConfiguration `json:"EntityDetectorConfiguration,omitempty"`
+
+ // ProfileColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-profileconfiguration.html#cfn-databrew-job-profileconfiguration-profilecolumns
+ ProfileColumns []Job_ColumnSelector `json:"ProfileColumns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_ProfileConfiguration) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.ProfileConfiguration"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_recipe.go b/goformation/cloudformation/databrew/aws-databrew-job_recipe.go
new file mode 100644
index 0000000000..a46028e64b
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_recipe.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_Recipe AWS CloudFormation Resource (AWS::DataBrew::Job.Recipe)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html
+type Job_Recipe struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html#cfn-databrew-job-recipe-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-recipe.html#cfn-databrew-job-recipe-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_Recipe) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.Recipe"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_s3location.go b/goformation/cloudformation/databrew/aws-databrew-job_s3location.go
new file mode 100644
index 0000000000..c517b8c589
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_s3location.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_S3Location AWS CloudFormation Resource (AWS::DataBrew::Job.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html
+type Job_S3Location struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html#cfn-databrew-job-s3location-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3location.html#cfn-databrew-job-s3location-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_S3Location) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.S3Location"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_s3tableoutputoptions.go b/goformation/cloudformation/databrew/aws-databrew-job_s3tableoutputoptions.go
new file mode 100644
index 0000000000..ad166e29f6
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_s3tableoutputoptions.go
@@ -0,0 +1,35 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_S3TableOutputOptions AWS CloudFormation Resource (AWS::DataBrew::Job.S3TableOutputOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3tableoutputoptions.html
+type Job_S3TableOutputOptions struct {
+
+ // Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-s3tableoutputoptions.html#cfn-databrew-job-s3tableoutputoptions-location
+ Location *Job_S3Location `json:"Location,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_S3TableOutputOptions) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.S3TableOutputOptions"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_statisticoverride.go b/goformation/cloudformation/databrew/aws-databrew-job_statisticoverride.go
new file mode 100644
index 0000000000..49557579d0
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_statisticoverride.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_StatisticOverride AWS CloudFormation Resource (AWS::DataBrew::Job.StatisticOverride)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html
+type Job_StatisticOverride struct {
+
+ // Parameters AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html#cfn-databrew-job-statisticoverride-parameters
+ Parameters *Job_ParameterMap `json:"Parameters,omitempty"`
+
+ // Statistic AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticoverride.html#cfn-databrew-job-statisticoverride-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_StatisticOverride) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.StatisticOverride"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_statisticsconfiguration.go b/goformation/cloudformation/databrew/aws-databrew-job_statisticsconfiguration.go
new file mode 100644
index 0000000000..eba36cea53
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_statisticsconfiguration.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_StatisticsConfiguration AWS CloudFormation Resource (AWS::DataBrew::Job.StatisticsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html
+type Job_StatisticsConfiguration struct {
+
+ // IncludedStatistics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html#cfn-databrew-job-statisticsconfiguration-includedstatistics
+ IncludedStatistics *types.Value `json:"IncludedStatistics,omitempty"`
+
+ // Overrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-statisticsconfiguration.html#cfn-databrew-job-statisticsconfiguration-overrides
+ Overrides []Job_StatisticOverride `json:"Overrides,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_StatisticsConfiguration) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.StatisticsConfiguration"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-job_validationconfiguration.go b/goformation/cloudformation/databrew/aws-databrew-job_validationconfiguration.go
new file mode 100644
index 0000000000..d23f9255d3
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-job_validationconfiguration.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_ValidationConfiguration AWS CloudFormation Resource (AWS::DataBrew::Job.ValidationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html
+type Job_ValidationConfiguration struct {
+
+ // RulesetArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html#cfn-databrew-job-validationconfiguration-rulesetarn
+ RulesetArn *types.Value `json:"RulesetArn,omitempty"`
+
+ // ValidationMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-job-validationconfiguration.html#cfn-databrew-job-validationconfiguration-validationmode
+ ValidationMode *types.Value `json:"ValidationMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_ValidationConfiguration) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Job.ValidationConfiguration"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-project.go b/goformation/cloudformation/databrew/aws-databrew-project.go
new file mode 100644
index 0000000000..bd24322621
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-project.go
@@ -0,0 +1,134 @@
+package databrew
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project AWS CloudFormation Resource (AWS::DataBrew::Project)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html
+type Project struct {
+
+ // DatasetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-datasetname
+ DatasetName *types.Value `json:"DatasetName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RecipeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-recipename
+ RecipeName *types.Value `json:"RecipeName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Sample AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-sample
+ Sample *Project_Sample `json:"Sample,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-project.html#cfn-databrew-project-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Project"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Project) MarshalJSON() ([]byte, error) {
+ type Properties Project
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Project) UnmarshalJSON(b []byte) error {
+ type Properties Project
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Project(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-project_sample.go b/goformation/cloudformation/databrew/aws-databrew-project_sample.go
new file mode 100644
index 0000000000..26d9f2125e
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-project_sample.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_Sample AWS CloudFormation Resource (AWS::DataBrew::Project.Sample)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html
+type Project_Sample struct {
+
+ // Size AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html#cfn-databrew-project-sample-size
+ Size *types.Value `json:"Size,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-project-sample.html#cfn-databrew-project-sample-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_Sample) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Project.Sample"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe.go b/goformation/cloudformation/databrew/aws-databrew-recipe.go
new file mode 100644
index 0000000000..bb55c87b28
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe.go
@@ -0,0 +1,124 @@
+package databrew
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe AWS CloudFormation Resource (AWS::DataBrew::Recipe)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html
+type Recipe struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Steps AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-steps
+ Steps []Recipe_RecipeStep `json:"Steps,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-recipe.html#cfn-databrew-recipe-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Recipe) MarshalJSON() ([]byte, error) {
+ type Properties Recipe
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Recipe) UnmarshalJSON(b []byte) error {
+ type Properties Recipe
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Recipe(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe_action.go b/goformation/cloudformation/databrew/aws-databrew-recipe_action.go
new file mode 100644
index 0000000000..33c34cda3c
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe_action.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe_Action AWS CloudFormation Resource (AWS::DataBrew::Recipe.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html
+type Recipe_Action struct {
+
+ // Operation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html#cfn-databrew-recipe-action-operation
+ Operation *types.Value `json:"Operation,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-action.html#cfn-databrew-recipe-action-parameters
+ Parameters *Recipe_ParameterMap `json:"Parameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe_Action) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe.Action"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe_conditionexpression.go b/goformation/cloudformation/databrew/aws-databrew-recipe_conditionexpression.go
new file mode 100644
index 0000000000..2acb29410b
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe_conditionexpression.go
@@ -0,0 +1,47 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe_ConditionExpression AWS CloudFormation Resource (AWS::DataBrew::Recipe.ConditionExpression)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html
+type Recipe_ConditionExpression struct {
+
+ // Condition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-condition
+ Condition *types.Value `json:"Condition,omitempty"`
+
+ // TargetColumn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-targetcolumn
+ TargetColumn *types.Value `json:"TargetColumn,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-conditionexpression.html#cfn-databrew-recipe-conditionexpression-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe_ConditionExpression) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe.ConditionExpression"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe_datacataloginputdefinition.go b/goformation/cloudformation/databrew/aws-databrew-recipe_datacataloginputdefinition.go
new file mode 100644
index 0000000000..8105816485
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe_datacataloginputdefinition.go
@@ -0,0 +1,52 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe_DataCatalogInputDefinition AWS CloudFormation Resource (AWS::DataBrew::Recipe.DataCatalogInputDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html
+type Recipe_DataCatalogInputDefinition struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // TempDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-datacataloginputdefinition.html#cfn-databrew-recipe-datacataloginputdefinition-tempdirectory
+ TempDirectory *Recipe_S3Location `json:"TempDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe_DataCatalogInputDefinition) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe.DataCatalogInputDefinition"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe_parametermap.go b/goformation/cloudformation/databrew/aws-databrew-recipe_parametermap.go
new file mode 100644
index 0000000000..1bd3ec2c36
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe_parametermap.go
@@ -0,0 +1,30 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe_ParameterMap AWS CloudFormation Resource (AWS::DataBrew::Recipe.ParameterMap)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-parametermap.html
+type Recipe_ParameterMap struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe_ParameterMap) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe.ParameterMap"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe_recipeparameters.go b/goformation/cloudformation/databrew/aws-databrew-recipe_recipeparameters.go
new file mode 100644
index 0000000000..d05844b04b
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe_recipeparameters.go
@@ -0,0 +1,537 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe_RecipeParameters AWS CloudFormation Resource (AWS::DataBrew::Recipe.RecipeParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html
+type Recipe_RecipeParameters struct {
+
+ // AggregateFunction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-aggregatefunction
+ AggregateFunction *types.Value `json:"AggregateFunction,omitempty"`
+
+ // Base AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-base
+ Base *types.Value `json:"Base,omitempty"`
+
+ // CaseStatement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-casestatement
+ CaseStatement *types.Value `json:"CaseStatement,omitempty"`
+
+ // CategoryMap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-categorymap
+ CategoryMap *types.Value `json:"CategoryMap,omitempty"`
+
+ // CharsToRemove AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-charstoremove
+ CharsToRemove *types.Value `json:"CharsToRemove,omitempty"`
+
+ // CollapseConsecutiveWhitespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-collapseconsecutivewhitespace
+ CollapseConsecutiveWhitespace *types.Value `json:"CollapseConsecutiveWhitespace,omitempty"`
+
+ // ColumnDataType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-columndatatype
+ ColumnDataType *types.Value `json:"ColumnDataType,omitempty"`
+
+ // ColumnRange AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-columnrange
+ ColumnRange *types.Value `json:"ColumnRange,omitempty"`
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // CustomCharacters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customcharacters
+ CustomCharacters *types.Value `json:"CustomCharacters,omitempty"`
+
+ // CustomStopWords AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customstopwords
+ CustomStopWords *types.Value `json:"CustomStopWords,omitempty"`
+
+ // CustomValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-customvalue
+ CustomValue *types.Value `json:"CustomValue,omitempty"`
+
+ // DatasetsColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datasetscolumns
+ DatasetsColumns *types.Value `json:"DatasetsColumns,omitempty"`
+
+ // DateAddValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-dateaddvalue
+ DateAddValue *types.Value `json:"DateAddValue,omitempty"`
+
+ // DateTimeFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datetimeformat
+ DateTimeFormat *types.Value `json:"DateTimeFormat,omitempty"`
+
+ // DateTimeParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-datetimeparameters
+ DateTimeParameters *types.Value `json:"DateTimeParameters,omitempty"`
+
+ // DeleteOtherRows AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-deleteotherrows
+ DeleteOtherRows *types.Value `json:"DeleteOtherRows,omitempty"`
+
+ // Delimiter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-delimiter
+ Delimiter *types.Value `json:"Delimiter,omitempty"`
+
+ // EndPattern AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endpattern
+ EndPattern *types.Value `json:"EndPattern,omitempty"`
+
+ // EndPosition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endposition
+ EndPosition *types.Value `json:"EndPosition,omitempty"`
+
+ // EndValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-endvalue
+ EndValue *types.Value `json:"EndValue,omitempty"`
+
+ // ExpandContractions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-expandcontractions
+ ExpandContractions *types.Value `json:"ExpandContractions,omitempty"`
+
+ // Exponent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-exponent
+ Exponent *types.Value `json:"Exponent,omitempty"`
+
+ // FalseString AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-falsestring
+ FalseString *types.Value `json:"FalseString,omitempty"`
+
+ // GroupByAggFunctionOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-groupbyaggfunctionoptions
+ GroupByAggFunctionOptions *types.Value `json:"GroupByAggFunctionOptions,omitempty"`
+
+ // GroupByColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-groupbycolumns
+ GroupByColumns *types.Value `json:"GroupByColumns,omitempty"`
+
+ // HiddenColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-hiddencolumns
+ HiddenColumns *types.Value `json:"HiddenColumns,omitempty"`
+
+ // IgnoreCase AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-ignorecase
+ IgnoreCase *types.Value `json:"IgnoreCase,omitempty"`
+
+ // IncludeInSplit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-includeinsplit
+ IncludeInSplit *types.Value `json:"IncludeInSplit,omitempty"`
+
+ // Input AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-input
+ Input interface{} `json:"Input,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // IsText AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-istext
+ IsText *types.Value `json:"IsText,omitempty"`
+
+ // JoinKeys AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-joinkeys
+ JoinKeys *types.Value `json:"JoinKeys,omitempty"`
+
+ // JoinType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-jointype
+ JoinType *types.Value `json:"JoinType,omitempty"`
+
+ // LeftColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-leftcolumns
+ LeftColumns *types.Value `json:"LeftColumns,omitempty"`
+
+ // Limit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-limit
+ Limit *types.Value `json:"Limit,omitempty"`
+
+ // LowerBound AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-lowerbound
+ LowerBound *types.Value `json:"LowerBound,omitempty"`
+
+ // MapType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-maptype
+ MapType *types.Value `json:"MapType,omitempty"`
+
+ // ModeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-modetype
+ ModeType *types.Value `json:"ModeType,omitempty"`
+
+ // MultiLine AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-multiline
+ MultiLine *types.Value `json:"MultiLine,omitempty"`
+
+ // NumRows AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrows
+ NumRows *types.Value `json:"NumRows,omitempty"`
+
+ // NumRowsAfter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrowsafter
+ NumRowsAfter *types.Value `json:"NumRowsAfter,omitempty"`
+
+ // NumRowsBefore AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-numrowsbefore
+ NumRowsBefore *types.Value `json:"NumRowsBefore,omitempty"`
+
+ // OrderByColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-orderbycolumn
+ OrderByColumn *types.Value `json:"OrderByColumn,omitempty"`
+
+ // OrderByColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-orderbycolumns
+ OrderByColumns *types.Value `json:"OrderByColumns,omitempty"`
+
+ // Other AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-other
+ Other *types.Value `json:"Other,omitempty"`
+
+ // Pattern AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-pattern
+ Pattern *types.Value `json:"Pattern,omitempty"`
+
+ // PatternOption1 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoption1
+ PatternOption1 *types.Value `json:"PatternOption1,omitempty"`
+
+ // PatternOption2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoption2
+ PatternOption2 *types.Value `json:"PatternOption2,omitempty"`
+
+ // PatternOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-patternoptions
+ PatternOptions *types.Value `json:"PatternOptions,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-period
+ Period *types.Value `json:"Period,omitempty"`
+
+ // Position AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-position
+ Position *types.Value `json:"Position,omitempty"`
+
+ // RemoveAllPunctuation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallpunctuation
+ RemoveAllPunctuation *types.Value `json:"RemoveAllPunctuation,omitempty"`
+
+ // RemoveAllQuotes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallquotes
+ RemoveAllQuotes *types.Value `json:"RemoveAllQuotes,omitempty"`
+
+ // RemoveAllWhitespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeallwhitespace
+ RemoveAllWhitespace *types.Value `json:"RemoveAllWhitespace,omitempty"`
+
+ // RemoveCustomCharacters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removecustomcharacters
+ RemoveCustomCharacters *types.Value `json:"RemoveCustomCharacters,omitempty"`
+
+ // RemoveCustomValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removecustomvalue
+ RemoveCustomValue *types.Value `json:"RemoveCustomValue,omitempty"`
+
+ // RemoveLeadingAndTrailingPunctuation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingpunctuation
+ RemoveLeadingAndTrailingPunctuation *types.Value `json:"RemoveLeadingAndTrailingPunctuation,omitempty"`
+
+ // RemoveLeadingAndTrailingQuotes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingquotes
+ RemoveLeadingAndTrailingQuotes *types.Value `json:"RemoveLeadingAndTrailingQuotes,omitempty"`
+
+ // RemoveLeadingAndTrailingWhitespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeleadingandtrailingwhitespace
+ RemoveLeadingAndTrailingWhitespace *types.Value `json:"RemoveLeadingAndTrailingWhitespace,omitempty"`
+
+ // RemoveLetters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removeletters
+ RemoveLetters *types.Value `json:"RemoveLetters,omitempty"`
+
+ // RemoveNumbers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removenumbers
+ RemoveNumbers *types.Value `json:"RemoveNumbers,omitempty"`
+
+ // RemoveSourceColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removesourcecolumn
+ RemoveSourceColumn *types.Value `json:"RemoveSourceColumn,omitempty"`
+
+ // RemoveSpecialCharacters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-removespecialcharacters
+ RemoveSpecialCharacters *types.Value `json:"RemoveSpecialCharacters,omitempty"`
+
+ // RightColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-rightcolumns
+ RightColumns *types.Value `json:"RightColumns,omitempty"`
+
+ // SampleSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-samplesize
+ SampleSize *types.Value `json:"SampleSize,omitempty"`
+
+ // SampleType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sampletype
+ SampleType *types.Value `json:"SampleType,omitempty"`
+
+ // SecondInput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-secondinput
+ SecondInput *types.Value `json:"SecondInput,omitempty"`
+
+ // SecondaryInputs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-secondaryinputs
+ SecondaryInputs []Recipe_SecondaryInput `json:"SecondaryInputs,omitempty"`
+
+ // SheetIndexes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sheetindexes
+ SheetIndexes *types.Value `json:"SheetIndexes,omitempty"`
+
+ // SheetNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sheetnames
+ SheetNames *types.Value `json:"SheetNames,omitempty"`
+
+ // SourceColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn
+ SourceColumn *types.Value `json:"SourceColumn,omitempty"`
+
+ // SourceColumn1 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn1
+ SourceColumn1 *types.Value `json:"SourceColumn1,omitempty"`
+
+ // SourceColumn2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumn2
+ SourceColumn2 *types.Value `json:"SourceColumn2,omitempty"`
+
+ // SourceColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-sourcecolumns
+ SourceColumns *types.Value `json:"SourceColumns,omitempty"`
+
+ // StartColumnIndex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startcolumnindex
+ StartColumnIndex *types.Value `json:"StartColumnIndex,omitempty"`
+
+ // StartPattern AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startpattern
+ StartPattern *types.Value `json:"StartPattern,omitempty"`
+
+ // StartPosition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startposition
+ StartPosition *types.Value `json:"StartPosition,omitempty"`
+
+ // StartValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-startvalue
+ StartValue *types.Value `json:"StartValue,omitempty"`
+
+ // StemmingMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stemmingmode
+ StemmingMode *types.Value `json:"StemmingMode,omitempty"`
+
+ // StepCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stepcount
+ StepCount *types.Value `json:"StepCount,omitempty"`
+
+ // StepIndex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stepindex
+ StepIndex *types.Value `json:"StepIndex,omitempty"`
+
+ // StopWordsMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-stopwordsmode
+ StopWordsMode *types.Value `json:"StopWordsMode,omitempty"`
+
+ // Strategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-strategy
+ Strategy *types.Value `json:"Strategy,omitempty"`
+
+ // TargetColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetcolumn
+ TargetColumn *types.Value `json:"TargetColumn,omitempty"`
+
+ // TargetColumnNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetcolumnnames
+ TargetColumnNames *types.Value `json:"TargetColumnNames,omitempty"`
+
+ // TargetDateFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetdateformat
+ TargetDateFormat *types.Value `json:"TargetDateFormat,omitempty"`
+
+ // TargetIndex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-targetindex
+ TargetIndex *types.Value `json:"TargetIndex,omitempty"`
+
+ // TimeZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-timezone
+ TimeZone *types.Value `json:"TimeZone,omitempty"`
+
+ // TokenizerPattern AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-tokenizerpattern
+ TokenizerPattern *types.Value `json:"TokenizerPattern,omitempty"`
+
+ // TrueString AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-truestring
+ TrueString *types.Value `json:"TrueString,omitempty"`
+
+ // UdfLang AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-udflang
+ UdfLang *types.Value `json:"UdfLang,omitempty"`
+
+ // Units AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-units
+ Units *types.Value `json:"Units,omitempty"`
+
+ // UnpivotColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-unpivotcolumn
+ UnpivotColumn *types.Value `json:"UnpivotColumn,omitempty"`
+
+ // UpperBound AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-upperbound
+ UpperBound *types.Value `json:"UpperBound,omitempty"`
+
+ // UseNewDataFrame AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-usenewdataframe
+ UseNewDataFrame *types.Value `json:"UseNewDataFrame,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // Value1 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value1
+ Value1 *types.Value `json:"Value1,omitempty"`
+
+ // Value2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-value2
+ Value2 *types.Value `json:"Value2,omitempty"`
+
+ // ValueColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-valuecolumn
+ ValueColumn *types.Value `json:"ValueColumn,omitempty"`
+
+ // ViewFrame AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipeparameters.html#cfn-databrew-recipe-recipeparameters-viewframe
+ ViewFrame *types.Value `json:"ViewFrame,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe_RecipeParameters) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe.RecipeParameters"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe_recipestep.go b/goformation/cloudformation/databrew/aws-databrew-recipe_recipestep.go
new file mode 100644
index 0000000000..b122cd9798
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe_recipestep.go
@@ -0,0 +1,40 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe_RecipeStep AWS CloudFormation Resource (AWS::DataBrew::Recipe.RecipeStep)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html
+type Recipe_RecipeStep struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html#cfn-databrew-recipe-recipestep-action
+ Action *Recipe_Action `json:"Action,omitempty"`
+
+ // ConditionExpressions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-recipestep.html#cfn-databrew-recipe-recipestep-conditionexpressions
+ ConditionExpressions []Recipe_ConditionExpression `json:"ConditionExpressions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe_RecipeStep) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe.RecipeStep"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe_s3location.go b/goformation/cloudformation/databrew/aws-databrew-recipe_s3location.go
new file mode 100644
index 0000000000..3c3ca4fc60
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe_s3location.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe_S3Location AWS CloudFormation Resource (AWS::DataBrew::Recipe.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html
+type Recipe_S3Location struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html#cfn-databrew-recipe-s3location-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-s3location.html#cfn-databrew-recipe-s3location-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe_S3Location) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe.S3Location"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-recipe_secondaryinput.go b/goformation/cloudformation/databrew/aws-databrew-recipe_secondaryinput.go
new file mode 100644
index 0000000000..8edb8aacf7
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-recipe_secondaryinput.go
@@ -0,0 +1,40 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Recipe_SecondaryInput AWS CloudFormation Resource (AWS::DataBrew::Recipe.SecondaryInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html
+type Recipe_SecondaryInput struct {
+
+ // DataCatalogInputDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html#cfn-databrew-recipe-secondaryinput-datacataloginputdefinition
+ DataCatalogInputDefinition *Recipe_DataCatalogInputDefinition `json:"DataCatalogInputDefinition,omitempty"`
+
+ // S3InputDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-recipe-secondaryinput.html#cfn-databrew-recipe-secondaryinput-s3inputdefinition
+ S3InputDefinition *Recipe_S3Location `json:"S3InputDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Recipe_SecondaryInput) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Recipe.SecondaryInput"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-ruleset.go b/goformation/cloudformation/databrew/aws-databrew-ruleset.go
new file mode 100644
index 0000000000..ed9f9b4b76
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-ruleset.go
@@ -0,0 +1,129 @@
+package databrew
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Ruleset AWS CloudFormation Resource (AWS::DataBrew::Ruleset)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html
+type Ruleset struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Rules AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-rules
+ Rules []Ruleset_Rule `json:"Rules,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TargetArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-ruleset.html#cfn-databrew-ruleset-targetarn
+ TargetArn *types.Value `json:"TargetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Ruleset) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Ruleset"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Ruleset) MarshalJSON() ([]byte, error) {
+ type Properties Ruleset
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Ruleset) UnmarshalJSON(b []byte) error {
+ type Properties Ruleset
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Ruleset(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-ruleset_columnselector.go b/goformation/cloudformation/databrew/aws-databrew-ruleset_columnselector.go
new file mode 100644
index 0000000000..30d331a873
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-ruleset_columnselector.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Ruleset_ColumnSelector AWS CloudFormation Resource (AWS::DataBrew::Ruleset.ColumnSelector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html
+type Ruleset_ColumnSelector struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html#cfn-databrew-ruleset-columnselector-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-columnselector.html#cfn-databrew-ruleset-columnselector-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Ruleset_ColumnSelector) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Ruleset.ColumnSelector"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-ruleset_rule.go b/goformation/cloudformation/databrew/aws-databrew-ruleset_rule.go
new file mode 100644
index 0000000000..b4f31b8bb0
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-ruleset_rule.go
@@ -0,0 +1,62 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Ruleset_Rule AWS CloudFormation Resource (AWS::DataBrew::Ruleset.Rule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html
+type Ruleset_Rule struct {
+
+ // CheckExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-checkexpression
+ CheckExpression *types.Value `json:"CheckExpression,omitempty"`
+
+ // ColumnSelectors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-columnselectors
+ ColumnSelectors []Ruleset_ColumnSelector `json:"ColumnSelectors,omitempty"`
+
+ // Disabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-disabled
+ Disabled *types.Value `json:"Disabled,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SubstitutionMap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-substitutionmap
+ SubstitutionMap []Ruleset_SubstitutionValue `json:"SubstitutionMap,omitempty"`
+
+ // Threshold AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-rule.html#cfn-databrew-ruleset-rule-threshold
+ Threshold *Ruleset_Threshold `json:"Threshold,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Ruleset_Rule) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Ruleset.Rule"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-ruleset_substitutionvalue.go b/goformation/cloudformation/databrew/aws-databrew-ruleset_substitutionvalue.go
new file mode 100644
index 0000000000..acb3b0c3f3
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-ruleset_substitutionvalue.go
@@ -0,0 +1,42 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Ruleset_SubstitutionValue AWS CloudFormation Resource (AWS::DataBrew::Ruleset.SubstitutionValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html
+type Ruleset_SubstitutionValue struct {
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html#cfn-databrew-ruleset-substitutionvalue-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // ValueReference AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-substitutionvalue.html#cfn-databrew-ruleset-substitutionvalue-valuereference
+ ValueReference *types.Value `json:"ValueReference,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Ruleset_SubstitutionValue) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Ruleset.SubstitutionValue"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-ruleset_threshold.go b/goformation/cloudformation/databrew/aws-databrew-ruleset_threshold.go
new file mode 100644
index 0000000000..6ef177b639
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-ruleset_threshold.go
@@ -0,0 +1,47 @@
+package databrew
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Ruleset_Threshold AWS CloudFormation Resource (AWS::DataBrew::Ruleset.Threshold)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html
+type Ruleset_Threshold struct {
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html#cfn-databrew-ruleset-threshold-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html#cfn-databrew-ruleset-threshold-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-databrew-ruleset-threshold.html#cfn-databrew-ruleset-threshold-value
+ Value *types.Value `json:"Value"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Ruleset_Threshold) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Ruleset.Threshold"
+}
diff --git a/goformation/cloudformation/databrew/aws-databrew-schedule.go b/goformation/cloudformation/databrew/aws-databrew-schedule.go
new file mode 100644
index 0000000000..da93f07618
--- /dev/null
+++ b/goformation/cloudformation/databrew/aws-databrew-schedule.go
@@ -0,0 +1,124 @@
+package databrew
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Schedule AWS CloudFormation Resource (AWS::DataBrew::Schedule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html
+type Schedule struct {
+
+ // CronExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-cronexpression
+ CronExpression *types.Value `json:"CronExpression,omitempty"`
+
+ // JobNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-jobnames
+ JobNames *types.Value `json:"JobNames,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-databrew-schedule.html#cfn-databrew-schedule-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Schedule) AWSCloudFormationType() string {
+ return "AWS::DataBrew::Schedule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Schedule) MarshalJSON() ([]byte, error) {
+ type Properties Schedule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Schedule) UnmarshalJSON(b []byte) error {
+ type Properties Schedule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Schedule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline.go b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline.go
new file mode 100644
index 0000000000..960645654b
--- /dev/null
+++ b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline.go
@@ -0,0 +1,138 @@
+package datapipeline
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline AWS CloudFormation Resource (AWS::DataPipeline::Pipeline)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html
+type Pipeline struct {
+
+ // Activate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-activate
+ Activate *types.Value `json:"Activate,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ParameterObjects AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-parameterobjects
+ ParameterObjects []Pipeline_ParameterObject `json:"ParameterObjects,omitempty"`
+
+ // ParameterValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-parametervalues
+ ParameterValues []Pipeline_ParameterValue `json:"ParameterValues,omitempty"`
+
+ // PipelineObjects AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-pipelineobjects
+ PipelineObjects []Pipeline_PipelineObject `json:"PipelineObjects,omitempty"`
+
+ // PipelineTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datapipeline-pipeline.html#cfn-datapipeline-pipeline-pipelinetags
+ PipelineTags []Pipeline_PipelineTag `json:"PipelineTags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline) AWSCloudFormationType() string {
+ return "AWS::DataPipeline::Pipeline"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Pipeline) MarshalJSON() ([]byte, error) {
+ type Properties Pipeline
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Pipeline) UnmarshalJSON(b []byte) error {
+ type Properties Pipeline
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Pipeline(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_field.go b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_field.go
new file mode 100644
index 0000000000..ade6b315db
--- /dev/null
+++ b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_field.go
@@ -0,0 +1,47 @@
+package datapipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_Field AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.Field)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html
+type Pipeline_Field struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html#cfn-datapipeline-pipeline-pipelineobjects-fields-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // RefValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html#cfn-datapipeline-pipeline-pipelineobjects-fields-refvalue
+ RefValue *types.Value `json:"RefValue,omitempty"`
+
+ // StringValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects-fields.html#cfn-datapipeline-pipeline-pipelineobjects-fields-stringvalue
+ StringValue *types.Value `json:"StringValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_Field) AWSCloudFormationType() string {
+ return "AWS::DataPipeline::Pipeline.Field"
+}
diff --git a/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parameterattribute.go b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parameterattribute.go
new file mode 100644
index 0000000000..79a7d076cc
--- /dev/null
+++ b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parameterattribute.go
@@ -0,0 +1,42 @@
+package datapipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_ParameterAttribute AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.ParameterAttribute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html
+type Pipeline_ParameterAttribute struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html#cfn-datapipeline-pipeline-parameterobjects-attribtues-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // StringValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects-attributes.html#cfn-datapipeline-pipeline-parameterobjects-attribtues-stringvalue
+ StringValue *types.Value `json:"StringValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_ParameterAttribute) AWSCloudFormationType() string {
+ return "AWS::DataPipeline::Pipeline.ParameterAttribute"
+}
diff --git a/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parameterobject.go b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parameterobject.go
new file mode 100644
index 0000000000..a5061407e2
--- /dev/null
+++ b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parameterobject.go
@@ -0,0 +1,42 @@
+package datapipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_ParameterObject AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.ParameterObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html
+type Pipeline_ParameterObject struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html#cfn-datapipeline-pipeline-parameterobjects-attributes
+ Attributes []Pipeline_ParameterAttribute `json:"Attributes,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parameterobjects.html#cfn-datapipeline-pipeline-parameterobjects-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_ParameterObject) AWSCloudFormationType() string {
+ return "AWS::DataPipeline::Pipeline.ParameterObject"
+}
diff --git a/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parametervalue.go b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parametervalue.go
new file mode 100644
index 0000000000..1854d2d3c0
--- /dev/null
+++ b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_parametervalue.go
@@ -0,0 +1,42 @@
+package datapipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_ParameterValue AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.ParameterValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html
+type Pipeline_ParameterValue struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html#cfn-datapipeline-pipeline-parametervalues-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // StringValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-parametervalues.html#cfn-datapipeline-pipeline-parametervalues-stringvalue
+ StringValue *types.Value `json:"StringValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_ParameterValue) AWSCloudFormationType() string {
+ return "AWS::DataPipeline::Pipeline.ParameterValue"
+}
diff --git a/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_pipelineobject.go b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_pipelineobject.go
new file mode 100644
index 0000000000..7d03e9c7c5
--- /dev/null
+++ b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_pipelineobject.go
@@ -0,0 +1,47 @@
+package datapipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_PipelineObject AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.PipelineObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html
+type Pipeline_PipelineObject struct {
+
+ // Fields AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html#cfn-datapipeline-pipeline-pipelineobjects-fields
+ Fields []Pipeline_Field `json:"Fields,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html#cfn-datapipeline-pipeline-pipelineobjects-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelineobjects.html#cfn-datapipeline-pipeline-pipelineobjects-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_PipelineObject) AWSCloudFormationType() string {
+ return "AWS::DataPipeline::Pipeline.PipelineObject"
+}
diff --git a/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_pipelinetag.go b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_pipelinetag.go
new file mode 100644
index 0000000000..61f5d008cc
--- /dev/null
+++ b/goformation/cloudformation/datapipeline/aws-datapipeline-pipeline_pipelinetag.go
@@ -0,0 +1,42 @@
+package datapipeline
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_PipelineTag AWS CloudFormation Resource (AWS::DataPipeline::Pipeline.PipelineTag)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html
+type Pipeline_PipelineTag struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html#cfn-datapipeline-pipeline-pipelinetags-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datapipeline-pipeline-pipelinetags.html#cfn-datapipeline-pipeline-pipelinetags-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_PipelineTag) AWSCloudFormationType() string {
+ return "AWS::DataPipeline::Pipeline.PipelineTag"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-agent.go b/goformation/cloudformation/datasync/aws-datasync-agent.go
new file mode 100644
index 0000000000..8c6999dfb0
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-agent.go
@@ -0,0 +1,134 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Agent AWS CloudFormation Resource (AWS::DataSync::Agent)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html
+type Agent struct {
+
+ // ActivationKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html#cfn-datasync-agent-activationkey
+ ActivationKey *types.Value `json:"ActivationKey,omitempty"`
+
+ // AgentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html#cfn-datasync-agent-agentname
+ AgentName *types.Value `json:"AgentName,omitempty"`
+
+ // SecurityGroupArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html#cfn-datasync-agent-securitygrouparns
+ SecurityGroupArns *types.Value `json:"SecurityGroupArns,omitempty"`
+
+ // SubnetArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html#cfn-datasync-agent-subnetarns
+ SubnetArns *types.Value `json:"SubnetArns,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html#cfn-datasync-agent-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcEndpointId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html#cfn-datasync-agent-vpcendpointid
+ VpcEndpointId *types.Value `json:"VpcEndpointId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Agent) AWSCloudFormationType() string {
+ return "AWS::DataSync::Agent"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Agent) MarshalJSON() ([]byte, error) {
+ type Properties Agent
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Agent) UnmarshalJSON(b []byte) error {
+ type Properties Agent
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Agent(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationefs.go b/goformation/cloudformation/datasync/aws-datasync-locationefs.go
new file mode 100644
index 0000000000..43b5017a01
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationefs.go
@@ -0,0 +1,124 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationEFS AWS CloudFormation Resource (AWS::DataSync::LocationEFS)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html
+type LocationEFS struct {
+
+ // Ec2Config AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html#cfn-datasync-locationefs-ec2config
+ Ec2Config *LocationEFS_Ec2Config `json:"Ec2Config,omitempty"`
+
+ // EfsFilesystemArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html#cfn-datasync-locationefs-efsfilesystemarn
+ EfsFilesystemArn *types.Value `json:"EfsFilesystemArn,omitempty"`
+
+ // Subdirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html#cfn-datasync-locationefs-subdirectory
+ Subdirectory *types.Value `json:"Subdirectory,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html#cfn-datasync-locationefs-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationEFS) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationEFS"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocationEFS) MarshalJSON() ([]byte, error) {
+ type Properties LocationEFS
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocationEFS) UnmarshalJSON(b []byte) error {
+ type Properties LocationEFS
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocationEFS(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationefs_ec2config.go b/goformation/cloudformation/datasync/aws-datasync-locationefs_ec2config.go
new file mode 100644
index 0000000000..cbd0f9bc70
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationefs_ec2config.go
@@ -0,0 +1,42 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationEFS_Ec2Config AWS CloudFormation Resource (AWS::DataSync::LocationEFS.Ec2Config)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationefs-ec2config.html
+type LocationEFS_Ec2Config struct {
+
+ // SecurityGroupArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationefs-ec2config.html#cfn-datasync-locationefs-ec2config-securitygrouparns
+ SecurityGroupArns *types.Value `json:"SecurityGroupArns,omitempty"`
+
+ // SubnetArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationefs-ec2config.html#cfn-datasync-locationefs-ec2config-subnetarn
+ SubnetArn *types.Value `json:"SubnetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationEFS_Ec2Config) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationEFS.Ec2Config"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationfsxwindows.go b/goformation/cloudformation/datasync/aws-datasync-locationfsxwindows.go
new file mode 100644
index 0000000000..acb5608e38
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationfsxwindows.go
@@ -0,0 +1,139 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationFSxWindows AWS CloudFormation Resource (AWS::DataSync::LocationFSxWindows)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html
+type LocationFSxWindows struct {
+
+ // Domain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html#cfn-datasync-locationfsxwindows-domain
+ Domain *types.Value `json:"Domain,omitempty"`
+
+ // FsxFilesystemArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html#cfn-datasync-locationfsxwindows-fsxfilesystemarn
+ FsxFilesystemArn *types.Value `json:"FsxFilesystemArn,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html#cfn-datasync-locationfsxwindows-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // SecurityGroupArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html#cfn-datasync-locationfsxwindows-securitygrouparns
+ SecurityGroupArns *types.Value `json:"SecurityGroupArns,omitempty"`
+
+ // Subdirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html#cfn-datasync-locationfsxwindows-subdirectory
+ Subdirectory *types.Value `json:"Subdirectory,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html#cfn-datasync-locationfsxwindows-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // User AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html#cfn-datasync-locationfsxwindows-user
+ User *types.Value `json:"User,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationFSxWindows) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationFSxWindows"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocationFSxWindows) MarshalJSON() ([]byte, error) {
+ type Properties LocationFSxWindows
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocationFSxWindows) UnmarshalJSON(b []byte) error {
+ type Properties LocationFSxWindows
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocationFSxWindows(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationhdfs.go b/goformation/cloudformation/datasync/aws-datasync-locationhdfs.go
new file mode 100644
index 0000000000..998b4492e7
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationhdfs.go
@@ -0,0 +1,169 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationHDFS AWS CloudFormation Resource (AWS::DataSync::LocationHDFS)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html
+type LocationHDFS struct {
+
+ // AgentArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-agentarns
+ AgentArns *types.Value `json:"AgentArns,omitempty"`
+
+ // AuthenticationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-authenticationtype
+ AuthenticationType *types.Value `json:"AuthenticationType,omitempty"`
+
+ // BlockSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-blocksize
+ BlockSize *types.Value `json:"BlockSize,omitempty"`
+
+ // KerberosKeytab AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-kerberoskeytab
+ KerberosKeytab *types.Value `json:"KerberosKeytab,omitempty"`
+
+ // KerberosKrb5Conf AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-kerberoskrb5conf
+ KerberosKrb5Conf *types.Value `json:"KerberosKrb5Conf,omitempty"`
+
+ // KerberosPrincipal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-kerberosprincipal
+ KerberosPrincipal *types.Value `json:"KerberosPrincipal,omitempty"`
+
+ // KmsKeyProviderUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-kmskeyprovideruri
+ KmsKeyProviderUri *types.Value `json:"KmsKeyProviderUri,omitempty"`
+
+ // NameNodes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-namenodes
+ NameNodes []LocationHDFS_NameNode `json:"NameNodes,omitempty"`
+
+ // QopConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-qopconfiguration
+ QopConfiguration *LocationHDFS_QopConfiguration `json:"QopConfiguration,omitempty"`
+
+ // ReplicationFactor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-replicationfactor
+ ReplicationFactor *types.Value `json:"ReplicationFactor,omitempty"`
+
+ // SimpleUser AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-simpleuser
+ SimpleUser *types.Value `json:"SimpleUser,omitempty"`
+
+ // Subdirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-subdirectory
+ Subdirectory *types.Value `json:"Subdirectory,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationhdfs.html#cfn-datasync-locationhdfs-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationHDFS) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationHDFS"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocationHDFS) MarshalJSON() ([]byte, error) {
+ type Properties LocationHDFS
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocationHDFS) UnmarshalJSON(b []byte) error {
+ type Properties LocationHDFS
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocationHDFS(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationhdfs_namenode.go b/goformation/cloudformation/datasync/aws-datasync-locationhdfs_namenode.go
new file mode 100644
index 0000000000..709f32a9e4
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationhdfs_namenode.go
@@ -0,0 +1,42 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationHDFS_NameNode AWS CloudFormation Resource (AWS::DataSync::LocationHDFS.NameNode)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html
+type LocationHDFS_NameNode struct {
+
+ // Hostname AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html#cfn-datasync-locationhdfs-namenode-hostname
+ Hostname *types.Value `json:"Hostname,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-namenode.html#cfn-datasync-locationhdfs-namenode-port
+ Port *types.Value `json:"Port"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationHDFS_NameNode) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationHDFS.NameNode"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationhdfs_qopconfiguration.go b/goformation/cloudformation/datasync/aws-datasync-locationhdfs_qopconfiguration.go
new file mode 100644
index 0000000000..3b5da1fd9a
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationhdfs_qopconfiguration.go
@@ -0,0 +1,42 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationHDFS_QopConfiguration AWS CloudFormation Resource (AWS::DataSync::LocationHDFS.QopConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html
+type LocationHDFS_QopConfiguration struct {
+
+ // DataTransferProtection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html#cfn-datasync-locationhdfs-qopconfiguration-datatransferprotection
+ DataTransferProtection *types.Value `json:"DataTransferProtection,omitempty"`
+
+ // RpcProtection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationhdfs-qopconfiguration.html#cfn-datasync-locationhdfs-qopconfiguration-rpcprotection
+ RpcProtection *types.Value `json:"RpcProtection,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationHDFS_QopConfiguration) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationHDFS.QopConfiguration"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationnfs.go b/goformation/cloudformation/datasync/aws-datasync-locationnfs.go
new file mode 100644
index 0000000000..4911212b69
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationnfs.go
@@ -0,0 +1,129 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationNFS AWS CloudFormation Resource (AWS::DataSync::LocationNFS)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html
+type LocationNFS struct {
+
+ // MountOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html#cfn-datasync-locationnfs-mountoptions
+ MountOptions *LocationNFS_MountOptions `json:"MountOptions,omitempty"`
+
+ // OnPremConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html#cfn-datasync-locationnfs-onpremconfig
+ OnPremConfig *LocationNFS_OnPremConfig `json:"OnPremConfig,omitempty"`
+
+ // ServerHostname AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html#cfn-datasync-locationnfs-serverhostname
+ ServerHostname *types.Value `json:"ServerHostname,omitempty"`
+
+ // Subdirectory AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html#cfn-datasync-locationnfs-subdirectory
+ Subdirectory *types.Value `json:"Subdirectory,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html#cfn-datasync-locationnfs-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationNFS) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationNFS"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocationNFS) MarshalJSON() ([]byte, error) {
+ type Properties LocationNFS
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocationNFS) UnmarshalJSON(b []byte) error {
+ type Properties LocationNFS
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocationNFS(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationnfs_mountoptions.go b/goformation/cloudformation/datasync/aws-datasync-locationnfs_mountoptions.go
new file mode 100644
index 0000000000..4f558f31f4
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationnfs_mountoptions.go
@@ -0,0 +1,37 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationNFS_MountOptions AWS CloudFormation Resource (AWS::DataSync::LocationNFS.MountOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-mountoptions.html
+type LocationNFS_MountOptions struct {
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-mountoptions.html#cfn-datasync-locationnfs-mountoptions-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationNFS_MountOptions) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationNFS.MountOptions"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationnfs_onpremconfig.go b/goformation/cloudformation/datasync/aws-datasync-locationnfs_onpremconfig.go
new file mode 100644
index 0000000000..00e7b29ee0
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationnfs_onpremconfig.go
@@ -0,0 +1,37 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationNFS_OnPremConfig AWS CloudFormation Resource (AWS::DataSync::LocationNFS.OnPremConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-onpremconfig.html
+type LocationNFS_OnPremConfig struct {
+
+ // AgentArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-onpremconfig.html#cfn-datasync-locationnfs-onpremconfig-agentarns
+ AgentArns *types.Value `json:"AgentArns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationNFS_OnPremConfig) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationNFS.OnPremConfig"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationobjectstorage.go b/goformation/cloudformation/datasync/aws-datasync-locationobjectstorage.go
new file mode 100644
index 0000000000..b4ae1ed921
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationobjectstorage.go
@@ -0,0 +1,149 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationObjectStorage AWS CloudFormation Resource (AWS::DataSync::LocationObjectStorage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html
+type LocationObjectStorage struct {
+
+ // AccessKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-accesskey
+ AccessKey *types.Value `json:"AccessKey,omitempty"`
+
+ // AgentArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-agentarns
+ AgentArns *types.Value `json:"AgentArns,omitempty"`
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // SecretKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-secretkey
+ SecretKey *types.Value `json:"SecretKey,omitempty"`
+
+ // ServerHostname AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverhostname
+ ServerHostname *types.Value `json:"ServerHostname,omitempty"`
+
+ // ServerPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverport
+ ServerPort *types.Value `json:"ServerPort,omitempty"`
+
+ // ServerProtocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverprotocol
+ ServerProtocol *types.Value `json:"ServerProtocol,omitempty"`
+
+ // Subdirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-subdirectory
+ Subdirectory *types.Value `json:"Subdirectory,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationObjectStorage) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationObjectStorage"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocationObjectStorage) MarshalJSON() ([]byte, error) {
+ type Properties LocationObjectStorage
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocationObjectStorage) UnmarshalJSON(b []byte) error {
+ type Properties LocationObjectStorage
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocationObjectStorage(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locations3.go b/goformation/cloudformation/datasync/aws-datasync-locations3.go
new file mode 100644
index 0000000000..4f9abef479
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locations3.go
@@ -0,0 +1,129 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationS3 AWS CloudFormation Resource (AWS::DataSync::LocationS3)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html
+type LocationS3 struct {
+
+ // S3BucketArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html#cfn-datasync-locations3-s3bucketarn
+ S3BucketArn *types.Value `json:"S3BucketArn,omitempty"`
+
+ // S3Config AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html#cfn-datasync-locations3-s3config
+ S3Config *LocationS3_S3Config `json:"S3Config,omitempty"`
+
+ // S3StorageClass AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html#cfn-datasync-locations3-s3storageclass
+ S3StorageClass *types.Value `json:"S3StorageClass,omitempty"`
+
+ // Subdirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html#cfn-datasync-locations3-subdirectory
+ Subdirectory *types.Value `json:"Subdirectory,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html#cfn-datasync-locations3-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationS3) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationS3"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocationS3) MarshalJSON() ([]byte, error) {
+ type Properties LocationS3
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocationS3) UnmarshalJSON(b []byte) error {
+ type Properties LocationS3
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocationS3(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locations3_s3config.go b/goformation/cloudformation/datasync/aws-datasync-locations3_s3config.go
new file mode 100644
index 0000000000..6a1df2f02a
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locations3_s3config.go
@@ -0,0 +1,37 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationS3_S3Config AWS CloudFormation Resource (AWS::DataSync::LocationS3.S3Config)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locations3-s3config.html
+type LocationS3_S3Config struct {
+
+ // BucketAccessRoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locations3-s3config.html#cfn-datasync-locations3-s3config-bucketaccessrolearn
+ BucketAccessRoleArn *types.Value `json:"BucketAccessRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationS3_S3Config) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationS3.S3Config"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationsmb.go b/goformation/cloudformation/datasync/aws-datasync-locationsmb.go
new file mode 100644
index 0000000000..16582748d3
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationsmb.go
@@ -0,0 +1,144 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationSMB AWS CloudFormation Resource (AWS::DataSync::LocationSMB)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html
+type LocationSMB struct {
+
+ // AgentArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-agentarns
+ AgentArns *types.Value `json:"AgentArns,omitempty"`
+
+ // Domain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-domain
+ Domain *types.Value `json:"Domain,omitempty"`
+
+ // MountOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-mountoptions
+ MountOptions *LocationSMB_MountOptions `json:"MountOptions,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // ServerHostname AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-serverhostname
+ ServerHostname *types.Value `json:"ServerHostname,omitempty"`
+
+ // Subdirectory AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-subdirectory
+ Subdirectory *types.Value `json:"Subdirectory,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // User AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-user
+ User *types.Value `json:"User,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationSMB) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationSMB"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocationSMB) MarshalJSON() ([]byte, error) {
+ type Properties LocationSMB
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocationSMB) UnmarshalJSON(b []byte) error {
+ type Properties LocationSMB
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocationSMB(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-locationsmb_mountoptions.go b/goformation/cloudformation/datasync/aws-datasync-locationsmb_mountoptions.go
new file mode 100644
index 0000000000..18fbbc494e
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-locationsmb_mountoptions.go
@@ -0,0 +1,37 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocationSMB_MountOptions AWS CloudFormation Resource (AWS::DataSync::LocationSMB.MountOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationsmb-mountoptions.html
+type LocationSMB_MountOptions struct {
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationsmb-mountoptions.html#cfn-datasync-locationsmb-mountoptions-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocationSMB_MountOptions) AWSCloudFormationType() string {
+ return "AWS::DataSync::LocationSMB.MountOptions"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-task.go b/goformation/cloudformation/datasync/aws-datasync-task.go
new file mode 100644
index 0000000000..defab43377
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-task.go
@@ -0,0 +1,149 @@
+package datasync
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Task AWS CloudFormation Resource (AWS::DataSync::Task)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html
+type Task struct {
+
+ // CloudWatchLogGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-cloudwatchloggrouparn
+ CloudWatchLogGroupArn *types.Value `json:"CloudWatchLogGroupArn,omitempty"`
+
+ // DestinationLocationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-destinationlocationarn
+ DestinationLocationArn *types.Value `json:"DestinationLocationArn,omitempty"`
+
+ // Excludes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-excludes
+ Excludes []Task_FilterRule `json:"Excludes,omitempty"`
+
+ // Includes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-includes
+ Includes []Task_FilterRule `json:"Includes,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-options
+ Options *Task_Options `json:"Options,omitempty"`
+
+ // Schedule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-schedule
+ Schedule *Task_TaskSchedule `json:"Schedule,omitempty"`
+
+ // SourceLocationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-sourcelocationarn
+ SourceLocationArn *types.Value `json:"SourceLocationArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html#cfn-datasync-task-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Task) AWSCloudFormationType() string {
+ return "AWS::DataSync::Task"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Task) MarshalJSON() ([]byte, error) {
+ type Properties Task
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Task) UnmarshalJSON(b []byte) error {
+ type Properties Task
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Task(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-task_filterrule.go b/goformation/cloudformation/datasync/aws-datasync-task_filterrule.go
new file mode 100644
index 0000000000..ce24d7c021
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-task_filterrule.go
@@ -0,0 +1,42 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Task_FilterRule AWS CloudFormation Resource (AWS::DataSync::Task.FilterRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html
+type Task_FilterRule struct {
+
+ // FilterType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html#cfn-datasync-task-filterrule-filtertype
+ FilterType *types.Value `json:"FilterType,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html#cfn-datasync-task-filterrule-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Task_FilterRule) AWSCloudFormationType() string {
+ return "AWS::DataSync::Task.FilterRule"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-task_options.go b/goformation/cloudformation/datasync/aws-datasync-task_options.go
new file mode 100644
index 0000000000..89f8f0f689
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-task_options.go
@@ -0,0 +1,102 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Task_Options AWS CloudFormation Resource (AWS::DataSync::Task.Options)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html
+type Task_Options struct {
+
+ // Atime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-atime
+ Atime *types.Value `json:"Atime,omitempty"`
+
+ // BytesPerSecond AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-bytespersecond
+ BytesPerSecond *types.Value `json:"BytesPerSecond,omitempty"`
+
+ // Gid AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-gid
+ Gid *types.Value `json:"Gid,omitempty"`
+
+ // LogLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-loglevel
+ LogLevel *types.Value `json:"LogLevel,omitempty"`
+
+ // Mtime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-mtime
+ Mtime *types.Value `json:"Mtime,omitempty"`
+
+ // OverwriteMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-overwritemode
+ OverwriteMode *types.Value `json:"OverwriteMode,omitempty"`
+
+ // PosixPermissions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-posixpermissions
+ PosixPermissions *types.Value `json:"PosixPermissions,omitempty"`
+
+ // PreserveDeletedFiles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-preservedeletedfiles
+ PreserveDeletedFiles *types.Value `json:"PreserveDeletedFiles,omitempty"`
+
+ // PreserveDevices AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-preservedevices
+ PreserveDevices *types.Value `json:"PreserveDevices,omitempty"`
+
+ // SecurityDescriptorCopyFlags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-securitydescriptorcopyflags
+ SecurityDescriptorCopyFlags *types.Value `json:"SecurityDescriptorCopyFlags,omitempty"`
+
+ // TaskQueueing AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-taskqueueing
+ TaskQueueing *types.Value `json:"TaskQueueing,omitempty"`
+
+ // TransferMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-transfermode
+ TransferMode *types.Value `json:"TransferMode,omitempty"`
+
+ // Uid AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-uid
+ Uid *types.Value `json:"Uid,omitempty"`
+
+ // VerifyMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html#cfn-datasync-task-options-verifymode
+ VerifyMode *types.Value `json:"VerifyMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Task_Options) AWSCloudFormationType() string {
+ return "AWS::DataSync::Task.Options"
+}
diff --git a/goformation/cloudformation/datasync/aws-datasync-task_taskschedule.go b/goformation/cloudformation/datasync/aws-datasync-task_taskschedule.go
new file mode 100644
index 0000000000..f70236a001
--- /dev/null
+++ b/goformation/cloudformation/datasync/aws-datasync-task_taskschedule.go
@@ -0,0 +1,37 @@
+package datasync
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Task_TaskSchedule AWS CloudFormation Resource (AWS::DataSync::Task.TaskSchedule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-taskschedule.html
+type Task_TaskSchedule struct {
+
+ // ScheduleExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-taskschedule.html#cfn-datasync-task-taskschedule-scheduleexpression
+ ScheduleExpression *types.Value `json:"ScheduleExpression,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Task_TaskSchedule) AWSCloudFormationType() string {
+ return "AWS::DataSync::Task.TaskSchedule"
+}
diff --git a/goformation/cloudformation/dax/aws-dax-cluster.go b/goformation/cloudformation/dax/aws-dax-cluster.go
new file mode 100644
index 0000000000..3a53c4309d
--- /dev/null
+++ b/goformation/cloudformation/dax/aws-dax-cluster.go
@@ -0,0 +1,173 @@
+package dax
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster AWS CloudFormation Resource (AWS::DAX::Cluster)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html
+type Cluster struct {
+
+ // AvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-availabilityzones
+ AvailabilityZones *types.Value `json:"AvailabilityZones,omitempty"`
+
+ // ClusterEndpointEncryptionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-clusterendpointencryptiontype
+ ClusterEndpointEncryptionType *types.Value `json:"ClusterEndpointEncryptionType,omitempty"`
+
+ // ClusterName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-clustername
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IAMRoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-iamrolearn
+ IAMRoleARN *types.Value `json:"IAMRoleARN,omitempty"`
+
+ // NodeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-nodetype
+ NodeType *types.Value `json:"NodeType,omitempty"`
+
+ // NotificationTopicARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-notificationtopicarn
+ NotificationTopicARN *types.Value `json:"NotificationTopicARN,omitempty"`
+
+ // ParameterGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-parametergroupname
+ ParameterGroupName *types.Value `json:"ParameterGroupName,omitempty"`
+
+ // PreferredMaintenanceWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-preferredmaintenancewindow
+ PreferredMaintenanceWindow *types.Value `json:"PreferredMaintenanceWindow,omitempty"`
+
+ // ReplicationFactor AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-replicationfactor
+ ReplicationFactor *types.Value `json:"ReplicationFactor"`
+
+ // SSESpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-ssespecification
+ SSESpecification *Cluster_SSESpecification `json:"SSESpecification,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-subnetgroupname
+ SubnetGroupName *types.Value `json:"SubnetGroupName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-cluster.html#cfn-dax-cluster-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster) AWSCloudFormationType() string {
+ return "AWS::DAX::Cluster"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Cluster) MarshalJSON() ([]byte, error) {
+ type Properties Cluster
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Cluster) UnmarshalJSON(b []byte) error {
+ type Properties Cluster
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Cluster(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dax/aws-dax-cluster_ssespecification.go b/goformation/cloudformation/dax/aws-dax-cluster_ssespecification.go
new file mode 100644
index 0000000000..596a696624
--- /dev/null
+++ b/goformation/cloudformation/dax/aws-dax-cluster_ssespecification.go
@@ -0,0 +1,37 @@
+package dax
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_SSESpecification AWS CloudFormation Resource (AWS::DAX::Cluster.SSESpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html
+type Cluster_SSESpecification struct {
+
+ // SSEEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dax-cluster-ssespecification.html#cfn-dax-cluster-ssespecification-sseenabled
+ SSEEnabled *types.Value `json:"SSEEnabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_SSESpecification) AWSCloudFormationType() string {
+ return "AWS::DAX::Cluster.SSESpecification"
+}
diff --git a/goformation/cloudformation/dax/aws-dax-parametergroup.go b/goformation/cloudformation/dax/aws-dax-parametergroup.go
new file mode 100644
index 0000000000..2d754397b9
--- /dev/null
+++ b/goformation/cloudformation/dax/aws-dax-parametergroup.go
@@ -0,0 +1,118 @@
+package dax
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ParameterGroup AWS CloudFormation Resource (AWS::DAX::ParameterGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html
+type ParameterGroup struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // ParameterGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parametergroupname
+ ParameterGroupName *types.Value `json:"ParameterGroupName,omitempty"`
+
+ // ParameterNameValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parameternamevalues
+ ParameterNameValues interface{} `json:"ParameterNameValues,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ParameterGroup) AWSCloudFormationType() string {
+ return "AWS::DAX::ParameterGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ParameterGroup) MarshalJSON() ([]byte, error) {
+ type Properties ParameterGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ParameterGroup) UnmarshalJSON(b []byte) error {
+ type Properties ParameterGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ParameterGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dax/aws-dax-subnetgroup.go b/goformation/cloudformation/dax/aws-dax-subnetgroup.go
new file mode 100644
index 0000000000..581206b7a5
--- /dev/null
+++ b/goformation/cloudformation/dax/aws-dax-subnetgroup.go
@@ -0,0 +1,118 @@
+package dax
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubnetGroup AWS CloudFormation Resource (AWS::DAX::SubnetGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html
+type SubnetGroup struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // SubnetGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetgroupname
+ SubnetGroupName *types.Value `json:"SubnetGroupName,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-subnetgroup.html#cfn-dax-subnetgroup-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubnetGroup) AWSCloudFormationType() string {
+ return "AWS::DAX::SubnetGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SubnetGroup) MarshalJSON() ([]byte, error) {
+ type Properties SubnetGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SubnetGroup) UnmarshalJSON(b []byte) error {
+ type Properties SubnetGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SubnetGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/detective/aws-detective-graph.go b/goformation/cloudformation/detective/aws-detective-graph.go
new file mode 100644
index 0000000000..ec6e16ecb9
--- /dev/null
+++ b/goformation/cloudformation/detective/aws-detective-graph.go
@@ -0,0 +1,107 @@
+package detective
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Graph AWS CloudFormation Resource (AWS::Detective::Graph)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-graph.html
+type Graph struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-graph.html#cfn-detective-graph-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Graph) AWSCloudFormationType() string {
+ return "AWS::Detective::Graph"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Graph) MarshalJSON() ([]byte, error) {
+ type Properties Graph
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Graph) UnmarshalJSON(b []byte) error {
+ type Properties Graph
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Graph(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/detective/aws-detective-memberinvitation.go b/goformation/cloudformation/detective/aws-detective-memberinvitation.go
new file mode 100644
index 0000000000..6ded1546eb
--- /dev/null
+++ b/goformation/cloudformation/detective/aws-detective-memberinvitation.go
@@ -0,0 +1,128 @@
+package detective
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MemberInvitation AWS CloudFormation Resource (AWS::Detective::MemberInvitation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html
+type MemberInvitation struct {
+
+ // DisableEmailNotification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-disableemailnotification
+ DisableEmailNotification *types.Value `json:"DisableEmailNotification,omitempty"`
+
+ // GraphArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-grapharn
+ GraphArn *types.Value `json:"GraphArn,omitempty"`
+
+ // MemberEmailAddress AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-memberemailaddress
+ MemberEmailAddress *types.Value `json:"MemberEmailAddress,omitempty"`
+
+ // MemberId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-memberid
+ MemberId *types.Value `json:"MemberId,omitempty"`
+
+ // Message AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-detective-memberinvitation.html#cfn-detective-memberinvitation-message
+ Message *types.Value `json:"Message,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MemberInvitation) AWSCloudFormationType() string {
+ return "AWS::Detective::MemberInvitation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MemberInvitation) MarshalJSON() ([]byte, error) {
+ type Properties MemberInvitation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MemberInvitation) UnmarshalJSON(b []byte) error {
+ type Properties MemberInvitation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MemberInvitation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel.go b/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel.go
new file mode 100644
index 0000000000..e17e5b053c
--- /dev/null
+++ b/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel.go
@@ -0,0 +1,106 @@
+package devopsguru
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NotificationChannel AWS CloudFormation Resource (AWS::DevOpsGuru::NotificationChannel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-notificationchannel.html
+type NotificationChannel struct {
+
+ // Config AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-notificationchannel.html#cfn-devopsguru-notificationchannel-config
+ Config *NotificationChannel_NotificationChannelConfig `json:"Config,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NotificationChannel) AWSCloudFormationType() string {
+ return "AWS::DevOpsGuru::NotificationChannel"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NotificationChannel) MarshalJSON() ([]byte, error) {
+ type Properties NotificationChannel
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NotificationChannel) UnmarshalJSON(b []byte) error {
+ type Properties NotificationChannel
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NotificationChannel(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel_notificationchannelconfig.go b/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel_notificationchannelconfig.go
new file mode 100644
index 0000000000..9cad99b758
--- /dev/null
+++ b/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel_notificationchannelconfig.go
@@ -0,0 +1,35 @@
+package devopsguru
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// NotificationChannel_NotificationChannelConfig AWS CloudFormation Resource (AWS::DevOpsGuru::NotificationChannel.NotificationChannelConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-notificationchannelconfig.html
+type NotificationChannel_NotificationChannelConfig struct {
+
+ // Sns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-notificationchannelconfig.html#cfn-devopsguru-notificationchannel-notificationchannelconfig-sns
+ Sns *NotificationChannel_SnsChannelConfig `json:"Sns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NotificationChannel_NotificationChannelConfig) AWSCloudFormationType() string {
+ return "AWS::DevOpsGuru::NotificationChannel.NotificationChannelConfig"
+}
diff --git a/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel_snschannelconfig.go b/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel_snschannelconfig.go
new file mode 100644
index 0000000000..2a09faf80c
--- /dev/null
+++ b/goformation/cloudformation/devopsguru/aws-devopsguru-notificationchannel_snschannelconfig.go
@@ -0,0 +1,37 @@
+package devopsguru
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NotificationChannel_SnsChannelConfig AWS CloudFormation Resource (AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html
+type NotificationChannel_SnsChannelConfig struct {
+
+ // TopicArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-notificationchannel-snschannelconfig.html#cfn-devopsguru-notificationchannel-snschannelconfig-topicarn
+ TopicArn *types.Value `json:"TopicArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NotificationChannel_SnsChannelConfig) AWSCloudFormationType() string {
+ return "AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig"
+}
diff --git a/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection.go b/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection.go
new file mode 100644
index 0000000000..2d46be3cda
--- /dev/null
+++ b/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection.go
@@ -0,0 +1,106 @@
+package devopsguru
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceCollection AWS CloudFormation Resource (AWS::DevOpsGuru::ResourceCollection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-resourcecollection.html
+type ResourceCollection struct {
+
+ // ResourceCollectionFilter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-devopsguru-resourcecollection.html#cfn-devopsguru-resourcecollection-resourcecollectionfilter
+ ResourceCollectionFilter *ResourceCollection_ResourceCollectionFilter `json:"ResourceCollectionFilter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceCollection) AWSCloudFormationType() string {
+ return "AWS::DevOpsGuru::ResourceCollection"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResourceCollection) MarshalJSON() ([]byte, error) {
+ type Properties ResourceCollection
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResourceCollection) UnmarshalJSON(b []byte) error {
+ type Properties ResourceCollection
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResourceCollection(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection_cloudformationcollectionfilter.go b/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection_cloudformationcollectionfilter.go
new file mode 100644
index 0000000000..a5835628e4
--- /dev/null
+++ b/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection_cloudformationcollectionfilter.go
@@ -0,0 +1,37 @@
+package devopsguru
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceCollection_CloudFormationCollectionFilter AWS CloudFormation Resource (AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-cloudformationcollectionfilter.html
+type ResourceCollection_CloudFormationCollectionFilter struct {
+
+ // StackNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-cloudformationcollectionfilter.html#cfn-devopsguru-resourcecollection-cloudformationcollectionfilter-stacknames
+ StackNames *types.Value `json:"StackNames,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceCollection_CloudFormationCollectionFilter) AWSCloudFormationType() string {
+ return "AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter"
+}
diff --git a/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection_resourcecollectionfilter.go b/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection_resourcecollectionfilter.go
new file mode 100644
index 0000000000..4d8bbe5fa0
--- /dev/null
+++ b/goformation/cloudformation/devopsguru/aws-devopsguru-resourcecollection_resourcecollectionfilter.go
@@ -0,0 +1,35 @@
+package devopsguru
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceCollection_ResourceCollectionFilter AWS CloudFormation Resource (AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-resourcecollectionfilter.html
+type ResourceCollection_ResourceCollectionFilter struct {
+
+ // CloudFormation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-devopsguru-resourcecollection-resourcecollectionfilter.html#cfn-devopsguru-resourcecollection-resourcecollectionfilter-cloudformation
+ CloudFormation *ResourceCollection_CloudFormationCollectionFilter `json:"CloudFormation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceCollection_ResourceCollectionFilter) AWSCloudFormationType() string {
+ return "AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter"
+}
diff --git a/goformation/cloudformation/directoryservice/aws-directoryservice-microsoftad.go b/goformation/cloudformation/directoryservice/aws-directoryservice-microsoftad.go
new file mode 100644
index 0000000000..fdd5e7d332
--- /dev/null
+++ b/goformation/cloudformation/directoryservice/aws-directoryservice-microsoftad.go
@@ -0,0 +1,138 @@
+package directoryservice
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MicrosoftAD AWS CloudFormation Resource (AWS::DirectoryService::MicrosoftAD)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html
+type MicrosoftAD struct {
+
+ // CreateAlias AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-createalias
+ CreateAlias *types.Value `json:"CreateAlias,omitempty"`
+
+ // Edition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-edition
+ Edition *types.Value `json:"Edition,omitempty"`
+
+ // EnableSso AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-enablesso
+ EnableSso *types.Value `json:"EnableSso,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // ShortName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-shortname
+ ShortName *types.Value `json:"ShortName,omitempty"`
+
+ // VpcSettings AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-microsoftad.html#cfn-directoryservice-microsoftad-vpcsettings
+ VpcSettings *MicrosoftAD_VpcSettings `json:"VpcSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MicrosoftAD) AWSCloudFormationType() string {
+ return "AWS::DirectoryService::MicrosoftAD"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MicrosoftAD) MarshalJSON() ([]byte, error) {
+ type Properties MicrosoftAD
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MicrosoftAD) UnmarshalJSON(b []byte) error {
+ type Properties MicrosoftAD
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MicrosoftAD(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/directoryservice/aws-directoryservice-microsoftad_vpcsettings.go b/goformation/cloudformation/directoryservice/aws-directoryservice-microsoftad_vpcsettings.go
new file mode 100644
index 0000000000..c31a454465
--- /dev/null
+++ b/goformation/cloudformation/directoryservice/aws-directoryservice-microsoftad_vpcsettings.go
@@ -0,0 +1,42 @@
+package directoryservice
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MicrosoftAD_VpcSettings AWS CloudFormation Resource (AWS::DirectoryService::MicrosoftAD.VpcSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html
+type MicrosoftAD_VpcSettings struct {
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html#cfn-directoryservice-microsoftad-vpcsettings-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-microsoftad-vpcsettings.html#cfn-directoryservice-microsoftad-vpcsettings-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MicrosoftAD_VpcSettings) AWSCloudFormationType() string {
+ return "AWS::DirectoryService::MicrosoftAD.VpcSettings"
+}
diff --git a/goformation/cloudformation/directoryservice/aws-directoryservice-simplead.go b/goformation/cloudformation/directoryservice/aws-directoryservice-simplead.go
new file mode 100644
index 0000000000..163c6aa9f0
--- /dev/null
+++ b/goformation/cloudformation/directoryservice/aws-directoryservice-simplead.go
@@ -0,0 +1,143 @@
+package directoryservice
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SimpleAD AWS CloudFormation Resource (AWS::DirectoryService::SimpleAD)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html
+type SimpleAD struct {
+
+ // CreateAlias AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-createalias
+ CreateAlias *types.Value `json:"CreateAlias,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EnableSso AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-enablesso
+ EnableSso *types.Value `json:"EnableSso,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // ShortName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-shortname
+ ShortName *types.Value `json:"ShortName,omitempty"`
+
+ // Size AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-size
+ Size *types.Value `json:"Size,omitempty"`
+
+ // VpcSettings AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-directoryservice-simplead.html#cfn-directoryservice-simplead-vpcsettings
+ VpcSettings *SimpleAD_VpcSettings `json:"VpcSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SimpleAD) AWSCloudFormationType() string {
+ return "AWS::DirectoryService::SimpleAD"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SimpleAD) MarshalJSON() ([]byte, error) {
+ type Properties SimpleAD
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SimpleAD) UnmarshalJSON(b []byte) error {
+ type Properties SimpleAD
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SimpleAD(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/directoryservice/aws-directoryservice-simplead_vpcsettings.go b/goformation/cloudformation/directoryservice/aws-directoryservice-simplead_vpcsettings.go
new file mode 100644
index 0000000000..115d5eb11c
--- /dev/null
+++ b/goformation/cloudformation/directoryservice/aws-directoryservice-simplead_vpcsettings.go
@@ -0,0 +1,42 @@
+package directoryservice
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SimpleAD_VpcSettings AWS CloudFormation Resource (AWS::DirectoryService::SimpleAD.VpcSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html
+type SimpleAD_VpcSettings struct {
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html#cfn-directoryservice-simplead-vpcsettings-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-directoryservice-simplead-vpcsettings.html#cfn-directoryservice-simplead-vpcsettings-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SimpleAD_VpcSettings) AWSCloudFormationType() string {
+ return "AWS::DirectoryService::SimpleAD.VpcSettings"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy.go
new file mode 100644
index 0000000000..59dd06ec2f
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy.go
@@ -0,0 +1,129 @@
+package dlm
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html
+type LifecyclePolicy struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // ExecutionRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-executionrolearn
+ ExecutionRoleArn *types.Value `json:"ExecutionRoleArn,omitempty"`
+
+ // PolicyDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-policydetails
+ PolicyDetails *LifecyclePolicy_PolicyDetails `json:"PolicyDetails,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dlm-lifecyclepolicy.html#cfn-dlm-lifecyclepolicy-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LifecyclePolicy) MarshalJSON() ([]byte, error) {
+ type Properties LifecyclePolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LifecyclePolicy) UnmarshalJSON(b []byte) error {
+ type Properties LifecyclePolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LifecyclePolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_action.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_action.go
new file mode 100644
index 0000000000..7c2b9c0a5c
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_action.go
@@ -0,0 +1,42 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_Action AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html
+type LifecyclePolicy_Action struct {
+
+ // CrossRegionCopy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html#cfn-dlm-lifecyclepolicy-action-crossregioncopy
+ CrossRegionCopy []LifecyclePolicy_CrossRegionCopyAction `json:"CrossRegionCopy,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-action.html#cfn-dlm-lifecyclepolicy-action-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_Action) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.Action"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_createrule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_createrule.go
new file mode 100644
index 0000000000..2df8b8f2f1
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_createrule.go
@@ -0,0 +1,57 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_CreateRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.CreateRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html
+type LifecyclePolicy_CreateRule struct {
+
+ // CronExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-cronexpression
+ CronExpression *types.Value `json:"CronExpression,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // IntervalUnit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-intervalunit
+ IntervalUnit *types.Value `json:"IntervalUnit,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // Times AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-createrule.html#cfn-dlm-lifecyclepolicy-createrule-times
+ Times *types.Value `json:"Times,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_CreateRule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.CreateRule"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyaction.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyaction.go
new file mode 100644
index 0000000000..e209af6c8d
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyaction.go
@@ -0,0 +1,47 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_CrossRegionCopyAction AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.CrossRegionCopyAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html
+type LifecyclePolicy_CrossRegionCopyAction struct {
+
+ // EncryptionConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html#cfn-dlm-lifecyclepolicy-crossregioncopyaction-encryptionconfiguration
+ EncryptionConfiguration *LifecyclePolicy_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"`
+
+ // RetainRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html#cfn-dlm-lifecyclepolicy-crossregioncopyaction-retainrule
+ RetainRule *LifecyclePolicy_CrossRegionCopyRetainRule `json:"RetainRule,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyaction.html#cfn-dlm-lifecyclepolicy-crossregioncopyaction-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_CrossRegionCopyAction) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopydeprecaterule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopydeprecaterule.go
new file mode 100644
index 0000000000..e160d2cd61
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopydeprecaterule.go
@@ -0,0 +1,42 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_CrossRegionCopyDeprecateRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopydeprecaterule.html
+type LifecyclePolicy_CrossRegionCopyDeprecateRule struct {
+
+ // Interval AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopydeprecaterule.html#cfn-dlm-lifecyclepolicy-crossregioncopydeprecaterule-interval
+ Interval *types.Value `json:"Interval"`
+
+ // IntervalUnit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopydeprecaterule.html#cfn-dlm-lifecyclepolicy-crossregioncopydeprecaterule-intervalunit
+ IntervalUnit *types.Value `json:"IntervalUnit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_CrossRegionCopyDeprecateRule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyretainrule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyretainrule.go
new file mode 100644
index 0000000000..22f004e1a9
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyretainrule.go
@@ -0,0 +1,42 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_CrossRegionCopyRetainRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html
+type LifecyclePolicy_CrossRegionCopyRetainRule struct {
+
+ // Interval AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyretainrule-interval
+ Interval *types.Value `json:"Interval"`
+
+ // IntervalUnit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyretainrule-intervalunit
+ IntervalUnit *types.Value `json:"IntervalUnit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_CrossRegionCopyRetainRule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyrule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyrule.go
new file mode 100644
index 0000000000..d6a36d200d
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_crossregioncopyrule.go
@@ -0,0 +1,67 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_CrossRegionCopyRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.CrossRegionCopyRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html
+type LifecyclePolicy_CrossRegionCopyRule struct {
+
+ // CmkArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-cmkarn
+ CmkArn *types.Value `json:"CmkArn,omitempty"`
+
+ // CopyTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-copytags
+ CopyTags *types.Value `json:"CopyTags,omitempty"`
+
+ // DeprecateRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-deprecaterule
+ DeprecateRule *LifecyclePolicy_CrossRegionCopyDeprecateRule `json:"DeprecateRule,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-encrypted
+ Encrypted *types.Value `json:"Encrypted"`
+
+ // RetainRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-retainrule
+ RetainRule *LifecyclePolicy_CrossRegionCopyRetainRule `json:"RetainRule,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // TargetRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-targetregion
+ TargetRegion *types.Value `json:"TargetRegion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_CrossRegionCopyRule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.CrossRegionCopyRule"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_deprecaterule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_deprecaterule.go
new file mode 100644
index 0000000000..1872ad435c
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_deprecaterule.go
@@ -0,0 +1,47 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_DeprecateRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.DeprecateRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-deprecaterule.html
+type LifecyclePolicy_DeprecateRule struct {
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-deprecaterule.html#cfn-dlm-lifecyclepolicy-deprecaterule-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-deprecaterule.html#cfn-dlm-lifecyclepolicy-deprecaterule-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // IntervalUnit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-deprecaterule.html#cfn-dlm-lifecyclepolicy-deprecaterule-intervalunit
+ IntervalUnit *types.Value `json:"IntervalUnit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_DeprecateRule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.DeprecateRule"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_encryptionconfiguration.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_encryptionconfiguration.go
new file mode 100644
index 0000000000..63d6685f05
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_encryptionconfiguration.go
@@ -0,0 +1,42 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_EncryptionConfiguration AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.EncryptionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html
+type LifecyclePolicy_EncryptionConfiguration struct {
+
+ // CmkArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html#cfn-dlm-lifecyclepolicy-encryptionconfiguration-cmkarn
+ CmkArn *types.Value `json:"CmkArn,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-encryptionconfiguration.html#cfn-dlm-lifecyclepolicy-encryptionconfiguration-encrypted
+ Encrypted *types.Value `json:"Encrypted"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_EncryptionConfiguration) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.EncryptionConfiguration"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventparameters.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventparameters.go
new file mode 100644
index 0000000000..f56d45dcfe
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventparameters.go
@@ -0,0 +1,47 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_EventParameters AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.EventParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html
+type LifecyclePolicy_EventParameters struct {
+
+ // DescriptionRegex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html#cfn-dlm-lifecyclepolicy-eventparameters-descriptionregex
+ DescriptionRegex *types.Value `json:"DescriptionRegex,omitempty"`
+
+ // EventType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html#cfn-dlm-lifecyclepolicy-eventparameters-eventtype
+ EventType *types.Value `json:"EventType,omitempty"`
+
+ // SnapshotOwner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventparameters.html#cfn-dlm-lifecyclepolicy-eventparameters-snapshotowner
+ SnapshotOwner *types.Value `json:"SnapshotOwner,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_EventParameters) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.EventParameters"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventsource.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventsource.go
new file mode 100644
index 0000000000..28ccb5e555
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_eventsource.go
@@ -0,0 +1,42 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_EventSource AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.EventSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html
+type LifecyclePolicy_EventSource struct {
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html#cfn-dlm-lifecyclepolicy-eventsource-parameters
+ Parameters *LifecyclePolicy_EventParameters `json:"Parameters,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-eventsource.html#cfn-dlm-lifecyclepolicy-eventsource-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_EventSource) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.EventSource"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_fastrestorerule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_fastrestorerule.go
new file mode 100644
index 0000000000..a4f6ed735c
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_fastrestorerule.go
@@ -0,0 +1,52 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_FastRestoreRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.FastRestoreRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-fastrestorerule.html
+type LifecyclePolicy_FastRestoreRule struct {
+
+ // AvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-fastrestorerule.html#cfn-dlm-lifecyclepolicy-fastrestorerule-availabilityzones
+ AvailabilityZones *types.Value `json:"AvailabilityZones,omitempty"`
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-fastrestorerule.html#cfn-dlm-lifecyclepolicy-fastrestorerule-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-fastrestorerule.html#cfn-dlm-lifecyclepolicy-fastrestorerule-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // IntervalUnit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-fastrestorerule.html#cfn-dlm-lifecyclepolicy-fastrestorerule-intervalunit
+ IntervalUnit *types.Value `json:"IntervalUnit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_FastRestoreRule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.FastRestoreRule"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_parameters.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_parameters.go
new file mode 100644
index 0000000000..1988edb363
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_parameters.go
@@ -0,0 +1,42 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_Parameters AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.Parameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html
+type LifecyclePolicy_Parameters struct {
+
+ // ExcludeBootVolume AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html#cfn-dlm-lifecyclepolicy-parameters-excludebootvolume
+ ExcludeBootVolume *types.Value `json:"ExcludeBootVolume,omitempty"`
+
+ // NoReboot AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-parameters.html#cfn-dlm-lifecyclepolicy-parameters-noreboot
+ NoReboot *types.Value `json:"NoReboot,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_Parameters) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.Parameters"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_policydetails.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_policydetails.go
new file mode 100644
index 0000000000..2a2b0145d4
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_policydetails.go
@@ -0,0 +1,73 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_PolicyDetails AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.PolicyDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html
+type LifecyclePolicy_PolicyDetails struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-actions
+ Actions []LifecyclePolicy_Action `json:"Actions,omitempty"`
+
+ // EventSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-eventsource
+ EventSource *LifecyclePolicy_EventSource `json:"EventSource,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-parameters
+ Parameters *LifecyclePolicy_Parameters `json:"Parameters,omitempty"`
+
+ // PolicyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-policytype
+ PolicyType *types.Value `json:"PolicyType,omitempty"`
+
+ // ResourceLocations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-resourcelocations
+ ResourceLocations *types.Value `json:"ResourceLocations,omitempty"`
+
+ // ResourceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-resourcetypes
+ ResourceTypes *types.Value `json:"ResourceTypes,omitempty"`
+
+ // Schedules AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-schedules
+ Schedules []LifecyclePolicy_Schedule `json:"Schedules,omitempty"`
+
+ // TargetTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-targettags
+ TargetTags []cloudformation.Tag `json:"TargetTags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_PolicyDetails) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.PolicyDetails"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_retainrule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_retainrule.go
new file mode 100644
index 0000000000..ecb1b3f037
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_retainrule.go
@@ -0,0 +1,47 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_RetainRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.RetainRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html
+type LifecyclePolicy_RetainRule struct {
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html#cfn-dlm-lifecyclepolicy-retainrule-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html#cfn-dlm-lifecyclepolicy-retainrule-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // IntervalUnit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-retainrule.html#cfn-dlm-lifecyclepolicy-retainrule-intervalunit
+ IntervalUnit *types.Value `json:"IntervalUnit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_RetainRule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.RetainRule"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_schedule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_schedule.go
new file mode 100644
index 0000000000..1ab5a20168
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_schedule.go
@@ -0,0 +1,83 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_Schedule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.Schedule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html
+type LifecyclePolicy_Schedule struct {
+
+ // CopyTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-copytags
+ CopyTags *types.Value `json:"CopyTags,omitempty"`
+
+ // CreateRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-createrule
+ CreateRule *LifecyclePolicy_CreateRule `json:"CreateRule,omitempty"`
+
+ // CrossRegionCopyRules AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-crossregioncopyrules
+ CrossRegionCopyRules []LifecyclePolicy_CrossRegionCopyRule `json:"CrossRegionCopyRules,omitempty"`
+
+ // DeprecateRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-deprecaterule
+ DeprecateRule *LifecyclePolicy_DeprecateRule `json:"DeprecateRule,omitempty"`
+
+ // FastRestoreRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-fastrestorerule
+ FastRestoreRule *LifecyclePolicy_FastRestoreRule `json:"FastRestoreRule,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RetainRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-retainrule
+ RetainRule *LifecyclePolicy_RetainRule `json:"RetainRule,omitempty"`
+
+ // ShareRules AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-sharerules
+ ShareRules []LifecyclePolicy_ShareRule `json:"ShareRules,omitempty"`
+
+ // TagsToAdd AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-tagstoadd
+ TagsToAdd []cloudformation.Tag `json:"TagsToAdd,omitempty"`
+
+ // VariableTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-schedule.html#cfn-dlm-lifecyclepolicy-schedule-variabletags
+ VariableTags []cloudformation.Tag `json:"VariableTags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_Schedule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.Schedule"
+}
diff --git a/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_sharerule.go b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_sharerule.go
new file mode 100644
index 0000000000..1779e9765e
--- /dev/null
+++ b/goformation/cloudformation/dlm/aws-dlm-lifecyclepolicy_sharerule.go
@@ -0,0 +1,47 @@
+package dlm
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LifecyclePolicy_ShareRule AWS CloudFormation Resource (AWS::DLM::LifecyclePolicy.ShareRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html
+type LifecyclePolicy_ShareRule struct {
+
+ // TargetAccounts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html#cfn-dlm-lifecyclepolicy-sharerule-targetaccounts
+ TargetAccounts *types.Value `json:"TargetAccounts,omitempty"`
+
+ // UnshareInterval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html#cfn-dlm-lifecyclepolicy-sharerule-unshareinterval
+ UnshareInterval *types.Value `json:"UnshareInterval,omitempty"`
+
+ // UnshareIntervalUnit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-sharerule.html#cfn-dlm-lifecyclepolicy-sharerule-unshareintervalunit
+ UnshareIntervalUnit *types.Value `json:"UnshareIntervalUnit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LifecyclePolicy_ShareRule) AWSCloudFormationType() string {
+ return "AWS::DLM::LifecyclePolicy.ShareRule"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-certificate.go b/goformation/cloudformation/dms/aws-dms-certificate.go
new file mode 100644
index 0000000000..3fe147d8b3
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-certificate.go
@@ -0,0 +1,118 @@
+package dms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate AWS CloudFormation Resource (AWS::DMS::Certificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html
+type Certificate struct {
+
+ // CertificateIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificateidentifier
+ CertificateIdentifier *types.Value `json:"CertificateIdentifier,omitempty"`
+
+ // CertificatePem AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatepem
+ CertificatePem *types.Value `json:"CertificatePem,omitempty"`
+
+ // CertificateWallet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html#cfn-dms-certificate-certificatewallet
+ CertificateWallet *types.Value `json:"CertificateWallet,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate) AWSCloudFormationType() string {
+ return "AWS::DMS::Certificate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Certificate) MarshalJSON() ([]byte, error) {
+ type Properties Certificate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Certificate) UnmarshalJSON(b []byte) error {
+ type Properties Certificate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Certificate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint.go b/goformation/cloudformation/dms/aws-dms-endpoint.go
new file mode 100644
index 0000000000..d1af5e7aad
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint.go
@@ -0,0 +1,254 @@
+package dms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint AWS CloudFormation Resource (AWS::DMS::Endpoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html
+type Endpoint struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // DocDbSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-docdbsettings
+ DocDbSettings *Endpoint_DocDbSettings `json:"DocDbSettings,omitempty"`
+
+ // DynamoDbSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-dynamodbsettings
+ DynamoDbSettings *Endpoint_DynamoDbSettings `json:"DynamoDbSettings,omitempty"`
+
+ // ElasticsearchSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-elasticsearchsettings
+ ElasticsearchSettings *Endpoint_ElasticsearchSettings `json:"ElasticsearchSettings,omitempty"`
+
+ // EndpointIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointidentifier
+ EndpointIdentifier *types.Value `json:"EndpointIdentifier,omitempty"`
+
+ // EndpointType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-endpointtype
+ EndpointType *types.Value `json:"EndpointType,omitempty"`
+
+ // EngineName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-enginename
+ EngineName *types.Value `json:"EngineName,omitempty"`
+
+ // ExtraConnectionAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-extraconnectionattributes
+ ExtraConnectionAttributes *types.Value `json:"ExtraConnectionAttributes,omitempty"`
+
+ // IbmDb2Settings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-ibmdb2settings
+ IbmDb2Settings *Endpoint_IbmDb2Settings `json:"IbmDb2Settings,omitempty"`
+
+ // KafkaSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kafkasettings
+ KafkaSettings *Endpoint_KafkaSettings `json:"KafkaSettings,omitempty"`
+
+ // KinesisSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kinesissettings
+ KinesisSettings *Endpoint_KinesisSettings `json:"KinesisSettings,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // MicrosoftSqlServerSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-microsoftsqlserversettings
+ MicrosoftSqlServerSettings *Endpoint_MicrosoftSqlServerSettings `json:"MicrosoftSqlServerSettings,omitempty"`
+
+ // MongoDbSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-mongodbsettings
+ MongoDbSettings *Endpoint_MongoDbSettings `json:"MongoDbSettings,omitempty"`
+
+ // MySqlSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-mysqlsettings
+ MySqlSettings *Endpoint_MySqlSettings `json:"MySqlSettings,omitempty"`
+
+ // NeptuneSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-neptunesettings
+ NeptuneSettings *Endpoint_NeptuneSettings `json:"NeptuneSettings,omitempty"`
+
+ // OracleSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-oraclesettings
+ OracleSettings *Endpoint_OracleSettings `json:"OracleSettings,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // PostgreSqlSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-postgresqlsettings
+ PostgreSqlSettings *Endpoint_PostgreSqlSettings `json:"PostgreSqlSettings,omitempty"`
+
+ // RedisSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-redissettings
+ RedisSettings *Endpoint_RedisSettings `json:"RedisSettings,omitempty"`
+
+ // RedshiftSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-redshiftsettings
+ RedshiftSettings *Endpoint_RedshiftSettings `json:"RedshiftSettings,omitempty"`
+
+ // ResourceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-resourceidentifier
+ ResourceIdentifier *types.Value `json:"ResourceIdentifier,omitempty"`
+
+ // S3Settings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-s3settings
+ S3Settings *Endpoint_S3Settings `json:"S3Settings,omitempty"`
+
+ // ServerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-servername
+ ServerName *types.Value `json:"ServerName,omitempty"`
+
+ // SslMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-sslmode
+ SslMode *types.Value `json:"SslMode,omitempty"`
+
+ // SybaseSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-sybasesettings
+ SybaseSettings *Endpoint_SybaseSettings `json:"SybaseSettings,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html#cfn-dms-endpoint-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Endpoint) MarshalJSON() ([]byte, error) {
+ type Properties Endpoint
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Endpoint) UnmarshalJSON(b []byte) error {
+ type Properties Endpoint
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Endpoint(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_docdbsettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_docdbsettings.go
new file mode 100644
index 0000000000..f2c17cc211
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_docdbsettings.go
@@ -0,0 +1,42 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_DocDbSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.DocDbSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html
+type Endpoint_DocDbSettings struct {
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html#cfn-dms-endpoint-docdbsettings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html#cfn-dms-endpoint-docdbsettings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_DocDbSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.DocDbSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_dynamodbsettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_dynamodbsettings.go
new file mode 100644
index 0000000000..0397a5e45d
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_dynamodbsettings.go
@@ -0,0 +1,37 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_DynamoDbSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.DynamoDbSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html
+type Endpoint_DynamoDbSettings struct {
+
+ // ServiceAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html#cfn-dms-endpoint-dynamodbsettings-serviceaccessrolearn
+ ServiceAccessRoleArn *types.Value `json:"ServiceAccessRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_DynamoDbSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.DynamoDbSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_elasticsearchsettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_elasticsearchsettings.go
new file mode 100644
index 0000000000..99cf92c866
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_elasticsearchsettings.go
@@ -0,0 +1,52 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_ElasticsearchSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.ElasticsearchSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html
+type Endpoint_ElasticsearchSettings struct {
+
+ // EndpointUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-endpointuri
+ EndpointUri *types.Value `json:"EndpointUri,omitempty"`
+
+ // ErrorRetryDuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-errorretryduration
+ ErrorRetryDuration *types.Value `json:"ErrorRetryDuration,omitempty"`
+
+ // FullLoadErrorPercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-fullloaderrorpercentage
+ FullLoadErrorPercentage *types.Value `json:"FullLoadErrorPercentage,omitempty"`
+
+ // ServiceAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html#cfn-dms-endpoint-elasticsearchsettings-serviceaccessrolearn
+ ServiceAccessRoleArn *types.Value `json:"ServiceAccessRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_ElasticsearchSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.ElasticsearchSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_ibmdb2settings.go b/goformation/cloudformation/dms/aws-dms-endpoint_ibmdb2settings.go
new file mode 100644
index 0000000000..7c316ded80
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_ibmdb2settings.go
@@ -0,0 +1,42 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_IbmDb2Settings AWS CloudFormation Resource (AWS::DMS::Endpoint.IbmDb2Settings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html
+type Endpoint_IbmDb2Settings struct {
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html#cfn-dms-endpoint-ibmdb2settings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_IbmDb2Settings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.IbmDb2Settings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_kafkasettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_kafkasettings.go
new file mode 100644
index 0000000000..13e1d66319
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_kafkasettings.go
@@ -0,0 +1,107 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_KafkaSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.KafkaSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html
+type Endpoint_KafkaSettings struct {
+
+ // Broker AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-broker
+ Broker *types.Value `json:"Broker,omitempty"`
+
+ // IncludeControlDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includecontroldetails
+ IncludeControlDetails *types.Value `json:"IncludeControlDetails,omitempty"`
+
+ // IncludeNullAndEmpty AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includenullandempty
+ IncludeNullAndEmpty *types.Value `json:"IncludeNullAndEmpty,omitempty"`
+
+ // IncludeTableAlterOperations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includetablealteroperations
+ IncludeTableAlterOperations *types.Value `json:"IncludeTableAlterOperations,omitempty"`
+
+ // IncludeTransactionDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-includetransactiondetails
+ IncludeTransactionDetails *types.Value `json:"IncludeTransactionDetails,omitempty"`
+
+ // NoHexPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-nohexprefix
+ NoHexPrefix *types.Value `json:"NoHexPrefix,omitempty"`
+
+ // PartitionIncludeSchemaTable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-partitionincludeschematable
+ PartitionIncludeSchemaTable *types.Value `json:"PartitionIncludeSchemaTable,omitempty"`
+
+ // SaslPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-saslpassword
+ SaslPassword *types.Value `json:"SaslPassword,omitempty"`
+
+ // SaslUserName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-saslusername
+ SaslUserName *types.Value `json:"SaslUserName,omitempty"`
+
+ // SecurityProtocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-securityprotocol
+ SecurityProtocol *types.Value `json:"SecurityProtocol,omitempty"`
+
+ // SslCaCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslcacertificatearn
+ SslCaCertificateArn *types.Value `json:"SslCaCertificateArn,omitempty"`
+
+ // SslClientCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientcertificatearn
+ SslClientCertificateArn *types.Value `json:"SslClientCertificateArn,omitempty"`
+
+ // SslClientKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientkeyarn
+ SslClientKeyArn *types.Value `json:"SslClientKeyArn,omitempty"`
+
+ // SslClientKeyPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-sslclientkeypassword
+ SslClientKeyPassword *types.Value `json:"SslClientKeyPassword,omitempty"`
+
+ // Topic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html#cfn-dms-endpoint-kafkasettings-topic
+ Topic *types.Value `json:"Topic,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_KafkaSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.KafkaSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_kinesissettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_kinesissettings.go
new file mode 100644
index 0000000000..b1e423a77f
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_kinesissettings.go
@@ -0,0 +1,77 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_KinesisSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.KinesisSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html
+type Endpoint_KinesisSettings struct {
+
+ // IncludeControlDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includecontroldetails
+ IncludeControlDetails *types.Value `json:"IncludeControlDetails,omitempty"`
+
+ // IncludeNullAndEmpty AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includenullandempty
+ IncludeNullAndEmpty *types.Value `json:"IncludeNullAndEmpty,omitempty"`
+
+ // IncludeTableAlterOperations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includetablealteroperations
+ IncludeTableAlterOperations *types.Value `json:"IncludeTableAlterOperations,omitempty"`
+
+ // IncludeTransactionDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-includetransactiondetails
+ IncludeTransactionDetails *types.Value `json:"IncludeTransactionDetails,omitempty"`
+
+ // MessageFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-messageformat
+ MessageFormat *types.Value `json:"MessageFormat,omitempty"`
+
+ // NoHexPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-nohexprefix
+ NoHexPrefix *types.Value `json:"NoHexPrefix,omitempty"`
+
+ // PartitionIncludeSchemaTable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-partitionincludeschematable
+ PartitionIncludeSchemaTable *types.Value `json:"PartitionIncludeSchemaTable,omitempty"`
+
+ // ServiceAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-serviceaccessrolearn
+ ServiceAccessRoleArn *types.Value `json:"ServiceAccessRoleArn,omitempty"`
+
+ // StreamArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html#cfn-dms-endpoint-kinesissettings-streamarn
+ StreamArn *types.Value `json:"StreamArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_KinesisSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.KinesisSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_microsoftsqlserversettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_microsoftsqlserversettings.go
new file mode 100644
index 0000000000..7c54e4d39e
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_microsoftsqlserversettings.go
@@ -0,0 +1,42 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_MicrosoftSqlServerSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.MicrosoftSqlServerSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html
+type Endpoint_MicrosoftSqlServerSettings struct {
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html#cfn-dms-endpoint-microsoftsqlserversettings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_MicrosoftSqlServerSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.MicrosoftSqlServerSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_mongodbsettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_mongodbsettings.go
new file mode 100644
index 0000000000..e520d7da66
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_mongodbsettings.go
@@ -0,0 +1,97 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_MongoDbSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.MongoDbSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html
+type Endpoint_MongoDbSettings struct {
+
+ // AuthMechanism AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authmechanism
+ AuthMechanism *types.Value `json:"AuthMechanism,omitempty"`
+
+ // AuthSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authsource
+ AuthSource *types.Value `json:"AuthSource,omitempty"`
+
+ // AuthType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-authtype
+ AuthType *types.Value `json:"AuthType,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // DocsToInvestigate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-docstoinvestigate
+ DocsToInvestigate *types.Value `json:"DocsToInvestigate,omitempty"`
+
+ // ExtractDocId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-extractdocid
+ ExtractDocId *types.Value `json:"ExtractDocId,omitempty"`
+
+ // NestingLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-nestinglevel
+ NestingLevel *types.Value `json:"NestingLevel,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // ServerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-servername
+ ServerName *types.Value `json:"ServerName,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html#cfn-dms-endpoint-mongodbsettings-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_MongoDbSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.MongoDbSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_mysqlsettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_mysqlsettings.go
new file mode 100644
index 0000000000..fb20a7ae69
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_mysqlsettings.go
@@ -0,0 +1,42 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_MySqlSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.MySqlSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html
+type Endpoint_MySqlSettings struct {
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html#cfn-dms-endpoint-mysqlsettings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_MySqlSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.MySqlSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_neptunesettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_neptunesettings.go
new file mode 100644
index 0000000000..a836b1ca35
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_neptunesettings.go
@@ -0,0 +1,67 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_NeptuneSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.NeptuneSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html
+type Endpoint_NeptuneSettings struct {
+
+ // ErrorRetryDuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-errorretryduration
+ ErrorRetryDuration *types.Value `json:"ErrorRetryDuration,omitempty"`
+
+ // IamAuthEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-iamauthenabled
+ IamAuthEnabled *types.Value `json:"IamAuthEnabled,omitempty"`
+
+ // MaxFileSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-maxfilesize
+ MaxFileSize *types.Value `json:"MaxFileSize,omitempty"`
+
+ // MaxRetryCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-maxretrycount
+ MaxRetryCount *types.Value `json:"MaxRetryCount,omitempty"`
+
+ // S3BucketFolder AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-s3bucketfolder
+ S3BucketFolder *types.Value `json:"S3BucketFolder,omitempty"`
+
+ // S3BucketName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-s3bucketname
+ S3BucketName *types.Value `json:"S3BucketName,omitempty"`
+
+ // ServiceAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html#cfn-dms-endpoint-neptunesettings-serviceaccessrolearn
+ ServiceAccessRoleArn *types.Value `json:"ServiceAccessRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_NeptuneSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.NeptuneSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_oraclesettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_oraclesettings.go
new file mode 100644
index 0000000000..93ea4f4ed8
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_oraclesettings.go
@@ -0,0 +1,52 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_OracleSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.OracleSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html
+type Endpoint_OracleSettings struct {
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerOracleAsmAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-secretsmanageroracleasmaccessrolearn
+ SecretsManagerOracleAsmAccessRoleArn *types.Value `json:"SecretsManagerOracleAsmAccessRoleArn,omitempty"`
+
+ // SecretsManagerOracleAsmSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-secretsmanageroracleasmsecretid
+ SecretsManagerOracleAsmSecretId *types.Value `json:"SecretsManagerOracleAsmSecretId,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html#cfn-dms-endpoint-oraclesettings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_OracleSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.OracleSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_postgresqlsettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_postgresqlsettings.go
new file mode 100644
index 0000000000..374703b1ae
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_postgresqlsettings.go
@@ -0,0 +1,42 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_PostgreSqlSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.PostgreSqlSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html
+type Endpoint_PostgreSqlSettings struct {
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html#cfn-dms-endpoint-postgresqlsettings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_PostgreSqlSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.PostgreSqlSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_redissettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_redissettings.go
new file mode 100644
index 0000000000..9ef0695fab
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_redissettings.go
@@ -0,0 +1,67 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_RedisSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.RedisSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html
+type Endpoint_RedisSettings struct {
+
+ // AuthPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authpassword
+ AuthPassword *types.Value `json:"AuthPassword,omitempty"`
+
+ // AuthType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authtype
+ AuthType *types.Value `json:"AuthType,omitempty"`
+
+ // AuthUserName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-authusername
+ AuthUserName *types.Value `json:"AuthUserName,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // ServerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-servername
+ ServerName *types.Value `json:"ServerName,omitempty"`
+
+ // SslCaCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-sslcacertificatearn
+ SslCaCertificateArn *types.Value `json:"SslCaCertificateArn,omitempty"`
+
+ // SslSecurityProtocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html#cfn-dms-endpoint-redissettings-sslsecurityprotocol
+ SslSecurityProtocol *types.Value `json:"SslSecurityProtocol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_RedisSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.RedisSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_redshiftsettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_redshiftsettings.go
new file mode 100644
index 0000000000..3f12a159a8
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_redshiftsettings.go
@@ -0,0 +1,42 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_RedshiftSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.RedshiftSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html
+type Endpoint_RedshiftSettings struct {
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html#cfn-dms-endpoint-redshiftsettings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_RedshiftSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.RedshiftSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_s3settings.go b/goformation/cloudformation/dms/aws-dms-endpoint_s3settings.go
new file mode 100644
index 0000000000..7592ae8744
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_s3settings.go
@@ -0,0 +1,67 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_S3Settings AWS CloudFormation Resource (AWS::DMS::Endpoint.S3Settings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html
+type Endpoint_S3Settings struct {
+
+ // BucketFolder AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-bucketfolder
+ BucketFolder *types.Value `json:"BucketFolder,omitempty"`
+
+ // BucketName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // CompressionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-compressiontype
+ CompressionType *types.Value `json:"CompressionType,omitempty"`
+
+ // CsvDelimiter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvdelimiter
+ CsvDelimiter *types.Value `json:"CsvDelimiter,omitempty"`
+
+ // CsvRowDelimiter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-csvrowdelimiter
+ CsvRowDelimiter *types.Value `json:"CsvRowDelimiter,omitempty"`
+
+ // ExternalTableDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-externaltabledefinition
+ ExternalTableDefinition *types.Value `json:"ExternalTableDefinition,omitempty"`
+
+ // ServiceAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html#cfn-dms-endpoint-s3settings-serviceaccessrolearn
+ ServiceAccessRoleArn *types.Value `json:"ServiceAccessRoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_S3Settings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.S3Settings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-endpoint_sybasesettings.go b/goformation/cloudformation/dms/aws-dms-endpoint_sybasesettings.go
new file mode 100644
index 0000000000..29fa548557
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-endpoint_sybasesettings.go
@@ -0,0 +1,42 @@
+package dms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Endpoint_SybaseSettings AWS CloudFormation Resource (AWS::DMS::Endpoint.SybaseSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html
+type Endpoint_SybaseSettings struct {
+
+ // SecretsManagerAccessRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html#cfn-dms-endpoint-sybasesettings-secretsmanageraccessrolearn
+ SecretsManagerAccessRoleArn *types.Value `json:"SecretsManagerAccessRoleArn,omitempty"`
+
+ // SecretsManagerSecretId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html#cfn-dms-endpoint-sybasesettings-secretsmanagersecretid
+ SecretsManagerSecretId *types.Value `json:"SecretsManagerSecretId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Endpoint_SybaseSettings) AWSCloudFormationType() string {
+ return "AWS::DMS::Endpoint.SybaseSettings"
+}
diff --git a/goformation/cloudformation/dms/aws-dms-eventsubscription.go b/goformation/cloudformation/dms/aws-dms-eventsubscription.go
new file mode 100644
index 0000000000..d9ffe2a435
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-eventsubscription.go
@@ -0,0 +1,139 @@
+package dms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventSubscription AWS CloudFormation Resource (AWS::DMS::EventSubscription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html
+type EventSubscription struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // EventCategories AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-eventcategories
+ EventCategories *types.Value `json:"EventCategories,omitempty"`
+
+ // SnsTopicArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-snstopicarn
+ SnsTopicArn *types.Value `json:"SnsTopicArn,omitempty"`
+
+ // SourceIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-sourceids
+ SourceIds *types.Value `json:"SourceIds,omitempty"`
+
+ // SourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-sourcetype
+ SourceType *types.Value `json:"SourceType,omitempty"`
+
+ // SubscriptionName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-subscriptionname
+ SubscriptionName *types.Value `json:"SubscriptionName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html#cfn-dms-eventsubscription-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventSubscription) AWSCloudFormationType() string {
+ return "AWS::DMS::EventSubscription"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EventSubscription) MarshalJSON() ([]byte, error) {
+ type Properties EventSubscription
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EventSubscription) UnmarshalJSON(b []byte) error {
+ type Properties EventSubscription
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EventSubscription(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dms/aws-dms-replicationinstance.go b/goformation/cloudformation/dms/aws-dms-replicationinstance.go
new file mode 100644
index 0000000000..c3f806e9de
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-replicationinstance.go
@@ -0,0 +1,179 @@
+package dms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationInstance AWS CloudFormation Resource (AWS::DMS::ReplicationInstance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html
+type ReplicationInstance struct {
+
+ // AllocatedStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allocatedstorage
+ AllocatedStorage *types.Value `json:"AllocatedStorage,omitempty"`
+
+ // AllowMajorVersionUpgrade AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-allowmajorversionupgrade
+ AllowMajorVersionUpgrade *types.Value `json:"AllowMajorVersionUpgrade,omitempty"`
+
+ // AutoMinorVersionUpgrade AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-autominorversionupgrade
+ AutoMinorVersionUpgrade *types.Value `json:"AutoMinorVersionUpgrade,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-engineversion
+ EngineVersion *types.Value `json:"EngineVersion,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // MultiAZ AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-multiaz
+ MultiAZ *types.Value `json:"MultiAZ,omitempty"`
+
+ // PreferredMaintenanceWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-preferredmaintenancewindow
+ PreferredMaintenanceWindow *types.Value `json:"PreferredMaintenanceWindow,omitempty"`
+
+ // PubliclyAccessible AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-publiclyaccessible
+ PubliclyAccessible *types.Value `json:"PubliclyAccessible,omitempty"`
+
+ // ReplicationInstanceClass AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceclass
+ ReplicationInstanceClass *types.Value `json:"ReplicationInstanceClass,omitempty"`
+
+ // ReplicationInstanceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationinstanceidentifier
+ ReplicationInstanceIdentifier *types.Value `json:"ReplicationInstanceIdentifier,omitempty"`
+
+ // ReplicationSubnetGroupIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-replicationsubnetgroupidentifier
+ ReplicationSubnetGroupIdentifier *types.Value `json:"ReplicationSubnetGroupIdentifier,omitempty"`
+
+ // ResourceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-resourceidentifier
+ ResourceIdentifier *types.Value `json:"ResourceIdentifier,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcSecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html#cfn-dms-replicationinstance-vpcsecuritygroupids
+ VpcSecurityGroupIds *types.Value `json:"VpcSecurityGroupIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationInstance) AWSCloudFormationType() string {
+ return "AWS::DMS::ReplicationInstance"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReplicationInstance) MarshalJSON() ([]byte, error) {
+ type Properties ReplicationInstance
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReplicationInstance) UnmarshalJSON(b []byte) error {
+ type Properties ReplicationInstance
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReplicationInstance(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dms/aws-dms-replicationsubnetgroup.go b/goformation/cloudformation/dms/aws-dms-replicationsubnetgroup.go
new file mode 100644
index 0000000000..4eb8ecabc7
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-replicationsubnetgroup.go
@@ -0,0 +1,124 @@
+package dms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationSubnetGroup AWS CloudFormation Resource (AWS::DMS::ReplicationSubnetGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html
+type ReplicationSubnetGroup struct {
+
+ // ReplicationSubnetGroupDescription AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-replicationsubnetgroupdescription
+ ReplicationSubnetGroupDescription *types.Value `json:"ReplicationSubnetGroupDescription,omitempty"`
+
+ // ReplicationSubnetGroupIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-replicationsubnetgroupidentifier
+ ReplicationSubnetGroupIdentifier *types.Value `json:"ReplicationSubnetGroupIdentifier,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html#cfn-dms-replicationsubnetgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationSubnetGroup) AWSCloudFormationType() string {
+ return "AWS::DMS::ReplicationSubnetGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReplicationSubnetGroup) MarshalJSON() ([]byte, error) {
+ type Properties ReplicationSubnetGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReplicationSubnetGroup) UnmarshalJSON(b []byte) error {
+ type Properties ReplicationSubnetGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReplicationSubnetGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dms/aws-dms-replicationtask.go b/goformation/cloudformation/dms/aws-dms-replicationtask.go
new file mode 100644
index 0000000000..e8beb26fcd
--- /dev/null
+++ b/goformation/cloudformation/dms/aws-dms-replicationtask.go
@@ -0,0 +1,169 @@
+package dms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationTask AWS CloudFormation Resource (AWS::DMS::ReplicationTask)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html
+type ReplicationTask struct {
+
+ // CdcStartPosition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstartposition
+ CdcStartPosition *types.Value `json:"CdcStartPosition,omitempty"`
+
+ // CdcStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstarttime
+ CdcStartTime *types.Value `json:"CdcStartTime,omitempty"`
+
+ // CdcStopPosition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-cdcstopposition
+ CdcStopPosition *types.Value `json:"CdcStopPosition,omitempty"`
+
+ // MigrationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-migrationtype
+ MigrationType *types.Value `json:"MigrationType,omitempty"`
+
+ // ReplicationInstanceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationinstancearn
+ ReplicationInstanceArn *types.Value `json:"ReplicationInstanceArn,omitempty"`
+
+ // ReplicationTaskIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtaskidentifier
+ ReplicationTaskIdentifier *types.Value `json:"ReplicationTaskIdentifier,omitempty"`
+
+ // ReplicationTaskSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-replicationtasksettings
+ ReplicationTaskSettings *types.Value `json:"ReplicationTaskSettings,omitempty"`
+
+ // ResourceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-resourceidentifier
+ ResourceIdentifier *types.Value `json:"ResourceIdentifier,omitempty"`
+
+ // SourceEndpointArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-sourceendpointarn
+ SourceEndpointArn *types.Value `json:"SourceEndpointArn,omitempty"`
+
+ // TableMappings AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tablemappings
+ TableMappings *types.Value `json:"TableMappings,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TargetEndpointArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-targetendpointarn
+ TargetEndpointArn *types.Value `json:"TargetEndpointArn,omitempty"`
+
+ // TaskData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-taskdata
+ TaskData *types.Value `json:"TaskData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationTask) AWSCloudFormationType() string {
+ return "AWS::DMS::ReplicationTask"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReplicationTask) MarshalJSON() ([]byte, error) {
+ type Properties ReplicationTask
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReplicationTask) UnmarshalJSON(b []byte) error {
+ type Properties ReplicationTask
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReplicationTask(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/docdb/aws-docdb-dbcluster.go b/goformation/cloudformation/docdb/aws-docdb-dbcluster.go
new file mode 100644
index 0000000000..22cb2bb9c1
--- /dev/null
+++ b/goformation/cloudformation/docdb/aws-docdb-dbcluster.go
@@ -0,0 +1,194 @@
+package docdb
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DBCluster AWS CloudFormation Resource (AWS::DocDB::DBCluster)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html
+type DBCluster struct {
+
+ // AvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-availabilityzones
+ AvailabilityZones *types.Value `json:"AvailabilityZones,omitempty"`
+
+ // BackupRetentionPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-backupretentionperiod
+ BackupRetentionPeriod *types.Value `json:"BackupRetentionPeriod,omitempty"`
+
+ // DBClusterIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusteridentifier
+ DBClusterIdentifier *types.Value `json:"DBClusterIdentifier,omitempty"`
+
+ // DBClusterParameterGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbclusterparametergroupname
+ DBClusterParameterGroupName *types.Value `json:"DBClusterParameterGroupName,omitempty"`
+
+ // DBSubnetGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-dbsubnetgroupname
+ DBSubnetGroupName *types.Value `json:"DBSubnetGroupName,omitempty"`
+
+ // DeletionProtection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-deletionprotection
+ DeletionProtection *types.Value `json:"DeletionProtection,omitempty"`
+
+ // EnableCloudwatchLogsExports AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-enablecloudwatchlogsexports
+ EnableCloudwatchLogsExports *types.Value `json:"EnableCloudwatchLogsExports,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-engineversion
+ EngineVersion *types.Value `json:"EngineVersion,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // MasterUserPassword AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masteruserpassword
+ MasterUserPassword *types.Value `json:"MasterUserPassword,omitempty"`
+
+ // MasterUsername AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-masterusername
+ MasterUsername *types.Value `json:"MasterUsername,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // PreferredBackupWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-preferredbackupwindow
+ PreferredBackupWindow *types.Value `json:"PreferredBackupWindow,omitempty"`
+
+ // PreferredMaintenanceWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-preferredmaintenancewindow
+ PreferredMaintenanceWindow *types.Value `json:"PreferredMaintenanceWindow,omitempty"`
+
+ // SnapshotIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-snapshotidentifier
+ SnapshotIdentifier *types.Value `json:"SnapshotIdentifier,omitempty"`
+
+ // StorageEncrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-storageencrypted
+ StorageEncrypted *types.Value `json:"StorageEncrypted,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcSecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbcluster.html#cfn-docdb-dbcluster-vpcsecuritygroupids
+ VpcSecurityGroupIds *types.Value `json:"VpcSecurityGroupIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DBCluster) AWSCloudFormationType() string {
+ return "AWS::DocDB::DBCluster"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DBCluster) MarshalJSON() ([]byte, error) {
+ type Properties DBCluster
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DBCluster) UnmarshalJSON(b []byte) error {
+ type Properties DBCluster
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DBCluster(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/docdb/aws-docdb-dbclusterparametergroup.go b/goformation/cloudformation/docdb/aws-docdb-dbclusterparametergroup.go
new file mode 100644
index 0000000000..3a033d786b
--- /dev/null
+++ b/goformation/cloudformation/docdb/aws-docdb-dbclusterparametergroup.go
@@ -0,0 +1,129 @@
+package docdb
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DBClusterParameterGroup AWS CloudFormation Resource (AWS::DocDB::DBClusterParameterGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html
+type DBClusterParameterGroup struct {
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Family AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-family
+ Family *types.Value `json:"Family,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbclusterparametergroup.html#cfn-docdb-dbclusterparametergroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DBClusterParameterGroup) AWSCloudFormationType() string {
+ return "AWS::DocDB::DBClusterParameterGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DBClusterParameterGroup) MarshalJSON() ([]byte, error) {
+ type Properties DBClusterParameterGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DBClusterParameterGroup) UnmarshalJSON(b []byte) error {
+ type Properties DBClusterParameterGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DBClusterParameterGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/docdb/aws-docdb-dbinstance.go b/goformation/cloudformation/docdb/aws-docdb-dbinstance.go
new file mode 100644
index 0000000000..929d6e4d28
--- /dev/null
+++ b/goformation/cloudformation/docdb/aws-docdb-dbinstance.go
@@ -0,0 +1,139 @@
+package docdb
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DBInstance AWS CloudFormation Resource (AWS::DocDB::DBInstance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html
+type DBInstance struct {
+
+ // AutoMinorVersionUpgrade AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-autominorversionupgrade
+ AutoMinorVersionUpgrade *types.Value `json:"AutoMinorVersionUpgrade,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // DBClusterIdentifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbclusteridentifier
+ DBClusterIdentifier *types.Value `json:"DBClusterIdentifier,omitempty"`
+
+ // DBInstanceClass AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbinstanceclass
+ DBInstanceClass *types.Value `json:"DBInstanceClass,omitempty"`
+
+ // DBInstanceIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-dbinstanceidentifier
+ DBInstanceIdentifier *types.Value `json:"DBInstanceIdentifier,omitempty"`
+
+ // PreferredMaintenanceWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-preferredmaintenancewindow
+ PreferredMaintenanceWindow *types.Value `json:"PreferredMaintenanceWindow,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbinstance.html#cfn-docdb-dbinstance-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DBInstance) AWSCloudFormationType() string {
+ return "AWS::DocDB::DBInstance"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DBInstance) MarshalJSON() ([]byte, error) {
+ type Properties DBInstance
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DBInstance) UnmarshalJSON(b []byte) error {
+ type Properties DBInstance
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DBInstance(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/docdb/aws-docdb-dbsubnetgroup.go b/goformation/cloudformation/docdb/aws-docdb-dbsubnetgroup.go
new file mode 100644
index 0000000000..68c8ae4a20
--- /dev/null
+++ b/goformation/cloudformation/docdb/aws-docdb-dbsubnetgroup.go
@@ -0,0 +1,124 @@
+package docdb
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DBSubnetGroup AWS CloudFormation Resource (AWS::DocDB::DBSubnetGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html
+type DBSubnetGroup struct {
+
+ // DBSubnetGroupDescription AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-dbsubnetgroupdescription
+ DBSubnetGroupDescription *types.Value `json:"DBSubnetGroupDescription,omitempty"`
+
+ // DBSubnetGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-dbsubnetgroupname
+ DBSubnetGroupName *types.Value `json:"DBSubnetGroupName,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-docdb-dbsubnetgroup.html#cfn-docdb-dbsubnetgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DBSubnetGroup) AWSCloudFormationType() string {
+ return "AWS::DocDB::DBSubnetGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DBSubnetGroup) MarshalJSON() ([]byte, error) {
+ type Properties DBSubnetGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DBSubnetGroup) UnmarshalJSON(b []byte) error {
+ type Properties DBSubnetGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DBSubnetGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable.go
new file mode 100644
index 0000000000..90873baeb4
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable.go
@@ -0,0 +1,158 @@
+package dynamodb
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html
+type GlobalTable struct {
+
+ // AttributeDefinitions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-attributedefinitions
+ AttributeDefinitions []GlobalTable_AttributeDefinition `json:"AttributeDefinitions,omitempty"`
+
+ // BillingMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-billingmode
+ BillingMode *types.Value `json:"BillingMode,omitempty"`
+
+ // GlobalSecondaryIndexes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-globalsecondaryindexes
+ GlobalSecondaryIndexes []GlobalTable_GlobalSecondaryIndex `json:"GlobalSecondaryIndexes,omitempty"`
+
+ // KeySchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-keyschema
+ KeySchema []GlobalTable_KeySchema `json:"KeySchema,omitempty"`
+
+ // LocalSecondaryIndexes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-localsecondaryindexes
+ LocalSecondaryIndexes []GlobalTable_LocalSecondaryIndex `json:"LocalSecondaryIndexes,omitempty"`
+
+ // Replicas AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-replicas
+ Replicas []GlobalTable_ReplicaSpecification `json:"Replicas,omitempty"`
+
+ // SSESpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-ssespecification
+ SSESpecification *GlobalTable_SSESpecification `json:"SSESpecification,omitempty"`
+
+ // StreamSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-streamspecification
+ StreamSpecification *GlobalTable_StreamSpecification `json:"StreamSpecification,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // TimeToLiveSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-timetolivespecification
+ TimeToLiveSpecification *GlobalTable_TimeToLiveSpecification `json:"TimeToLiveSpecification,omitempty"`
+
+ // WriteProvisionedThroughputSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html#cfn-dynamodb-globaltable-writeprovisionedthroughputsettings
+ WriteProvisionedThroughputSettings *GlobalTable_WriteProvisionedThroughputSettings `json:"WriteProvisionedThroughputSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GlobalTable) MarshalJSON() ([]byte, error) {
+ type Properties GlobalTable
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GlobalTable) UnmarshalJSON(b []byte) error {
+ type Properties GlobalTable
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GlobalTable(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_attributedefinition.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_attributedefinition.go
new file mode 100644
index 0000000000..e581c1af4d
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_attributedefinition.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_AttributeDefinition AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.AttributeDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-attributedefinition.html
+type GlobalTable_AttributeDefinition struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-attributedefinition.html#cfn-dynamodb-globaltable-attributedefinition-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // AttributeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-attributedefinition.html#cfn-dynamodb-globaltable-attributedefinition-attributetype
+ AttributeType *types.Value `json:"AttributeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_AttributeDefinition) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.AttributeDefinition"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_capacityautoscalingsettings.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_capacityautoscalingsettings.go
new file mode 100644
index 0000000000..fdeb9bfa92
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_capacityautoscalingsettings.go
@@ -0,0 +1,52 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_CapacityAutoScalingSettings AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html
+type GlobalTable_CapacityAutoScalingSettings struct {
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html#cfn-dynamodb-globaltable-capacityautoscalingsettings-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity"`
+
+ // MinCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html#cfn-dynamodb-globaltable-capacityautoscalingsettings-mincapacity
+ MinCapacity *types.Value `json:"MinCapacity"`
+
+ // SeedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html#cfn-dynamodb-globaltable-capacityautoscalingsettings-seedcapacity
+ SeedCapacity *types.Value `json:"SeedCapacity,omitempty"`
+
+ // TargetTrackingScalingPolicyConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html#cfn-dynamodb-globaltable-capacityautoscalingsettings-targettrackingscalingpolicyconfiguration
+ TargetTrackingScalingPolicyConfiguration *GlobalTable_TargetTrackingScalingPolicyConfiguration `json:"TargetTrackingScalingPolicyConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_CapacityAutoScalingSettings) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_contributorinsightsspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_contributorinsightsspecification.go
new file mode 100644
index 0000000000..c6936ae66b
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_contributorinsightsspecification.go
@@ -0,0 +1,37 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_ContributorInsightsSpecification AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html
+type GlobalTable_ContributorInsightsSpecification struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html#cfn-dynamodb-globaltable-contributorinsightsspecification-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_ContributorInsightsSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_globalsecondaryindex.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_globalsecondaryindex.go
new file mode 100644
index 0000000000..9568ace993
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_globalsecondaryindex.go
@@ -0,0 +1,52 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_GlobalSecondaryIndex AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html
+type GlobalTable_GlobalSecondaryIndex struct {
+
+ // IndexName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html#cfn-dynamodb-globaltable-globalsecondaryindex-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // KeySchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html#cfn-dynamodb-globaltable-globalsecondaryindex-keyschema
+ KeySchema []GlobalTable_KeySchema `json:"KeySchema,omitempty"`
+
+ // Projection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html#cfn-dynamodb-globaltable-globalsecondaryindex-projection
+ Projection *GlobalTable_Projection `json:"Projection,omitempty"`
+
+ // WriteProvisionedThroughputSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html#cfn-dynamodb-globaltable-globalsecondaryindex-writeprovisionedthroughputsettings
+ WriteProvisionedThroughputSettings *GlobalTable_WriteProvisionedThroughputSettings `json:"WriteProvisionedThroughputSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_GlobalSecondaryIndex) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_keyschema.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_keyschema.go
new file mode 100644
index 0000000000..3b56106277
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_keyschema.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_KeySchema AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.KeySchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html
+type GlobalTable_KeySchema struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html#cfn-dynamodb-globaltable-keyschema-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // KeyType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html#cfn-dynamodb-globaltable-keyschema-keytype
+ KeyType *types.Value `json:"KeyType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_KeySchema) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.KeySchema"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_localsecondaryindex.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_localsecondaryindex.go
new file mode 100644
index 0000000000..aca48f567b
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_localsecondaryindex.go
@@ -0,0 +1,47 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_LocalSecondaryIndex AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.LocalSecondaryIndex)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html
+type GlobalTable_LocalSecondaryIndex struct {
+
+ // IndexName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html#cfn-dynamodb-globaltable-localsecondaryindex-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // KeySchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html#cfn-dynamodb-globaltable-localsecondaryindex-keyschema
+ KeySchema []GlobalTable_KeySchema `json:"KeySchema,omitempty"`
+
+ // Projection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html#cfn-dynamodb-globaltable-localsecondaryindex-projection
+ Projection *GlobalTable_Projection `json:"Projection,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_LocalSecondaryIndex) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.LocalSecondaryIndex"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_pointintimerecoveryspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_pointintimerecoveryspecification.go
new file mode 100644
index 0000000000..ef4e85dad9
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_pointintimerecoveryspecification.go
@@ -0,0 +1,37 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_PointInTimeRecoverySpecification AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-pointintimerecoveryspecification.html
+type GlobalTable_PointInTimeRecoverySpecification struct {
+
+ // PointInTimeRecoveryEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-pointintimerecoveryspecification.html#cfn-dynamodb-globaltable-pointintimerecoveryspecification-pointintimerecoveryenabled
+ PointInTimeRecoveryEnabled *types.Value `json:"PointInTimeRecoveryEnabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_PointInTimeRecoverySpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_projection.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_projection.go
new file mode 100644
index 0000000000..9ea0beaad0
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_projection.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_Projection AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.Projection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html
+type GlobalTable_Projection struct {
+
+ // NonKeyAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html#cfn-dynamodb-globaltable-projection-nonkeyattributes
+ NonKeyAttributes *types.Value `json:"NonKeyAttributes,omitempty"`
+
+ // ProjectionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html#cfn-dynamodb-globaltable-projection-projectiontype
+ ProjectionType *types.Value `json:"ProjectionType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_Projection) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.Projection"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_readprovisionedthroughputsettings.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_readprovisionedthroughputsettings.go
new file mode 100644
index 0000000000..80e68a4dcd
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_readprovisionedthroughputsettings.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_ReadProvisionedThroughputSettings AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html
+type GlobalTable_ReadProvisionedThroughputSettings struct {
+
+ // ReadCapacityAutoScalingSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html#cfn-dynamodb-globaltable-readprovisionedthroughputsettings-readcapacityautoscalingsettings
+ ReadCapacityAutoScalingSettings *GlobalTable_CapacityAutoScalingSettings `json:"ReadCapacityAutoScalingSettings,omitempty"`
+
+ // ReadCapacityUnits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html#cfn-dynamodb-globaltable-readprovisionedthroughputsettings-readcapacityunits
+ ReadCapacityUnits *types.Value `json:"ReadCapacityUnits,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_ReadProvisionedThroughputSettings) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaglobalsecondaryindexspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaglobalsecondaryindexspecification.go
new file mode 100644
index 0000000000..a419abe3db
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaglobalsecondaryindexspecification.go
@@ -0,0 +1,47 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_ReplicaGlobalSecondaryIndexSpecification AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaglobalsecondaryindexspecification.html
+type GlobalTable_ReplicaGlobalSecondaryIndexSpecification struct {
+
+ // ContributorInsightsSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaglobalsecondaryindexspecification.html#cfn-dynamodb-globaltable-replicaglobalsecondaryindexspecification-contributorinsightsspecification
+ ContributorInsightsSpecification *GlobalTable_ContributorInsightsSpecification `json:"ContributorInsightsSpecification,omitempty"`
+
+ // IndexName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaglobalsecondaryindexspecification.html#cfn-dynamodb-globaltable-replicaglobalsecondaryindexspecification-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // ReadProvisionedThroughputSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaglobalsecondaryindexspecification.html#cfn-dynamodb-globaltable-replicaglobalsecondaryindexspecification-readprovisionedthroughputsettings
+ ReadProvisionedThroughputSettings *GlobalTable_ReadProvisionedThroughputSettings `json:"ReadProvisionedThroughputSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_ReplicaGlobalSecondaryIndexSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaspecification.go
new file mode 100644
index 0000000000..d23d5bfa39
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicaspecification.go
@@ -0,0 +1,68 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_ReplicaSpecification AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.ReplicaSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html
+type GlobalTable_ReplicaSpecification struct {
+
+ // ContributorInsightsSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-contributorinsightsspecification
+ ContributorInsightsSpecification *GlobalTable_ContributorInsightsSpecification `json:"ContributorInsightsSpecification,omitempty"`
+
+ // GlobalSecondaryIndexes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-globalsecondaryindexes
+ GlobalSecondaryIndexes []GlobalTable_ReplicaGlobalSecondaryIndexSpecification `json:"GlobalSecondaryIndexes,omitempty"`
+
+ // PointInTimeRecoverySpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-pointintimerecoveryspecification
+ PointInTimeRecoverySpecification *GlobalTable_PointInTimeRecoverySpecification `json:"PointInTimeRecoverySpecification,omitempty"`
+
+ // ReadProvisionedThroughputSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-readprovisionedthroughputsettings
+ ReadProvisionedThroughputSettings *GlobalTable_ReadProvisionedThroughputSettings `json:"ReadProvisionedThroughputSettings,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // SSESpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-ssespecification
+ SSESpecification *GlobalTable_ReplicaSSESpecification `json:"SSESpecification,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_ReplicaSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.ReplicaSpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicassespecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicassespecification.go
new file mode 100644
index 0000000000..b712e808dc
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_replicassespecification.go
@@ -0,0 +1,37 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_ReplicaSSESpecification AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.ReplicaSSESpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicassespecification.html
+type GlobalTable_ReplicaSSESpecification struct {
+
+ // KMSMasterKeyId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicassespecification.html#cfn-dynamodb-globaltable-replicassespecification-kmsmasterkeyid
+ KMSMasterKeyId *types.Value `json:"KMSMasterKeyId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_ReplicaSSESpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.ReplicaSSESpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_ssespecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_ssespecification.go
new file mode 100644
index 0000000000..f9629b8e2d
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_ssespecification.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_SSESpecification AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.SSESpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-ssespecification.html
+type GlobalTable_SSESpecification struct {
+
+ // SSEEnabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-ssespecification.html#cfn-dynamodb-globaltable-ssespecification-sseenabled
+ SSEEnabled *types.Value `json:"SSEEnabled"`
+
+ // SSEType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-ssespecification.html#cfn-dynamodb-globaltable-ssespecification-ssetype
+ SSEType *types.Value `json:"SSEType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_SSESpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.SSESpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_streamspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_streamspecification.go
new file mode 100644
index 0000000000..a15a4eb954
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_streamspecification.go
@@ -0,0 +1,37 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_StreamSpecification AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.StreamSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-streamspecification.html
+type GlobalTable_StreamSpecification struct {
+
+ // StreamViewType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-streamspecification.html#cfn-dynamodb-globaltable-streamspecification-streamviewtype
+ StreamViewType *types.Value `json:"StreamViewType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_StreamSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.StreamSpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_targettrackingscalingpolicyconfiguration.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_targettrackingscalingpolicyconfiguration.go
new file mode 100644
index 0000000000..41b1da9194
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_targettrackingscalingpolicyconfiguration.go
@@ -0,0 +1,52 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_TargetTrackingScalingPolicyConfiguration AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html
+type GlobalTable_TargetTrackingScalingPolicyConfiguration struct {
+
+ // DisableScaleIn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html#cfn-dynamodb-globaltable-targettrackingscalingpolicyconfiguration-disablescalein
+ DisableScaleIn *types.Value `json:"DisableScaleIn,omitempty"`
+
+ // ScaleInCooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html#cfn-dynamodb-globaltable-targettrackingscalingpolicyconfiguration-scaleincooldown
+ ScaleInCooldown *types.Value `json:"ScaleInCooldown,omitempty"`
+
+ // ScaleOutCooldown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html#cfn-dynamodb-globaltable-targettrackingscalingpolicyconfiguration-scaleoutcooldown
+ ScaleOutCooldown *types.Value `json:"ScaleOutCooldown,omitempty"`
+
+ // TargetValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html#cfn-dynamodb-globaltable-targettrackingscalingpolicyconfiguration-targetvalue
+ TargetValue *types.Value `json:"TargetValue"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_TargetTrackingScalingPolicyConfiguration) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_timetolivespecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_timetolivespecification.go
new file mode 100644
index 0000000000..d9015b1bff
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_timetolivespecification.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_TimeToLiveSpecification AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.TimeToLiveSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-timetolivespecification.html
+type GlobalTable_TimeToLiveSpecification struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-timetolivespecification.html#cfn-dynamodb-globaltable-timetolivespecification-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-timetolivespecification.html#cfn-dynamodb-globaltable-timetolivespecification-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_TimeToLiveSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.TimeToLiveSpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_writeprovisionedthroughputsettings.go b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_writeprovisionedthroughputsettings.go
new file mode 100644
index 0000000000..80a101b106
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-globaltable_writeprovisionedthroughputsettings.go
@@ -0,0 +1,35 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalTable_WriteProvisionedThroughputSettings AWS CloudFormation Resource (AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html
+type GlobalTable_WriteProvisionedThroughputSettings struct {
+
+ // WriteCapacityAutoScalingSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html#cfn-dynamodb-globaltable-writeprovisionedthroughputsettings-writecapacityautoscalingsettings
+ WriteCapacityAutoScalingSettings *GlobalTable_CapacityAutoScalingSettings `json:"WriteCapacityAutoScalingSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalTable_WriteProvisionedThroughputSettings) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table.go
new file mode 100644
index 0000000000..eca04b90a3
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table.go
@@ -0,0 +1,179 @@
+package dynamodb
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table AWS CloudFormation Resource (AWS::DynamoDB::Table)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html
+type Table struct {
+
+ // AttributeDefinitions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-attributedef
+ AttributeDefinitions []Table_AttributeDefinition `json:"AttributeDefinitions,omitempty"`
+
+ // BillingMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-billingmode
+ BillingMode *types.Value `json:"BillingMode,omitempty"`
+
+ // ContributorInsightsSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-contributorinsightsspecification-enabled
+ ContributorInsightsSpecification *Table_ContributorInsightsSpecification `json:"ContributorInsightsSpecification,omitempty"`
+
+ // GlobalSecondaryIndexes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-gsi
+ GlobalSecondaryIndexes []Table_GlobalSecondaryIndex `json:"GlobalSecondaryIndexes,omitempty"`
+
+ // KeySchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-keyschema
+ KeySchema []Table_KeySchema `json:"KeySchema,omitempty"`
+
+ // KinesisStreamSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-kinesisstreamspecification
+ KinesisStreamSpecification *Table_KinesisStreamSpecification `json:"KinesisStreamSpecification,omitempty"`
+
+ // LocalSecondaryIndexes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-lsi
+ LocalSecondaryIndexes []Table_LocalSecondaryIndex `json:"LocalSecondaryIndexes,omitempty"`
+
+ // PointInTimeRecoverySpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-pointintimerecoveryspecification
+ PointInTimeRecoverySpecification *Table_PointInTimeRecoverySpecification `json:"PointInTimeRecoverySpecification,omitempty"`
+
+ // ProvisionedThroughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-provisionedthroughput
+ ProvisionedThroughput *Table_ProvisionedThroughput `json:"ProvisionedThroughput,omitempty"`
+
+ // SSESpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-ssespecification
+ SSESpecification *Table_SSESpecification `json:"SSESpecification,omitempty"`
+
+ // StreamSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-streamspecification
+ StreamSpecification *Table_StreamSpecification `json:"StreamSpecification,omitempty"`
+
+ // TableClass AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tableclass
+ TableClass *types.Value `json:"TableClass,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TimeToLiveSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-timetolivespecification
+ TimeToLiveSpecification *Table_TimeToLiveSpecification `json:"TimeToLiveSpecification,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Table) MarshalJSON() ([]byte, error) {
+ type Properties Table
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Table) UnmarshalJSON(b []byte) error {
+ type Properties Table
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Table(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_attributedefinition.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_attributedefinition.go
new file mode 100644
index 0000000000..c016d2a743
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_attributedefinition.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_AttributeDefinition AWS CloudFormation Resource (AWS::DynamoDB::Table.AttributeDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html
+type Table_AttributeDefinition struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // AttributeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype
+ AttributeType *types.Value `json:"AttributeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_AttributeDefinition) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.AttributeDefinition"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_contributorinsightsspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_contributorinsightsspecification.go
new file mode 100644
index 0000000000..a466f04142
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_contributorinsightsspecification.go
@@ -0,0 +1,37 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_ContributorInsightsSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.ContributorInsightsSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html
+type Table_ContributorInsightsSpecification struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html#cfn-dynamodb-contributorinsightsspecification-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_ContributorInsightsSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.ContributorInsightsSpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_globalsecondaryindex.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_globalsecondaryindex.go
new file mode 100644
index 0000000000..34722fee63
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_globalsecondaryindex.go
@@ -0,0 +1,57 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_GlobalSecondaryIndex AWS CloudFormation Resource (AWS::DynamoDB::Table.GlobalSecondaryIndex)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html
+type Table_GlobalSecondaryIndex struct {
+
+ // ContributorInsightsSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-contributorinsightsspecification-enabled
+ ContributorInsightsSpecification *Table_ContributorInsightsSpecification `json:"ContributorInsightsSpecification,omitempty"`
+
+ // IndexName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // KeySchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-keyschema
+ KeySchema []Table_KeySchema `json:"KeySchema,omitempty"`
+
+ // Projection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-projection
+ Projection *Table_Projection `json:"Projection,omitempty"`
+
+ // ProvisionedThroughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html#cfn-dynamodb-gsi-provisionedthroughput
+ ProvisionedThroughput *Table_ProvisionedThroughput `json:"ProvisionedThroughput,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_GlobalSecondaryIndex) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.GlobalSecondaryIndex"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_keyschema.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_keyschema.go
new file mode 100644
index 0000000000..d32f707b32
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_keyschema.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_KeySchema AWS CloudFormation Resource (AWS::DynamoDB::Table.KeySchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html
+type Table_KeySchema struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // KeyType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-keytype
+ KeyType *types.Value `json:"KeyType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_KeySchema) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.KeySchema"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_kinesisstreamspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_kinesisstreamspecification.go
new file mode 100644
index 0000000000..4cb827cfc7
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_kinesisstreamspecification.go
@@ -0,0 +1,37 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_KinesisStreamSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.KinesisStreamSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-kinesisstreamspecification.html
+type Table_KinesisStreamSpecification struct {
+
+ // StreamArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-kinesisstreamspecification.html#cfn-dynamodb-kinesisstreamspecification-streamarn
+ StreamArn *types.Value `json:"StreamArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_KinesisStreamSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.KinesisStreamSpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_localsecondaryindex.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_localsecondaryindex.go
new file mode 100644
index 0000000000..03028b966e
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_localsecondaryindex.go
@@ -0,0 +1,47 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_LocalSecondaryIndex AWS CloudFormation Resource (AWS::DynamoDB::Table.LocalSecondaryIndex)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html
+type Table_LocalSecondaryIndex struct {
+
+ // IndexName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // KeySchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-keyschema
+ KeySchema []Table_KeySchema `json:"KeySchema,omitempty"`
+
+ // Projection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html#cfn-dynamodb-lsi-projection
+ Projection *Table_Projection `json:"Projection,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_LocalSecondaryIndex) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.LocalSecondaryIndex"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_pointintimerecoveryspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_pointintimerecoveryspecification.go
new file mode 100644
index 0000000000..b87724f6e0
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_pointintimerecoveryspecification.go
@@ -0,0 +1,37 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_PointInTimeRecoverySpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.PointInTimeRecoverySpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html
+type Table_PointInTimeRecoverySpecification struct {
+
+ // PointInTimeRecoveryEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html#cfn-dynamodb-table-pointintimerecoveryspecification-pointintimerecoveryenabled
+ PointInTimeRecoveryEnabled *types.Value `json:"PointInTimeRecoveryEnabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_PointInTimeRecoverySpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.PointInTimeRecoverySpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_projection.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_projection.go
new file mode 100644
index 0000000000..74b955a652
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_projection.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_Projection AWS CloudFormation Resource (AWS::DynamoDB::Table.Projection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html
+type Table_Projection struct {
+
+ // NonKeyAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html#cfn-dynamodb-projectionobj-nonkeyatt
+ NonKeyAttributes *types.Value `json:"NonKeyAttributes,omitempty"`
+
+ // ProjectionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html#cfn-dynamodb-projectionobj-projtype
+ ProjectionType *types.Value `json:"ProjectionType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_Projection) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.Projection"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_provisionedthroughput.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_provisionedthroughput.go
new file mode 100644
index 0000000000..f0a2325f7f
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_provisionedthroughput.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_ProvisionedThroughput AWS CloudFormation Resource (AWS::DynamoDB::Table.ProvisionedThroughput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html
+type Table_ProvisionedThroughput struct {
+
+ // ReadCapacityUnits AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html#cfn-dynamodb-provisionedthroughput-readcapacityunits
+ ReadCapacityUnits *types.Value `json:"ReadCapacityUnits"`
+
+ // WriteCapacityUnits AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html#cfn-dynamodb-provisionedthroughput-writecapacityunits
+ WriteCapacityUnits *types.Value `json:"WriteCapacityUnits"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_ProvisionedThroughput) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.ProvisionedThroughput"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_ssespecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_ssespecification.go
new file mode 100644
index 0000000000..7f5ecf0cc9
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_ssespecification.go
@@ -0,0 +1,47 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_SSESpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.SSESpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html
+type Table_SSESpecification struct {
+
+ // KMSMasterKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html#cfn-dynamodb-table-ssespecification-kmsmasterkeyid
+ KMSMasterKeyId *types.Value `json:"KMSMasterKeyId,omitempty"`
+
+ // SSEEnabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html#cfn-dynamodb-table-ssespecification-sseenabled
+ SSEEnabled *types.Value `json:"SSEEnabled"`
+
+ // SSEType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html#cfn-dynamodb-table-ssespecification-ssetype
+ SSEType *types.Value `json:"SSEType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_SSESpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.SSESpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_streamspecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_streamspecification.go
new file mode 100644
index 0000000000..98dabb9a30
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_streamspecification.go
@@ -0,0 +1,37 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_StreamSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.StreamSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html
+type Table_StreamSpecification struct {
+
+ // StreamViewType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html#cfn-dynamodb-streamspecification-streamviewtype
+ StreamViewType *types.Value `json:"StreamViewType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_StreamSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.StreamSpecification"
+}
diff --git a/goformation/cloudformation/dynamodb/aws-dynamodb-table_timetolivespecification.go b/goformation/cloudformation/dynamodb/aws-dynamodb-table_timetolivespecification.go
new file mode 100644
index 0000000000..9342ca0249
--- /dev/null
+++ b/goformation/cloudformation/dynamodb/aws-dynamodb-table_timetolivespecification.go
@@ -0,0 +1,42 @@
+package dynamodb
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_TimeToLiveSpecification AWS CloudFormation Resource (AWS::DynamoDB::Table.TimeToLiveSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html
+type Table_TimeToLiveSpecification struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html#cfn-dynamodb-timetolivespecification-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html#cfn-dynamodb-timetolivespecification-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_TimeToLiveSpecification) AWSCloudFormationType() string {
+ return "AWS::DynamoDB::Table.TimeToLiveSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-capacityreservation.go b/goformation/cloudformation/ec2/aws-ec2-capacityreservation.go
new file mode 100644
index 0000000000..5b7cff7403
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-capacityreservation.go
@@ -0,0 +1,168 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CapacityReservation AWS CloudFormation Resource (AWS::EC2::CapacityReservation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html
+type CapacityReservation struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // EndDate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-enddate
+ EndDate *types.Value `json:"EndDate,omitempty"`
+
+ // EndDateType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-enddatetype
+ EndDateType *types.Value `json:"EndDateType,omitempty"`
+
+ // EphemeralStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-ephemeralstorage
+ EphemeralStorage *types.Value `json:"EphemeralStorage,omitempty"`
+
+ // InstanceCount AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instancecount
+ InstanceCount *types.Value `json:"InstanceCount"`
+
+ // InstanceMatchCriteria AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instancematchcriteria
+ InstanceMatchCriteria *types.Value `json:"InstanceMatchCriteria,omitempty"`
+
+ // InstancePlatform AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instanceplatform
+ InstancePlatform *types.Value `json:"InstancePlatform,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // OutPostArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-outpostarn
+ OutPostArn *types.Value `json:"OutPostArn,omitempty"`
+
+ // PlacementGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-placementgrouparn
+ PlacementGroupArn *types.Value `json:"PlacementGroupArn,omitempty"`
+
+ // TagSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-tagspecifications
+ TagSpecifications []CapacityReservation_TagSpecification `json:"TagSpecifications,omitempty"`
+
+ // Tenancy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html#cfn-ec2-capacityreservation-tenancy
+ Tenancy *types.Value `json:"Tenancy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CapacityReservation) AWSCloudFormationType() string {
+ return "AWS::EC2::CapacityReservation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CapacityReservation) MarshalJSON() ([]byte, error) {
+ type Properties CapacityReservation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CapacityReservation) UnmarshalJSON(b []byte) error {
+ type Properties CapacityReservation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CapacityReservation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-capacityreservation_tagspecification.go b/goformation/cloudformation/ec2/aws-ec2-capacityreservation_tagspecification.go
new file mode 100644
index 0000000000..5999d74fd7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-capacityreservation_tagspecification.go
@@ -0,0 +1,43 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CapacityReservation_TagSpecification AWS CloudFormation Resource (AWS::EC2::CapacityReservation.TagSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html
+type CapacityReservation_TagSpecification struct {
+
+ // ResourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html#cfn-ec2-capacityreservation-tagspecification-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservation-tagspecification.html#cfn-ec2-capacityreservation-tagspecification-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CapacityReservation_TagSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::CapacityReservation.TagSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet.go b/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet.go
new file mode 100644
index 0000000000..a98c9c453b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet.go
@@ -0,0 +1,148 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CapacityReservationFleet AWS CloudFormation Resource (AWS::EC2::CapacityReservationFleet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html
+type CapacityReservationFleet struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // EndDate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-enddate
+ EndDate *types.Value `json:"EndDate,omitempty"`
+
+ // InstanceMatchCriteria AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-instancematchcriteria
+ InstanceMatchCriteria *types.Value `json:"InstanceMatchCriteria,omitempty"`
+
+ // InstanceTypeSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-instancetypespecifications
+ InstanceTypeSpecifications []CapacityReservationFleet_InstanceTypeSpecification `json:"InstanceTypeSpecifications,omitempty"`
+
+ // NoRemoveEndDate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-noremoveenddate
+ NoRemoveEndDate *types.Value `json:"NoRemoveEndDate,omitempty"`
+
+ // RemoveEndDate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-removeenddate
+ RemoveEndDate *types.Value `json:"RemoveEndDate,omitempty"`
+
+ // TagSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-tagspecifications
+ TagSpecifications []CapacityReservationFleet_TagSpecification `json:"TagSpecifications,omitempty"`
+
+ // Tenancy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-tenancy
+ Tenancy *types.Value `json:"Tenancy,omitempty"`
+
+ // TotalTargetCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html#cfn-ec2-capacityreservationfleet-totaltargetcapacity
+ TotalTargetCapacity *types.Value `json:"TotalTargetCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CapacityReservationFleet) AWSCloudFormationType() string {
+ return "AWS::EC2::CapacityReservationFleet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CapacityReservationFleet) MarshalJSON() ([]byte, error) {
+ type Properties CapacityReservationFleet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CapacityReservationFleet) UnmarshalJSON(b []byte) error {
+ type Properties CapacityReservationFleet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CapacityReservationFleet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet_instancetypespecification.go b/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet_instancetypespecification.go
new file mode 100644
index 0000000000..16218214d4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet_instancetypespecification.go
@@ -0,0 +1,67 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CapacityReservationFleet_InstanceTypeSpecification AWS CloudFormation Resource (AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html
+type CapacityReservationFleet_InstanceTypeSpecification struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // AvailabilityZoneId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-availabilityzoneid
+ AvailabilityZoneId *types.Value `json:"AvailabilityZoneId,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // InstancePlatform AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-instanceplatform
+ InstancePlatform *types.Value `json:"InstancePlatform,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // Priority AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-priority
+ Priority *types.Value `json:"Priority,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-instancetypespecification.html#cfn-ec2-capacityreservationfleet-instancetypespecification-weight
+ Weight *types.Value `json:"Weight,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CapacityReservationFleet_InstanceTypeSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet_tagspecification.go b/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet_tagspecification.go
new file mode 100644
index 0000000000..d5fea1ab8e
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-capacityreservationfleet_tagspecification.go
@@ -0,0 +1,43 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CapacityReservationFleet_TagSpecification AWS CloudFormation Resource (AWS::EC2::CapacityReservationFleet.TagSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html
+type CapacityReservationFleet_TagSpecification struct {
+
+ // ResourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html#cfn-ec2-capacityreservationfleet-tagspecification-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-capacityreservationfleet-tagspecification.html#cfn-ec2-capacityreservationfleet-tagspecification-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CapacityReservationFleet_TagSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::CapacityReservationFleet.TagSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-carriergateway.go b/goformation/cloudformation/ec2/aws-ec2-carriergateway.go
new file mode 100644
index 0000000000..6c2554cad2
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-carriergateway.go
@@ -0,0 +1,114 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CarrierGateway AWS CloudFormation Resource (AWS::EC2::CarrierGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html
+type CarrierGateway struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html#cfn-ec2-carriergateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html#cfn-ec2-carriergateway-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CarrierGateway) AWSCloudFormationType() string {
+ return "AWS::EC2::CarrierGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CarrierGateway) MarshalJSON() ([]byte, error) {
+ type Properties CarrierGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CarrierGateway) UnmarshalJSON(b []byte) error {
+ type Properties CarrierGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CarrierGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-carriergateway_tags.go b/goformation/cloudformation/ec2/aws-ec2-carriergateway_tags.go
new file mode 100644
index 0000000000..9e8e4400c7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-carriergateway_tags.go
@@ -0,0 +1,36 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CarrierGateway_Tags AWS CloudFormation Resource (AWS::EC2::CarrierGateway.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-carriergateway-tags.html
+type CarrierGateway_Tags struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-carriergateway-tags.html#cfn-ec2-carriergateway-tags-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CarrierGateway_Tags) AWSCloudFormationType() string {
+ return "AWS::EC2::CarrierGateway.Tags"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnauthorizationrule.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnauthorizationrule.go
new file mode 100644
index 0000000000..381c707a95
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnauthorizationrule.go
@@ -0,0 +1,128 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnAuthorizationRule AWS CloudFormation Resource (AWS::EC2::ClientVpnAuthorizationRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html
+type ClientVpnAuthorizationRule struct {
+
+ // AccessGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html#cfn-ec2-clientvpnauthorizationrule-accessgroupid
+ AccessGroupId *types.Value `json:"AccessGroupId,omitempty"`
+
+ // AuthorizeAllGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html#cfn-ec2-clientvpnauthorizationrule-authorizeallgroups
+ AuthorizeAllGroups *types.Value `json:"AuthorizeAllGroups,omitempty"`
+
+ // ClientVpnEndpointId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html#cfn-ec2-clientvpnauthorizationrule-clientvpnendpointid
+ ClientVpnEndpointId *types.Value `json:"ClientVpnEndpointId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html#cfn-ec2-clientvpnauthorizationrule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // TargetNetworkCidr AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html#cfn-ec2-clientvpnauthorizationrule-targetnetworkcidr
+ TargetNetworkCidr *types.Value `json:"TargetNetworkCidr,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnAuthorizationRule) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnAuthorizationRule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ClientVpnAuthorizationRule) MarshalJSON() ([]byte, error) {
+ type Properties ClientVpnAuthorizationRule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ClientVpnAuthorizationRule) UnmarshalJSON(b []byte) error {
+ type Properties ClientVpnAuthorizationRule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ClientVpnAuthorizationRule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint.go
new file mode 100644
index 0000000000..e9382efc5b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint.go
@@ -0,0 +1,173 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnEndpoint AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html
+type ClientVpnEndpoint struct {
+
+ // AuthenticationOptions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-authenticationoptions
+ AuthenticationOptions []ClientVpnEndpoint_ClientAuthenticationRequest `json:"AuthenticationOptions,omitempty"`
+
+ // ClientCidrBlock AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-clientcidrblock
+ ClientCidrBlock *types.Value `json:"ClientCidrBlock,omitempty"`
+
+ // ClientConnectOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-clientconnectoptions
+ ClientConnectOptions *ClientVpnEndpoint_ClientConnectOptions `json:"ClientConnectOptions,omitempty"`
+
+ // ConnectionLogOptions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-connectionlogoptions
+ ConnectionLogOptions *ClientVpnEndpoint_ConnectionLogOptions `json:"ConnectionLogOptions,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DnsServers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-dnsservers
+ DnsServers *types.Value `json:"DnsServers,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SelfServicePortal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-selfserviceportal
+ SelfServicePortal *types.Value `json:"SelfServicePortal,omitempty"`
+
+ // ServerCertificateArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-servercertificatearn
+ ServerCertificateArn *types.Value `json:"ServerCertificateArn,omitempty"`
+
+ // SplitTunnel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-splittunnel
+ SplitTunnel *types.Value `json:"SplitTunnel,omitempty"`
+
+ // TagSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-tagspecifications
+ TagSpecifications []ClientVpnEndpoint_TagSpecification `json:"TagSpecifications,omitempty"`
+
+ // TransportProtocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-transportprotocol
+ TransportProtocol *types.Value `json:"TransportProtocol,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // VpnPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-vpnport
+ VpnPort *types.Value `json:"VpnPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnEndpoint) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnEndpoint"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ClientVpnEndpoint) MarshalJSON() ([]byte, error) {
+ type Properties ClientVpnEndpoint
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ClientVpnEndpoint) UnmarshalJSON(b []byte) error {
+ type Properties ClientVpnEndpoint
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ClientVpnEndpoint(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_certificateauthenticationrequest.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_certificateauthenticationrequest.go
new file mode 100644
index 0000000000..6fa532a80c
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_certificateauthenticationrequest.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnEndpoint_CertificateAuthenticationRequest AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-certificateauthenticationrequest.html
+type ClientVpnEndpoint_CertificateAuthenticationRequest struct {
+
+ // ClientRootCertificateChainArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-certificateauthenticationrequest.html#cfn-ec2-clientvpnendpoint-certificateauthenticationrequest-clientrootcertificatechainarn
+ ClientRootCertificateChainArn *types.Value `json:"ClientRootCertificateChainArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnEndpoint_CertificateAuthenticationRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientauthenticationrequest.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientauthenticationrequest.go
new file mode 100644
index 0000000000..b48cb0e2fe
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientauthenticationrequest.go
@@ -0,0 +1,52 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnEndpoint_ClientAuthenticationRequest AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint.ClientAuthenticationRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html
+type ClientVpnEndpoint_ClientAuthenticationRequest struct {
+
+ // ActiveDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-activedirectory
+ ActiveDirectory *ClientVpnEndpoint_DirectoryServiceAuthenticationRequest `json:"ActiveDirectory,omitempty"`
+
+ // FederatedAuthentication AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-federatedauthentication
+ FederatedAuthentication *ClientVpnEndpoint_FederatedAuthenticationRequest `json:"FederatedAuthentication,omitempty"`
+
+ // MutualAuthentication AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-mutualauthentication
+ MutualAuthentication *ClientVpnEndpoint_CertificateAuthenticationRequest `json:"MutualAuthentication,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnEndpoint_ClientAuthenticationRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnEndpoint.ClientAuthenticationRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientconnectoptions.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientconnectoptions.go
new file mode 100644
index 0000000000..99de3c2011
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_clientconnectoptions.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnEndpoint_ClientConnectOptions AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint.ClientConnectOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html
+type ClientVpnEndpoint_ClientConnectOptions struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html#cfn-ec2-clientvpnendpoint-clientconnectoptions-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // LambdaFunctionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientconnectoptions.html#cfn-ec2-clientvpnendpoint-clientconnectoptions-lambdafunctionarn
+ LambdaFunctionArn *types.Value `json:"LambdaFunctionArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnEndpoint_ClientConnectOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_connectionlogoptions.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_connectionlogoptions.go
new file mode 100644
index 0000000000..bf92f12c65
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_connectionlogoptions.go
@@ -0,0 +1,47 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnEndpoint_ConnectionLogOptions AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-connectionlogoptions.html
+type ClientVpnEndpoint_ConnectionLogOptions struct {
+
+ // CloudwatchLogGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-connectionlogoptions.html#cfn-ec2-clientvpnendpoint-connectionlogoptions-cloudwatchloggroup
+ CloudwatchLogGroup *types.Value `json:"CloudwatchLogGroup,omitempty"`
+
+ // CloudwatchLogStream AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-connectionlogoptions.html#cfn-ec2-clientvpnendpoint-connectionlogoptions-cloudwatchlogstream
+ CloudwatchLogStream *types.Value `json:"CloudwatchLogStream,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-connectionlogoptions.html#cfn-ec2-clientvpnendpoint-connectionlogoptions-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnEndpoint_ConnectionLogOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_directoryserviceauthenticationrequest.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_directoryserviceauthenticationrequest.go
new file mode 100644
index 0000000000..dee8b9f490
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_directoryserviceauthenticationrequest.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnEndpoint_DirectoryServiceAuthenticationRequest AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-directoryserviceauthenticationrequest.html
+type ClientVpnEndpoint_DirectoryServiceAuthenticationRequest struct {
+
+ // DirectoryId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-directoryserviceauthenticationrequest.html#cfn-ec2-clientvpnendpoint-directoryserviceauthenticationrequest-directoryid
+ DirectoryId *types.Value `json:"DirectoryId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnEndpoint_DirectoryServiceAuthenticationRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_federatedauthenticationrequest.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_federatedauthenticationrequest.go
new file mode 100644
index 0000000000..e131a5947a
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_federatedauthenticationrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnEndpoint_FederatedAuthenticationRequest AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html
+type ClientVpnEndpoint_FederatedAuthenticationRequest struct {
+
+ // SAMLProviderArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html#cfn-ec2-clientvpnendpoint-federatedauthenticationrequest-samlproviderarn
+ SAMLProviderArn *types.Value `json:"SAMLProviderArn,omitempty"`
+
+ // SelfServiceSAMLProviderArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-federatedauthenticationrequest.html#cfn-ec2-clientvpnendpoint-federatedauthenticationrequest-selfservicesamlproviderarn
+ SelfServiceSAMLProviderArn *types.Value `json:"SelfServiceSAMLProviderArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnEndpoint_FederatedAuthenticationRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_tagspecification.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_tagspecification.go
new file mode 100644
index 0000000000..66444ee61f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnendpoint_tagspecification.go
@@ -0,0 +1,43 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnEndpoint_TagSpecification AWS CloudFormation Resource (AWS::EC2::ClientVpnEndpoint.TagSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-tagspecification.html
+type ClientVpnEndpoint_TagSpecification struct {
+
+ // ResourceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-tagspecification.html#cfn-ec2-clientvpnendpoint-tagspecification-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-tagspecification.html#cfn-ec2-clientvpnendpoint-tagspecification-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnEndpoint_TagSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnEndpoint.TagSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpnroute.go b/goformation/cloudformation/ec2/aws-ec2-clientvpnroute.go
new file mode 100644
index 0000000000..f213969e14
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpnroute.go
@@ -0,0 +1,123 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnRoute AWS CloudFormation Resource (AWS::EC2::ClientVpnRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html
+type ClientVpnRoute struct {
+
+ // ClientVpnEndpointId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html#cfn-ec2-clientvpnroute-clientvpnendpointid
+ ClientVpnEndpointId *types.Value `json:"ClientVpnEndpointId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html#cfn-ec2-clientvpnroute-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DestinationCidrBlock AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html#cfn-ec2-clientvpnroute-destinationcidrblock
+ DestinationCidrBlock *types.Value `json:"DestinationCidrBlock,omitempty"`
+
+ // TargetVpcSubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html#cfn-ec2-clientvpnroute-targetvpcsubnetid
+ TargetVpcSubnetId *types.Value `json:"TargetVpcSubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnRoute) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnRoute"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ClientVpnRoute) MarshalJSON() ([]byte, error) {
+ type Properties ClientVpnRoute
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ClientVpnRoute) UnmarshalJSON(b []byte) error {
+ type Properties ClientVpnRoute
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ClientVpnRoute(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-clientvpntargetnetworkassociation.go b/goformation/cloudformation/ec2/aws-ec2-clientvpntargetnetworkassociation.go
new file mode 100644
index 0000000000..6162a6a42e
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-clientvpntargetnetworkassociation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClientVpnTargetNetworkAssociation AWS CloudFormation Resource (AWS::EC2::ClientVpnTargetNetworkAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html
+type ClientVpnTargetNetworkAssociation struct {
+
+ // ClientVpnEndpointId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html#cfn-ec2-clientvpntargetnetworkassociation-clientvpnendpointid
+ ClientVpnEndpointId *types.Value `json:"ClientVpnEndpointId,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html#cfn-ec2-clientvpntargetnetworkassociation-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClientVpnTargetNetworkAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::ClientVpnTargetNetworkAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ClientVpnTargetNetworkAssociation) MarshalJSON() ([]byte, error) {
+ type Properties ClientVpnTargetNetworkAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ClientVpnTargetNetworkAssociation) UnmarshalJSON(b []byte) error {
+ type Properties ClientVpnTargetNetworkAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ClientVpnTargetNetworkAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-customergateway.go b/goformation/cloudformation/ec2/aws-ec2-customergateway.go
new file mode 100644
index 0000000000..4c1af857da
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-customergateway.go
@@ -0,0 +1,124 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CustomerGateway AWS CloudFormation Resource (AWS::EC2::CustomerGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html
+type CustomerGateway struct {
+
+ // BgpAsn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-bgpasn
+ BgpAsn *types.Value `json:"BgpAsn"`
+
+ // IpAddress AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-ipaddress
+ IpAddress *types.Value `json:"IpAddress,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customer-gateway.html#cfn-ec2-customergateway-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomerGateway) AWSCloudFormationType() string {
+ return "AWS::EC2::CustomerGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CustomerGateway) MarshalJSON() ([]byte, error) {
+ type Properties CustomerGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CustomerGateway) UnmarshalJSON(b []byte) error {
+ type Properties CustomerGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CustomerGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-dhcpoptions.go b/goformation/cloudformation/ec2/aws-ec2-dhcpoptions.go
new file mode 100644
index 0000000000..e8fbe4bdf5
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-dhcpoptions.go
@@ -0,0 +1,134 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DHCPOptions AWS CloudFormation Resource (AWS::EC2::DHCPOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html
+type DHCPOptions struct {
+
+ // DomainName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // DomainNameServers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-domainnameservers
+ DomainNameServers *types.Value `json:"DomainNameServers,omitempty"`
+
+ // NetbiosNameServers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-netbiosnameservers
+ NetbiosNameServers *types.Value `json:"NetbiosNameServers,omitempty"`
+
+ // NetbiosNodeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-netbiosnodetype
+ NetbiosNodeType *types.Value `json:"NetbiosNodeType,omitempty"`
+
+ // NtpServers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-ntpservers
+ NtpServers *types.Value `json:"NtpServers,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html#cfn-ec2-dhcpoptions-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DHCPOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::DHCPOptions"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DHCPOptions) MarshalJSON() ([]byte, error) {
+ type Properties DHCPOptions
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DHCPOptions) UnmarshalJSON(b []byte) error {
+ type Properties DHCPOptions
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DHCPOptions(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet.go
new file mode 100644
index 0000000000..e1f94cf9e1
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet.go
@@ -0,0 +1,163 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet AWS CloudFormation Resource (AWS::EC2::EC2Fleet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html
+type EC2Fleet struct {
+
+ // Context AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-context
+ Context *types.Value `json:"Context,omitempty"`
+
+ // ExcessCapacityTerminationPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-excesscapacityterminationpolicy
+ ExcessCapacityTerminationPolicy *types.Value `json:"ExcessCapacityTerminationPolicy,omitempty"`
+
+ // LaunchTemplateConfigs AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-launchtemplateconfigs
+ LaunchTemplateConfigs []EC2Fleet_FleetLaunchTemplateConfigRequest `json:"LaunchTemplateConfigs,omitempty"`
+
+ // OnDemandOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-ondemandoptions
+ OnDemandOptions *EC2Fleet_OnDemandOptionsRequest `json:"OnDemandOptions,omitempty"`
+
+ // ReplaceUnhealthyInstances AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-replaceunhealthyinstances
+ ReplaceUnhealthyInstances *types.Value `json:"ReplaceUnhealthyInstances,omitempty"`
+
+ // SpotOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-spotoptions
+ SpotOptions *EC2Fleet_SpotOptionsRequest `json:"SpotOptions,omitempty"`
+
+ // TagSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-tagspecifications
+ TagSpecifications []EC2Fleet_TagSpecification `json:"TagSpecifications,omitempty"`
+
+ // TargetCapacitySpecification AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-targetcapacityspecification
+ TargetCapacitySpecification *EC2Fleet_TargetCapacitySpecificationRequest `json:"TargetCapacitySpecification,omitempty"`
+
+ // TerminateInstancesWithExpiration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-terminateinstanceswithexpiration
+ TerminateInstancesWithExpiration *types.Value `json:"TerminateInstancesWithExpiration,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // ValidFrom AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-validfrom
+ ValidFrom *types.Value `json:"ValidFrom,omitempty"`
+
+ // ValidUntil AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html#cfn-ec2-ec2fleet-validuntil
+ ValidUntil *types.Value `json:"ValidUntil,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EC2Fleet) MarshalJSON() ([]byte, error) {
+ type Properties EC2Fleet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EC2Fleet) UnmarshalJSON(b []byte) error {
+ type Properties EC2Fleet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EC2Fleet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_acceleratorcountrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_acceleratorcountrequest.go
new file mode 100644
index 0000000000..4883de04a3
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_acceleratorcountrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_AcceleratorCountRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.AcceleratorCountRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html
+type EC2Fleet_AcceleratorCountRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html#cfn-ec2-ec2fleet-acceleratorcountrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratorcountrequest.html#cfn-ec2-ec2fleet-acceleratorcountrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_AcceleratorCountRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.AcceleratorCountRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_acceleratortotalmemorymibrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_acceleratortotalmemorymibrequest.go
new file mode 100644
index 0000000000..30e68daf68
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_acceleratortotalmemorymibrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_AcceleratorTotalMemoryMiBRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html
+type EC2Fleet_AcceleratorTotalMemoryMiBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html#cfn-ec2-ec2fleet-acceleratortotalmemorymibrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-acceleratortotalmemorymibrequest.html#cfn-ec2-ec2fleet-acceleratortotalmemorymibrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_AcceleratorTotalMemoryMiBRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_baselineebsbandwidthmbpsrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_baselineebsbandwidthmbpsrequest.go
new file mode 100644
index 0000000000..4d821b104f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_baselineebsbandwidthmbpsrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_BaselineEbsBandwidthMbpsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html
+type EC2Fleet_BaselineEbsBandwidthMbpsRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html#cfn-ec2-ec2fleet-baselineebsbandwidthmbpsrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-baselineebsbandwidthmbpsrequest.html#cfn-ec2-ec2fleet-baselineebsbandwidthmbpsrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_BaselineEbsBandwidthMbpsRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_capacityrebalance.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_capacityrebalance.go
new file mode 100644
index 0000000000..59758ed84a
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_capacityrebalance.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_CapacityRebalance AWS CloudFormation Resource (AWS::EC2::EC2Fleet.CapacityRebalance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html
+type EC2Fleet_CapacityRebalance struct {
+
+ // ReplacementStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html#cfn-ec2-ec2fleet-capacityrebalance-replacementstrategy
+ ReplacementStrategy *types.Value `json:"ReplacementStrategy,omitempty"`
+
+ // TerminationDelay AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityrebalance.html#cfn-ec2-ec2fleet-capacityrebalance-terminationdelay
+ TerminationDelay *types.Value `json:"TerminationDelay,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_CapacityRebalance) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.CapacityRebalance"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_capacityreservationoptionsrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_capacityreservationoptionsrequest.go
new file mode 100644
index 0000000000..07e1b1d16d
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_capacityreservationoptionsrequest.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_CapacityReservationOptionsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityreservationoptionsrequest.html
+type EC2Fleet_CapacityReservationOptionsRequest struct {
+
+ // UsageStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-capacityreservationoptionsrequest.html#cfn-ec2-ec2fleet-capacityreservationoptionsrequest-usagestrategy
+ UsageStrategy *types.Value `json:"UsageStrategy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_CapacityReservationOptionsRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go
new file mode 100644
index 0000000000..df41917f4b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateconfigrequest.go
@@ -0,0 +1,40 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_FleetLaunchTemplateConfigRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html
+type EC2Fleet_FleetLaunchTemplateConfigRequest struct {
+
+ // LaunchTemplateSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateconfigrequest-launchtemplatespecification
+ LaunchTemplateSpecification *EC2Fleet_FleetLaunchTemplateSpecificationRequest `json:"LaunchTemplateSpecification,omitempty"`
+
+ // Overrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateconfigrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateconfigrequest-overrides
+ Overrides []EC2Fleet_FleetLaunchTemplateOverridesRequest `json:"Overrides,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_FleetLaunchTemplateConfigRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go
new file mode 100644
index 0000000000..53ebc986b7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplateoverridesrequest.go
@@ -0,0 +1,72 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_FleetLaunchTemplateOverridesRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html
+type EC2Fleet_FleetLaunchTemplateOverridesRequest struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // InstanceRequirements AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-instancerequirements
+ InstanceRequirements *EC2Fleet_InstanceRequirementsRequest `json:"InstanceRequirements,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // MaxPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-maxprice
+ MaxPrice *types.Value `json:"MaxPrice,omitempty"`
+
+ // Placement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-placement
+ Placement *EC2Fleet_Placement `json:"Placement,omitempty"`
+
+ // Priority AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-priority
+ Priority *types.Value `json:"Priority,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // WeightedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplateoverridesrequest-weightedcapacity
+ WeightedCapacity *types.Value `json:"WeightedCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_FleetLaunchTemplateOverridesRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go
new file mode 100644
index 0000000000..8ee29a5439
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_fleetlaunchtemplatespecificationrequest.go
@@ -0,0 +1,47 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_FleetLaunchTemplateSpecificationRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html
+type EC2Fleet_FleetLaunchTemplateSpecificationRequest struct {
+
+ // LaunchTemplateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest-launchtemplateid
+ LaunchTemplateId *types.Value `json:"LaunchTemplateId,omitempty"`
+
+ // LaunchTemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest-launchtemplatename
+ LaunchTemplateName *types.Value `json:"LaunchTemplateName,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest.html#cfn-ec2-ec2fleet-fleetlaunchtemplatespecificationrequest-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_FleetLaunchTemplateSpecificationRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_instancerequirementsrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_instancerequirementsrequest.go
new file mode 100644
index 0000000000..0a0ca62a80
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_instancerequirementsrequest.go
@@ -0,0 +1,137 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_InstanceRequirementsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.InstanceRequirementsRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html
+type EC2Fleet_InstanceRequirementsRequest struct {
+
+ // AcceleratorCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratorcount
+ AcceleratorCount *EC2Fleet_AcceleratorCountRequest `json:"AcceleratorCount,omitempty"`
+
+ // AcceleratorManufacturers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratormanufacturers
+ AcceleratorManufacturers *types.Value `json:"AcceleratorManufacturers,omitempty"`
+
+ // AcceleratorNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratornames
+ AcceleratorNames *types.Value `json:"AcceleratorNames,omitempty"`
+
+ // AcceleratorTotalMemoryMiB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratortotalmemorymib
+ AcceleratorTotalMemoryMiB *EC2Fleet_AcceleratorTotalMemoryMiBRequest `json:"AcceleratorTotalMemoryMiB,omitempty"`
+
+ // AcceleratorTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-acceleratortypes
+ AcceleratorTypes *types.Value `json:"AcceleratorTypes,omitempty"`
+
+ // BareMetal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-baremetal
+ BareMetal *types.Value `json:"BareMetal,omitempty"`
+
+ // BaselineEbsBandwidthMbps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-baselineebsbandwidthmbps
+ BaselineEbsBandwidthMbps *EC2Fleet_BaselineEbsBandwidthMbpsRequest `json:"BaselineEbsBandwidthMbps,omitempty"`
+
+ // BurstablePerformance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-burstableperformance
+ BurstablePerformance *types.Value `json:"BurstablePerformance,omitempty"`
+
+ // CpuManufacturers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-cpumanufacturers
+ CpuManufacturers *types.Value `json:"CpuManufacturers,omitempty"`
+
+ // ExcludedInstanceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-excludedinstancetypes
+ ExcludedInstanceTypes *types.Value `json:"ExcludedInstanceTypes,omitempty"`
+
+ // InstanceGenerations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-instancegenerations
+ InstanceGenerations *types.Value `json:"InstanceGenerations,omitempty"`
+
+ // LocalStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-localstorage
+ LocalStorage *types.Value `json:"LocalStorage,omitempty"`
+
+ // LocalStorageTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-localstoragetypes
+ LocalStorageTypes *types.Value `json:"LocalStorageTypes,omitempty"`
+
+ // MemoryGiBPerVCpu AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-memorygibpervcpu
+ MemoryGiBPerVCpu *EC2Fleet_MemoryGiBPerVCpuRequest `json:"MemoryGiBPerVCpu,omitempty"`
+
+ // MemoryMiB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-memorymib
+ MemoryMiB *EC2Fleet_MemoryMiBRequest `json:"MemoryMiB,omitempty"`
+
+ // NetworkInterfaceCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-networkinterfacecount
+ NetworkInterfaceCount *EC2Fleet_NetworkInterfaceCountRequest `json:"NetworkInterfaceCount,omitempty"`
+
+ // OnDemandMaxPricePercentageOverLowestPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice
+ OnDemandMaxPricePercentageOverLowestPrice *types.Value `json:"OnDemandMaxPricePercentageOverLowestPrice,omitempty"`
+
+ // RequireHibernateSupport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-requirehibernatesupport
+ RequireHibernateSupport *types.Value `json:"RequireHibernateSupport,omitempty"`
+
+ // SpotMaxPricePercentageOverLowestPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice
+ SpotMaxPricePercentageOverLowestPrice *types.Value `json:"SpotMaxPricePercentageOverLowestPrice,omitempty"`
+
+ // TotalLocalStorageGB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-totallocalstoragegb
+ TotalLocalStorageGB *EC2Fleet_TotalLocalStorageGBRequest `json:"TotalLocalStorageGB,omitempty"`
+
+ // VCpuCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-instancerequirementsrequest.html#cfn-ec2-ec2fleet-instancerequirementsrequest-vcpucount
+ VCpuCount *EC2Fleet_VCpuCountRangeRequest `json:"VCpuCount,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_InstanceRequirementsRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.InstanceRequirementsRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_maintenancestrategies.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_maintenancestrategies.go
new file mode 100644
index 0000000000..076bba1500
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_maintenancestrategies.go
@@ -0,0 +1,35 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_MaintenanceStrategies AWS CloudFormation Resource (AWS::EC2::EC2Fleet.MaintenanceStrategies)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-maintenancestrategies.html
+type EC2Fleet_MaintenanceStrategies struct {
+
+ // CapacityRebalance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-maintenancestrategies.html#cfn-ec2-ec2fleet-maintenancestrategies-capacityrebalance
+ CapacityRebalance *EC2Fleet_CapacityRebalance `json:"CapacityRebalance,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_MaintenanceStrategies) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.MaintenanceStrategies"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_memorygibpervcpurequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_memorygibpervcpurequest.go
new file mode 100644
index 0000000000..54cff3effb
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_memorygibpervcpurequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_MemoryGiBPerVCpuRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html
+type EC2Fleet_MemoryGiBPerVCpuRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html#cfn-ec2-ec2fleet-memorygibpervcpurequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorygibpervcpurequest.html#cfn-ec2-ec2fleet-memorygibpervcpurequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_MemoryGiBPerVCpuRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_memorymibrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_memorymibrequest.go
new file mode 100644
index 0000000000..8ae6d5d91d
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_memorymibrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_MemoryMiBRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.MemoryMiBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html
+type EC2Fleet_MemoryMiBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html#cfn-ec2-ec2fleet-memorymibrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-memorymibrequest.html#cfn-ec2-ec2fleet-memorymibrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_MemoryMiBRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.MemoryMiBRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_networkinterfacecountrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_networkinterfacecountrequest.go
new file mode 100644
index 0000000000..e20ffe9c21
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_networkinterfacecountrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_NetworkInterfaceCountRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html
+type EC2Fleet_NetworkInterfaceCountRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html#cfn-ec2-ec2fleet-networkinterfacecountrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-networkinterfacecountrequest.html#cfn-ec2-ec2fleet-networkinterfacecountrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_NetworkInterfaceCountRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_ondemandoptionsrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_ondemandoptionsrequest.go
new file mode 100644
index 0000000000..43344e01fc
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_ondemandoptionsrequest.go
@@ -0,0 +1,62 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_OnDemandOptionsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.OnDemandOptionsRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html
+type EC2Fleet_OnDemandOptionsRequest struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // CapacityReservationOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-capacityreservationoptions
+ CapacityReservationOptions *EC2Fleet_CapacityReservationOptionsRequest `json:"CapacityReservationOptions,omitempty"`
+
+ // MaxTotalPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-maxtotalprice
+ MaxTotalPrice *types.Value `json:"MaxTotalPrice,omitempty"`
+
+ // MinTargetCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-mintargetcapacity
+ MinTargetCapacity *types.Value `json:"MinTargetCapacity,omitempty"`
+
+ // SingleAvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-singleavailabilityzone
+ SingleAvailabilityZone *types.Value `json:"SingleAvailabilityZone,omitempty"`
+
+ // SingleInstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-ondemandoptionsrequest.html#cfn-ec2-ec2fleet-ondemandoptionsrequest-singleinstancetype
+ SingleInstanceType *types.Value `json:"SingleInstanceType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_OnDemandOptionsRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.OnDemandOptionsRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_placement.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_placement.go
new file mode 100644
index 0000000000..fb9fda5088
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_placement.go
@@ -0,0 +1,72 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_Placement AWS CloudFormation Resource (AWS::EC2::EC2Fleet.Placement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html
+type EC2Fleet_Placement struct {
+
+ // Affinity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-affinity
+ Affinity *types.Value `json:"Affinity,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // HostId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-hostid
+ HostId *types.Value `json:"HostId,omitempty"`
+
+ // HostResourceGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-hostresourcegrouparn
+ HostResourceGroupArn *types.Value `json:"HostResourceGroupArn,omitempty"`
+
+ // PartitionNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-partitionnumber
+ PartitionNumber *types.Value `json:"PartitionNumber,omitempty"`
+
+ // SpreadDomain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-spreaddomain
+ SpreadDomain *types.Value `json:"SpreadDomain,omitempty"`
+
+ // Tenancy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-placement.html#cfn-ec2-ec2fleet-placement-tenancy
+ Tenancy *types.Value `json:"Tenancy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_Placement) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.Placement"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_spotoptionsrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_spotoptionsrequest.go
new file mode 100644
index 0000000000..1f31debfa6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_spotoptionsrequest.go
@@ -0,0 +1,72 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_SpotOptionsRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.SpotOptionsRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html
+type EC2Fleet_SpotOptionsRequest struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // InstanceInterruptionBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-instanceinterruptionbehavior
+ InstanceInterruptionBehavior *types.Value `json:"InstanceInterruptionBehavior,omitempty"`
+
+ // InstancePoolsToUseCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-instancepoolstousecount
+ InstancePoolsToUseCount *types.Value `json:"InstancePoolsToUseCount,omitempty"`
+
+ // MaintenanceStrategies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-maintenancestrategies
+ MaintenanceStrategies *EC2Fleet_MaintenanceStrategies `json:"MaintenanceStrategies,omitempty"`
+
+ // MaxTotalPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-maxtotalprice
+ MaxTotalPrice *types.Value `json:"MaxTotalPrice,omitempty"`
+
+ // MinTargetCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-mintargetcapacity
+ MinTargetCapacity *types.Value `json:"MinTargetCapacity,omitempty"`
+
+ // SingleAvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-singleavailabilityzone
+ SingleAvailabilityZone *types.Value `json:"SingleAvailabilityZone,omitempty"`
+
+ // SingleInstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-spotoptionsrequest.html#cfn-ec2-ec2fleet-spotoptionsrequest-singleinstancetype
+ SingleInstanceType *types.Value `json:"SingleInstanceType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_SpotOptionsRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.SpotOptionsRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_tagspecification.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_tagspecification.go
new file mode 100644
index 0000000000..e10ce49458
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_tagspecification.go
@@ -0,0 +1,43 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_TagSpecification AWS CloudFormation Resource (AWS::EC2::EC2Fleet.TagSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagspecification.html
+type EC2Fleet_TagSpecification struct {
+
+ // ResourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagspecification.html#cfn-ec2-ec2fleet-tagspecification-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-tagspecification.html#cfn-ec2-ec2fleet-tagspecification-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_TagSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.TagSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go
new file mode 100644
index 0000000000..cc6e8871d2
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_targetcapacityspecificationrequest.go
@@ -0,0 +1,57 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_TargetCapacitySpecificationRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html
+type EC2Fleet_TargetCapacitySpecificationRequest struct {
+
+ // DefaultTargetCapacityType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-defaulttargetcapacitytype
+ DefaultTargetCapacityType *types.Value `json:"DefaultTargetCapacityType,omitempty"`
+
+ // OnDemandTargetCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-ondemandtargetcapacity
+ OnDemandTargetCapacity *types.Value `json:"OnDemandTargetCapacity,omitempty"`
+
+ // SpotTargetCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-spottargetcapacity
+ SpotTargetCapacity *types.Value `json:"SpotTargetCapacity,omitempty"`
+
+ // TargetCapacityUnitType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-targetcapacityunittype
+ TargetCapacityUnitType *types.Value `json:"TargetCapacityUnitType,omitempty"`
+
+ // TotalTargetCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-targetcapacityspecificationrequest.html#cfn-ec2-ec2fleet-targetcapacityspecificationrequest-totaltargetcapacity
+ TotalTargetCapacity *types.Value `json:"TotalTargetCapacity"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_TargetCapacitySpecificationRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_totallocalstoragegbrequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_totallocalstoragegbrequest.go
new file mode 100644
index 0000000000..2534c2a9d7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_totallocalstoragegbrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_TotalLocalStorageGBRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html
+type EC2Fleet_TotalLocalStorageGBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html#cfn-ec2-ec2fleet-totallocalstoragegbrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-totallocalstoragegbrequest.html#cfn-ec2-ec2fleet-totallocalstoragegbrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_TotalLocalStorageGBRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ec2fleet_vcpucountrangerequest.go b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_vcpucountrangerequest.go
new file mode 100644
index 0000000000..d6255743d2
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ec2fleet_vcpucountrangerequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EC2Fleet_VCpuCountRangeRequest AWS CloudFormation Resource (AWS::EC2::EC2Fleet.VCpuCountRangeRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html
+type EC2Fleet_VCpuCountRangeRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html#cfn-ec2-ec2fleet-vcpucountrangerequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ec2fleet-vcpucountrangerequest.html#cfn-ec2-ec2fleet-vcpucountrangerequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EC2Fleet_VCpuCountRangeRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::EC2Fleet.VCpuCountRangeRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-egressonlyinternetgateway.go b/goformation/cloudformation/ec2/aws-ec2-egressonlyinternetgateway.go
new file mode 100644
index 0000000000..f45a1a3b3a
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-egressonlyinternetgateway.go
@@ -0,0 +1,108 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EgressOnlyInternetGateway AWS CloudFormation Resource (AWS::EC2::EgressOnlyInternetGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html
+type EgressOnlyInternetGateway struct {
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html#cfn-ec2-egressonlyinternetgateway-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EgressOnlyInternetGateway) AWSCloudFormationType() string {
+ return "AWS::EC2::EgressOnlyInternetGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EgressOnlyInternetGateway) MarshalJSON() ([]byte, error) {
+ type Properties EgressOnlyInternetGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EgressOnlyInternetGateway) UnmarshalJSON(b []byte) error {
+ type Properties EgressOnlyInternetGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EgressOnlyInternetGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-eip.go b/goformation/cloudformation/ec2/aws-ec2-eip.go
new file mode 100644
index 0000000000..b50f91d75f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-eip.go
@@ -0,0 +1,124 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EIP AWS CloudFormation Resource (AWS::EC2::EIP)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html
+type EIP struct {
+
+ // Domain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-domain
+ Domain *types.Value `json:"Domain,omitempty"`
+
+ // InstanceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-instanceid
+ InstanceId *types.Value `json:"InstanceId,omitempty"`
+
+ // PublicIpv4Pool AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-publicipv4pool
+ PublicIpv4Pool *types.Value `json:"PublicIpv4Pool,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip.html#cfn-ec2-eip-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EIP) AWSCloudFormationType() string {
+ return "AWS::EC2::EIP"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EIP) MarshalJSON() ([]byte, error) {
+ type Properties EIP
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EIP) UnmarshalJSON(b []byte) error {
+ type Properties EIP
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EIP(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-eipassociation.go b/goformation/cloudformation/ec2/aws-ec2-eipassociation.go
new file mode 100644
index 0000000000..6f6b5c1788
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-eipassociation.go
@@ -0,0 +1,128 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EIPAssociation AWS CloudFormation Resource (AWS::EC2::EIPAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html
+type EIPAssociation struct {
+
+ // AllocationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-allocationid
+ AllocationId *types.Value `json:"AllocationId,omitempty"`
+
+ // EIP AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-eip
+ EIP *types.Value `json:"EIP,omitempty"`
+
+ // InstanceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-instanceid
+ InstanceId *types.Value `json:"InstanceId,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-eip-association.html#cfn-ec2-eipassociation-PrivateIpAddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EIPAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::EIPAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EIPAssociation) MarshalJSON() ([]byte, error) {
+ type Properties EIPAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EIPAssociation) UnmarshalJSON(b []byte) error {
+ type Properties EIPAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EIPAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-enclavecertificateiamroleassociation.go b/goformation/cloudformation/ec2/aws-ec2-enclavecertificateiamroleassociation.go
new file mode 100644
index 0000000000..bb781da414
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-enclavecertificateiamroleassociation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EnclaveCertificateIamRoleAssociation AWS CloudFormation Resource (AWS::EC2::EnclaveCertificateIamRoleAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html
+type EnclaveCertificateIamRoleAssociation struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html#cfn-ec2-enclavecertificateiamroleassociation-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html#cfn-ec2-enclavecertificateiamroleassociation-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EnclaveCertificateIamRoleAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::EnclaveCertificateIamRoleAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EnclaveCertificateIamRoleAssociation) MarshalJSON() ([]byte, error) {
+ type Properties EnclaveCertificateIamRoleAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EnclaveCertificateIamRoleAssociation) UnmarshalJSON(b []byte) error {
+ type Properties EnclaveCertificateIamRoleAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EnclaveCertificateIamRoleAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-flowlog.go b/goformation/cloudformation/ec2/aws-ec2-flowlog.go
new file mode 100644
index 0000000000..2581030bd1
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-flowlog.go
@@ -0,0 +1,154 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowLog AWS CloudFormation Resource (AWS::EC2::FlowLog)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html
+type FlowLog struct {
+
+ // DeliverLogsPermissionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-deliverlogspermissionarn
+ DeliverLogsPermissionArn *types.Value `json:"DeliverLogsPermissionArn,omitempty"`
+
+ // LogDestination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-logdestination
+ LogDestination *types.Value `json:"LogDestination,omitempty"`
+
+ // LogDestinationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-logdestinationtype
+ LogDestinationType *types.Value `json:"LogDestinationType,omitempty"`
+
+ // LogFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-logformat
+ LogFormat *types.Value `json:"LogFormat,omitempty"`
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // MaxAggregationInterval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-maxaggregationinterval
+ MaxAggregationInterval *types.Value `json:"MaxAggregationInterval,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // ResourceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TrafficType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-traffictype
+ TrafficType *types.Value `json:"TrafficType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowLog) AWSCloudFormationType() string {
+ return "AWS::EC2::FlowLog"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FlowLog) MarshalJSON() ([]byte, error) {
+ type Properties FlowLog
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FlowLog) UnmarshalJSON(b []byte) error {
+ type Properties FlowLog
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FlowLog(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-gatewayroutetableassociation.go b/goformation/cloudformation/ec2/aws-ec2-gatewayroutetableassociation.go
new file mode 100644
index 0000000000..c324938fc7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-gatewayroutetableassociation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GatewayRouteTableAssociation AWS CloudFormation Resource (AWS::EC2::GatewayRouteTableAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html
+type GatewayRouteTableAssociation struct {
+
+ // GatewayId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html#cfn-ec2-gatewayroutetableassociation-gatewayid
+ GatewayId *types.Value `json:"GatewayId,omitempty"`
+
+ // RouteTableId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html#cfn-ec2-gatewayroutetableassociation-routetableid
+ RouteTableId *types.Value `json:"RouteTableId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GatewayRouteTableAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::GatewayRouteTableAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GatewayRouteTableAssociation) MarshalJSON() ([]byte, error) {
+ type Properties GatewayRouteTableAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GatewayRouteTableAssociation) UnmarshalJSON(b []byte) error {
+ type Properties GatewayRouteTableAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GatewayRouteTableAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-host.go b/goformation/cloudformation/ec2/aws-ec2-host.go
new file mode 100644
index 0000000000..f594fde7e6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-host.go
@@ -0,0 +1,123 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Host AWS CloudFormation Resource (AWS::EC2::Host)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html
+type Host struct {
+
+ // AutoPlacement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-autoplacement
+ AutoPlacement *types.Value `json:"AutoPlacement,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // HostRecovery AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-hostrecovery
+ HostRecovery *types.Value `json:"HostRecovery,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Host) AWSCloudFormationType() string {
+ return "AWS::EC2::Host"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Host) MarshalJSON() ([]byte, error) {
+ type Properties Host
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Host) UnmarshalJSON(b []byte) error {
+ type Properties Host
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Host(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance.go b/goformation/cloudformation/ec2/aws-ec2-instance.go
new file mode 100644
index 0000000000..1700a3f402
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance.go
@@ -0,0 +1,312 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance AWS CloudFormation Resource (AWS::EC2::Instance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html
+type Instance struct {
+
+ // AdditionalInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-additionalinfo
+ AdditionalInfo *types.Value `json:"AdditionalInfo,omitempty"`
+
+ // Affinity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-affinity
+ Affinity *types.Value `json:"Affinity,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // BlockDeviceMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-blockdevicemappings
+ BlockDeviceMappings []Instance_BlockDeviceMapping `json:"BlockDeviceMappings,omitempty"`
+
+ // CpuOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-cpuoptions
+ CpuOptions *Instance_CpuOptions `json:"CpuOptions,omitempty"`
+
+ // CreditSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-creditspecification
+ CreditSpecification *Instance_CreditSpecification `json:"CreditSpecification,omitempty"`
+
+ // DisableApiTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-disableapitermination
+ DisableApiTermination *types.Value `json:"DisableApiTermination,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // ElasticGpuSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-elasticgpuspecifications
+ ElasticGpuSpecifications []Instance_ElasticGpuSpecification `json:"ElasticGpuSpecifications,omitempty"`
+
+ // ElasticInferenceAccelerators AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-elasticinferenceaccelerators
+ ElasticInferenceAccelerators []Instance_ElasticInferenceAccelerator `json:"ElasticInferenceAccelerators,omitempty"`
+
+ // EnclaveOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-enclaveoptions
+ EnclaveOptions *Instance_EnclaveOptions `json:"EnclaveOptions,omitempty"`
+
+ // HibernationOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-hibernationoptions
+ HibernationOptions *Instance_HibernationOptions `json:"HibernationOptions,omitempty"`
+
+ // HostId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-hostid
+ HostId *types.Value `json:"HostId,omitempty"`
+
+ // HostResourceGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-hostresourcegrouparn
+ HostResourceGroupArn *types.Value `json:"HostResourceGroupArn,omitempty"`
+
+ // IamInstanceProfile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-iaminstanceprofile
+ IamInstanceProfile *types.Value `json:"IamInstanceProfile,omitempty"`
+
+ // ImageId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-imageid
+ ImageId *types.Value `json:"ImageId,omitempty"`
+
+ // InstanceInitiatedShutdownBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-instanceinitiatedshutdownbehavior
+ InstanceInitiatedShutdownBehavior *types.Value `json:"InstanceInitiatedShutdownBehavior,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // Ipv6AddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ipv6addresscount
+ Ipv6AddressCount *types.Value `json:"Ipv6AddressCount,omitempty"`
+
+ // Ipv6Addresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ipv6addresses
+ Ipv6Addresses []Instance_InstanceIpv6Address `json:"Ipv6Addresses,omitempty"`
+
+ // KernelId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-kernelid
+ KernelId *types.Value `json:"KernelId,omitempty"`
+
+ // KeyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-keyname
+ KeyName *types.Value `json:"KeyName,omitempty"`
+
+ // LaunchTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-launchtemplate
+ LaunchTemplate *Instance_LaunchTemplateSpecification `json:"LaunchTemplate,omitempty"`
+
+ // LicenseSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-licensespecifications
+ LicenseSpecifications []Instance_LicenseSpecification `json:"LicenseSpecifications,omitempty"`
+
+ // Monitoring AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-monitoring
+ Monitoring *types.Value `json:"Monitoring,omitempty"`
+
+ // NetworkInterfaces AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-networkinterfaces
+ NetworkInterfaces []Instance_NetworkInterface `json:"NetworkInterfaces,omitempty"`
+
+ // PlacementGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-placementgroupname
+ PlacementGroupName *types.Value `json:"PlacementGroupName,omitempty"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-privateipaddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // PropagateTagsToVolumeOnCreation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-propagatetagstovolumeoncreation
+ PropagateTagsToVolumeOnCreation *types.Value `json:"PropagateTagsToVolumeOnCreation,omitempty"`
+
+ // RamdiskId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ramdiskid
+ RamdiskId *types.Value `json:"RamdiskId,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // SourceDestCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-sourcedestcheck
+ SourceDestCheck *types.Value `json:"SourceDestCheck,omitempty"`
+
+ // SsmAssociations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-ssmassociations
+ SsmAssociations []Instance_SsmAssociation `json:"SsmAssociations,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Tenancy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-tenancy
+ Tenancy *types.Value `json:"Tenancy,omitempty"`
+
+ // UserData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-userdata
+ UserData *types.Value `json:"UserData,omitempty"`
+
+ // Volumes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-volumes
+ Volumes []Instance_Volume `json:"Volumes,omitempty"`
+
+ // AWSCloudFormationCreationPolicy represents a CloudFormation CreationPolicy
+ AWSCloudFormationCreationPolicy *policies.CreationPolicy `json:"-"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Instance) MarshalJSON() ([]byte, error) {
+ type Properties Instance
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+
+ CreationPolicy *policies.CreationPolicy `json:"CreationPolicy,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+
+ CreationPolicy: r.AWSCloudFormationCreationPolicy,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Instance) UnmarshalJSON(b []byte) error {
+ type Properties Instance
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+
+ CreationPolicy *policies.CreationPolicy
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Instance(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ if res.CreationPolicy != nil {
+ r.AWSCloudFormationCreationPolicy = res.CreationPolicy
+ }
+
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_associationparameter.go b/goformation/cloudformation/ec2/aws-ec2-instance_associationparameter.go
new file mode 100644
index 0000000000..8f7637eee9
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_associationparameter.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_AssociationParameter AWS CloudFormation Resource (AWS::EC2::Instance.AssociationParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html
+type Instance_AssociationParameter struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html#cfn-ec2-instance-ssmassociations-associationparameters-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations-associationparameters.html#cfn-ec2-instance-ssmassociations-associationparameters-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_AssociationParameter) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.AssociationParameter"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_blockdevicemapping.go b/goformation/cloudformation/ec2/aws-ec2-instance_blockdevicemapping.go
new file mode 100644
index 0000000000..aa141a6651
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_blockdevicemapping.go
@@ -0,0 +1,52 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_BlockDeviceMapping AWS CloudFormation Resource (AWS::EC2::Instance.BlockDeviceMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html
+type Instance_BlockDeviceMapping struct {
+
+ // DeviceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html#cfn-ec2-blockdev-mapping-devicename
+ DeviceName *types.Value `json:"DeviceName,omitempty"`
+
+ // Ebs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html#cfn-ec2-blockdev-mapping-ebs
+ Ebs *Instance_Ebs `json:"Ebs,omitempty"`
+
+ // NoDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html#cfn-ec2-blockdev-mapping-nodevice
+ NoDevice *Instance_NoDevice `json:"NoDevice,omitempty"`
+
+ // VirtualName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-mapping.html#cfn-ec2-blockdev-mapping-virtualname
+ VirtualName *types.Value `json:"VirtualName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_BlockDeviceMapping) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.BlockDeviceMapping"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_cpuoptions.go b/goformation/cloudformation/ec2/aws-ec2-instance_cpuoptions.go
new file mode 100644
index 0000000000..396f6f4ead
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_cpuoptions.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_CpuOptions AWS CloudFormation Resource (AWS::EC2::Instance.CpuOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html
+type Instance_CpuOptions struct {
+
+ // CoreCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html#cfn-ec2-instance-cpuoptions-corecount
+ CoreCount *types.Value `json:"CoreCount,omitempty"`
+
+ // ThreadsPerCore AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-cpuoptions.html#cfn-ec2-instance-cpuoptions-threadspercore
+ ThreadsPerCore *types.Value `json:"ThreadsPerCore,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_CpuOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.CpuOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_creditspecification.go b/goformation/cloudformation/ec2/aws-ec2-instance_creditspecification.go
new file mode 100644
index 0000000000..3c4247db09
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_creditspecification.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_CreditSpecification AWS CloudFormation Resource (AWS::EC2::Instance.CreditSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html
+type Instance_CreditSpecification struct {
+
+ // CPUCredits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-creditspecification.html#cfn-ec2-instance-creditspecification-cpucredits
+ CPUCredits *types.Value `json:"CPUCredits,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_CreditSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.CreditSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_ebs.go b/goformation/cloudformation/ec2/aws-ec2-instance_ebs.go
new file mode 100644
index 0000000000..a685263dee
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_ebs.go
@@ -0,0 +1,67 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_Ebs AWS CloudFormation Resource (AWS::EC2::Instance.Ebs)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html
+type Instance_Ebs struct {
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-deleteontermination
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-encrypted
+ Encrypted *types.Value `json:"Encrypted,omitempty"`
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-instance-ebs-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // SnapshotId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-snapshotid
+ SnapshotId *types.Value `json:"SnapshotId,omitempty"`
+
+ // VolumeSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-volumesize
+ VolumeSize *types.Value `json:"VolumeSize,omitempty"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-blockdev-template.html#cfn-ec2-blockdev-template-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_Ebs) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.Ebs"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_elasticgpuspecification.go b/goformation/cloudformation/ec2/aws-ec2-instance_elasticgpuspecification.go
new file mode 100644
index 0000000000..4444cedef6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_elasticgpuspecification.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_ElasticGpuSpecification AWS CloudFormation Resource (AWS::EC2::Instance.ElasticGpuSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html
+type Instance_ElasticGpuSpecification struct {
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticgpuspecification.html#cfn-ec2-instance-elasticgpuspecification-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_ElasticGpuSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.ElasticGpuSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_elasticinferenceaccelerator.go b/goformation/cloudformation/ec2/aws-ec2-instance_elasticinferenceaccelerator.go
new file mode 100644
index 0000000000..d552e25095
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_elasticinferenceaccelerator.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_ElasticInferenceAccelerator AWS CloudFormation Resource (AWS::EC2::Instance.ElasticInferenceAccelerator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html
+type Instance_ElasticInferenceAccelerator struct {
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html#cfn-ec2-instance-elasticinferenceaccelerator-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-elasticinferenceaccelerator.html#cfn-ec2-instance-elasticinferenceaccelerator-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_ElasticInferenceAccelerator) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.ElasticInferenceAccelerator"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_enclaveoptions.go b/goformation/cloudformation/ec2/aws-ec2-instance_enclaveoptions.go
new file mode 100644
index 0000000000..eec7192243
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_enclaveoptions.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_EnclaveOptions AWS CloudFormation Resource (AWS::EC2::Instance.EnclaveOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enclaveoptions.html
+type Instance_EnclaveOptions struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-enclaveoptions.html#cfn-ec2-instance-enclaveoptions-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_EnclaveOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.EnclaveOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_hibernationoptions.go b/goformation/cloudformation/ec2/aws-ec2-instance_hibernationoptions.go
new file mode 100644
index 0000000000..453b72bfa8
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_hibernationoptions.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_HibernationOptions AWS CloudFormation Resource (AWS::EC2::Instance.HibernationOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html
+type Instance_HibernationOptions struct {
+
+ // Configured AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-hibernationoptions.html#cfn-ec2-instance-hibernationoptions-configured
+ Configured *types.Value `json:"Configured,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_HibernationOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.HibernationOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_instanceipv6address.go b/goformation/cloudformation/ec2/aws-ec2-instance_instanceipv6address.go
new file mode 100644
index 0000000000..617b66ea32
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_instanceipv6address.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_InstanceIpv6Address AWS CloudFormation Resource (AWS::EC2::Instance.InstanceIpv6Address)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html
+type Instance_InstanceIpv6Address struct {
+
+ // Ipv6Address AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-instanceipv6address.html#cfn-ec2-instance-instanceipv6address-ipv6address
+ Ipv6Address *types.Value `json:"Ipv6Address,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_InstanceIpv6Address) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.InstanceIpv6Address"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_launchtemplatespecification.go b/goformation/cloudformation/ec2/aws-ec2-instance_launchtemplatespecification.go
new file mode 100644
index 0000000000..71a0a01f9f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_launchtemplatespecification.go
@@ -0,0 +1,47 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_LaunchTemplateSpecification AWS CloudFormation Resource (AWS::EC2::Instance.LaunchTemplateSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html
+type Instance_LaunchTemplateSpecification struct {
+
+ // LaunchTemplateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-launchtemplateid
+ LaunchTemplateId *types.Value `json:"LaunchTemplateId,omitempty"`
+
+ // LaunchTemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-launchtemplatename
+ LaunchTemplateName *types.Value `json:"LaunchTemplateName,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-launchtemplatespecification.html#cfn-ec2-instance-launchtemplatespecification-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_LaunchTemplateSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.LaunchTemplateSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_licensespecification.go b/goformation/cloudformation/ec2/aws-ec2-instance_licensespecification.go
new file mode 100644
index 0000000000..eb441d2964
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_licensespecification.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_LicenseSpecification AWS CloudFormation Resource (AWS::EC2::Instance.LicenseSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-licensespecification.html
+type Instance_LicenseSpecification struct {
+
+ // LicenseConfigurationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-licensespecification.html#cfn-ec2-instance-licensespecification-licenseconfigurationarn
+ LicenseConfigurationArn *types.Value `json:"LicenseConfigurationArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_LicenseSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.LicenseSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_networkinterface.go b/goformation/cloudformation/ec2/aws-ec2-instance_networkinterface.go
new file mode 100644
index 0000000000..aa2640372c
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_networkinterface.go
@@ -0,0 +1,92 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_NetworkInterface AWS CloudFormation Resource (AWS::EC2::Instance.NetworkInterface)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html
+type Instance_NetworkInterface struct {
+
+ // AssociatePublicIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-associatepubip
+ AssociatePublicIpAddress *types.Value `json:"AssociatePublicIpAddress,omitempty"`
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-delete
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DeviceIndex AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-deviceindex
+ DeviceIndex *types.Value `json:"DeviceIndex,omitempty"`
+
+ // GroupSet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-groupset
+ GroupSet *types.Value `json:"GroupSet,omitempty"`
+
+ // Ipv6AddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#cfn-ec2-instance-networkinterface-ipv6addresscount
+ Ipv6AddressCount *types.Value `json:"Ipv6AddressCount,omitempty"`
+
+ // Ipv6Addresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#cfn-ec2-instance-networkinterface-ipv6addresses
+ Ipv6Addresses []Instance_InstanceIpv6Address `json:"Ipv6Addresses,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-network-iface
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-privateipaddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // PrivateIpAddresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-privateipaddresses
+ PrivateIpAddresses []Instance_PrivateIpAddressSpecification `json:"PrivateIpAddresses,omitempty"`
+
+ // SecondaryPrivateIpAddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-secondprivateip
+ SecondaryPrivateIpAddressCount *types.Value `json:"SecondaryPrivateIpAddressCount,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-iface-embedded.html#aws-properties-ec2-network-iface-embedded-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_NetworkInterface) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.NetworkInterface"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_nodevice.go b/goformation/cloudformation/ec2/aws-ec2-instance_nodevice.go
new file mode 100644
index 0000000000..32dbfef163
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_nodevice.go
@@ -0,0 +1,30 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_NoDevice AWS CloudFormation Resource (AWS::EC2::Instance.NoDevice)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-nodevice.html
+type Instance_NoDevice struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_NoDevice) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.NoDevice"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_privateipaddressspecification.go b/goformation/cloudformation/ec2/aws-ec2-instance_privateipaddressspecification.go
new file mode 100644
index 0000000000..8c9b183bfb
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_privateipaddressspecification.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_PrivateIpAddressSpecification AWS CloudFormation Resource (AWS::EC2::Instance.PrivateIpAddressSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html
+type Instance_PrivateIpAddressSpecification struct {
+
+ // Primary AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html#cfn-ec2-networkinterface-privateipspecification-primary
+ Primary *types.Value `json:"Primary"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-network-interface-privateipspec.html#cfn-ec2-networkinterface-privateipspecification-privateipaddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_PrivateIpAddressSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.PrivateIpAddressSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_ssmassociation.go b/goformation/cloudformation/ec2/aws-ec2-instance_ssmassociation.go
new file mode 100644
index 0000000000..ea35e71907
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_ssmassociation.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_SsmAssociation AWS CloudFormation Resource (AWS::EC2::Instance.SsmAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html
+type Instance_SsmAssociation struct {
+
+ // AssociationParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html#cfn-ec2-instance-ssmassociations-associationparameters
+ AssociationParameters []Instance_AssociationParameter `json:"AssociationParameters,omitempty"`
+
+ // DocumentName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-ssmassociations.html#cfn-ec2-instance-ssmassociations-documentname
+ DocumentName *types.Value `json:"DocumentName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_SsmAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.SsmAssociation"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-instance_volume.go b/goformation/cloudformation/ec2/aws-ec2-instance_volume.go
new file mode 100644
index 0000000000..9571dd368e
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-instance_volume.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_Volume AWS CloudFormation Resource (AWS::EC2::Instance.Volume)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html
+type Instance_Volume struct {
+
+ // Device AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html#cfn-ec2-mountpoint-device
+ Device *types.Value `json:"Device,omitempty"`
+
+ // VolumeId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-mount-point.html#cfn-ec2-mountpoint-volumeid
+ VolumeId *types.Value `json:"VolumeId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_Volume) AWSCloudFormationType() string {
+ return "AWS::EC2::Instance.Volume"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-internetgateway.go b/goformation/cloudformation/ec2/aws-ec2-internetgateway.go
new file mode 100644
index 0000000000..c481d9e251
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-internetgateway.go
@@ -0,0 +1,107 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// InternetGateway AWS CloudFormation Resource (AWS::EC2::InternetGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html
+type InternetGateway struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html#cfn-ec2-internetgateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InternetGateway) AWSCloudFormationType() string {
+ return "AWS::EC2::InternetGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r InternetGateway) MarshalJSON() ([]byte, error) {
+ type Properties InternetGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *InternetGateway) UnmarshalJSON(b []byte) error {
+ type Properties InternetGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = InternetGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ipam.go b/goformation/cloudformation/ec2/aws-ec2-ipam.go
new file mode 100644
index 0000000000..840199385b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ipam.go
@@ -0,0 +1,119 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// IPAM AWS CloudFormation Resource (AWS::EC2::IPAM)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html
+type IPAM struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html#cfn-ec2-ipam-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // OperatingRegions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html#cfn-ec2-ipam-operatingregions
+ OperatingRegions []IPAM_IpamOperatingRegion `json:"OperatingRegions,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html#cfn-ec2-ipam-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IPAM) AWSCloudFormationType() string {
+ return "AWS::EC2::IPAM"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IPAM) MarshalJSON() ([]byte, error) {
+ type Properties IPAM
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IPAM) UnmarshalJSON(b []byte) error {
+ type Properties IPAM
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IPAM(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ipam_ipamoperatingregion.go b/goformation/cloudformation/ec2/aws-ec2-ipam_ipamoperatingregion.go
new file mode 100644
index 0000000000..9d4aa53a5c
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ipam_ipamoperatingregion.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IPAM_IpamOperatingRegion AWS CloudFormation Resource (AWS::EC2::IPAM.IpamOperatingRegion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipam-ipamoperatingregion.html
+type IPAM_IpamOperatingRegion struct {
+
+ // RegionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipam-ipamoperatingregion.html#cfn-ec2-ipam-ipamoperatingregion-regionname
+ RegionName *types.Value `json:"RegionName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IPAM_IpamOperatingRegion) AWSCloudFormationType() string {
+ return "AWS::EC2::IPAM.IpamOperatingRegion"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ipamallocation.go b/goformation/cloudformation/ec2/aws-ec2-ipamallocation.go
new file mode 100644
index 0000000000..4d73c57dd2
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ipamallocation.go
@@ -0,0 +1,123 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IPAMAllocation AWS CloudFormation Resource (AWS::EC2::IPAMAllocation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html
+type IPAMAllocation struct {
+
+ // Cidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html#cfn-ec2-ipamallocation-cidr
+ Cidr *types.Value `json:"Cidr,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html#cfn-ec2-ipamallocation-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IpamPoolId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html#cfn-ec2-ipamallocation-ipampoolid
+ IpamPoolId *types.Value `json:"IpamPoolId,omitempty"`
+
+ // NetmaskLength AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html#cfn-ec2-ipamallocation-netmasklength
+ NetmaskLength *types.Value `json:"NetmaskLength,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IPAMAllocation) AWSCloudFormationType() string {
+ return "AWS::EC2::IPAMAllocation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IPAMAllocation) MarshalJSON() ([]byte, error) {
+ type Properties IPAMAllocation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IPAMAllocation) UnmarshalJSON(b []byte) error {
+ type Properties IPAMAllocation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IPAMAllocation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ipampool.go b/goformation/cloudformation/ec2/aws-ec2-ipampool.go
new file mode 100644
index 0000000000..634fc968c5
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ipampool.go
@@ -0,0 +1,169 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// IPAMPool AWS CloudFormation Resource (AWS::EC2::IPAMPool)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html
+type IPAMPool struct {
+
+ // AddressFamily AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-addressfamily
+ AddressFamily *types.Value `json:"AddressFamily,omitempty"`
+
+ // AllocationDefaultNetmaskLength AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-allocationdefaultnetmasklength
+ AllocationDefaultNetmaskLength *types.Value `json:"AllocationDefaultNetmaskLength,omitempty"`
+
+ // AllocationMaxNetmaskLength AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-allocationmaxnetmasklength
+ AllocationMaxNetmaskLength *types.Value `json:"AllocationMaxNetmaskLength,omitempty"`
+
+ // AllocationMinNetmaskLength AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-allocationminnetmasklength
+ AllocationMinNetmaskLength *types.Value `json:"AllocationMinNetmaskLength,omitempty"`
+
+ // AllocationResourceTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-allocationresourcetags
+ AllocationResourceTags []cloudformation.Tag `json:"AllocationResourceTags,omitempty"`
+
+ // AutoImport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-autoimport
+ AutoImport *types.Value `json:"AutoImport,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IpamScopeId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-ipamscopeid
+ IpamScopeId *types.Value `json:"IpamScopeId,omitempty"`
+
+ // Locale AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-locale
+ Locale *types.Value `json:"Locale,omitempty"`
+
+ // ProvisionedCidrs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-provisionedcidrs
+ ProvisionedCidrs []IPAMPool_ProvisionedCidr `json:"ProvisionedCidrs,omitempty"`
+
+ // PubliclyAdvertisable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-publiclyadvertisable
+ PubliclyAdvertisable *types.Value `json:"PubliclyAdvertisable,omitempty"`
+
+ // SourceIpamPoolId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-sourceipampoolid
+ SourceIpamPoolId *types.Value `json:"SourceIpamPoolId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IPAMPool) AWSCloudFormationType() string {
+ return "AWS::EC2::IPAMPool"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IPAMPool) MarshalJSON() ([]byte, error) {
+ type Properties IPAMPool
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IPAMPool) UnmarshalJSON(b []byte) error {
+ type Properties IPAMPool
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IPAMPool(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ipampool_provisionedcidr.go b/goformation/cloudformation/ec2/aws-ec2-ipampool_provisionedcidr.go
new file mode 100644
index 0000000000..615a06d825
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ipampool_provisionedcidr.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IPAMPool_ProvisionedCidr AWS CloudFormation Resource (AWS::EC2::IPAMPool.ProvisionedCidr)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-provisionedcidr.html
+type IPAMPool_ProvisionedCidr struct {
+
+ // Cidr AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-provisionedcidr.html#cfn-ec2-ipampool-provisionedcidr-cidr
+ Cidr *types.Value `json:"Cidr,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IPAMPool_ProvisionedCidr) AWSCloudFormationType() string {
+ return "AWS::EC2::IPAMPool.ProvisionedCidr"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-ipamscope.go b/goformation/cloudformation/ec2/aws-ec2-ipamscope.go
new file mode 100644
index 0000000000..e34f497584
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-ipamscope.go
@@ -0,0 +1,124 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// IPAMScope AWS CloudFormation Resource (AWS::EC2::IPAMScope)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html
+type IPAMScope struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html#cfn-ec2-ipamscope-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IpamId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html#cfn-ec2-ipamscope-ipamid
+ IpamId *types.Value `json:"IpamId,omitempty"`
+
+ // IpamScopeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html#cfn-ec2-ipamscope-ipamscopetype
+ IpamScopeType *types.Value `json:"IpamScopeType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html#cfn-ec2-ipamscope-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IPAMScope) AWSCloudFormationType() string {
+ return "AWS::EC2::IPAMScope"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IPAMScope) MarshalJSON() ([]byte, error) {
+ type Properties IPAMScope
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IPAMScope) UnmarshalJSON(b []byte) error {
+ type Properties IPAMScope
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IPAMScope(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate.go
new file mode 100644
index 0000000000..a70945b4e5
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate AWS CloudFormation Resource (AWS::EC2::LaunchTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html
+type LaunchTemplate struct {
+
+ // LaunchTemplateData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-launchtemplatedata
+ LaunchTemplateData *LaunchTemplate_LaunchTemplateData `json:"LaunchTemplateData,omitempty"`
+
+ // LaunchTemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-launchtemplatename
+ LaunchTemplateName *types.Value `json:"LaunchTemplateName,omitempty"`
+
+ // TagSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications
+ TagSpecifications []LaunchTemplate_LaunchTemplateTagSpecification `json:"TagSpecifications,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LaunchTemplate) MarshalJSON() ([]byte, error) {
+ type Properties LaunchTemplate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LaunchTemplate) UnmarshalJSON(b []byte) error {
+ type Properties LaunchTemplate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LaunchTemplate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_acceleratorcount.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_acceleratorcount.go
new file mode 100644
index 0000000000..70b15cdc43
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_acceleratorcount.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_AcceleratorCount AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.AcceleratorCount)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html
+type LaunchTemplate_AcceleratorCount struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html#cfn-ec2-launchtemplate-acceleratorcount-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html#cfn-ec2-launchtemplate-acceleratorcount-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_AcceleratorCount) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.AcceleratorCount"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_acceleratortotalmemorymib.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_acceleratortotalmemorymib.go
new file mode 100644
index 0000000000..0f1938ca40
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_acceleratortotalmemorymib.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_AcceleratorTotalMemoryMiB AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html
+type LaunchTemplate_AcceleratorTotalMemoryMiB struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html#cfn-ec2-launchtemplate-acceleratortotalmemorymib-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratortotalmemorymib.html#cfn-ec2-launchtemplate-acceleratortotalmemorymib-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_AcceleratorTotalMemoryMiB) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_baselineebsbandwidthmbps.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_baselineebsbandwidthmbps.go
new file mode 100644
index 0000000000..df2c2f88bd
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_baselineebsbandwidthmbps.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_BaselineEbsBandwidthMbps AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html
+type LaunchTemplate_BaselineEbsBandwidthMbps struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html#cfn-ec2-launchtemplate-baselineebsbandwidthmbps-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html#cfn-ec2-launchtemplate-baselineebsbandwidthmbps-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_BaselineEbsBandwidthMbps) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_blockdevicemapping.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_blockdevicemapping.go
new file mode 100644
index 0000000000..3bfec5d10b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_blockdevicemapping.go
@@ -0,0 +1,52 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_BlockDeviceMapping AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.BlockDeviceMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html
+type LaunchTemplate_BlockDeviceMapping struct {
+
+ // DeviceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html#cfn-ec2-launchtemplate-blockdevicemapping-devicename
+ DeviceName *types.Value `json:"DeviceName,omitempty"`
+
+ // Ebs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs
+ Ebs *LaunchTemplate_Ebs `json:"Ebs,omitempty"`
+
+ // NoDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html#cfn-ec2-launchtemplate-blockdevicemapping-nodevice
+ NoDevice *types.Value `json:"NoDevice,omitempty"`
+
+ // VirtualName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html#cfn-ec2-launchtemplate-blockdevicemapping-virtualname
+ VirtualName *types.Value `json:"VirtualName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_BlockDeviceMapping) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.BlockDeviceMapping"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationspecification.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationspecification.go
new file mode 100644
index 0000000000..e26ccc0fac
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationspecification.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_CapacityReservationSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CapacityReservationSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html
+type LaunchTemplate_CapacityReservationSpecification struct {
+
+ // CapacityReservationPreference AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html#cfn-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification-capacityreservationpreference
+ CapacityReservationPreference *types.Value `json:"CapacityReservationPreference,omitempty"`
+
+ // CapacityReservationTarget AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification.html#cfn-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification-capacityreservationtarget
+ CapacityReservationTarget *LaunchTemplate_CapacityReservationTarget `json:"CapacityReservationTarget,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_CapacityReservationSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.CapacityReservationSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationtarget.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationtarget.go
new file mode 100644
index 0000000000..4aa6970b83
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_capacityreservationtarget.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_CapacityReservationTarget AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CapacityReservationTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html
+type LaunchTemplate_CapacityReservationTarget struct {
+
+ // CapacityReservationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html#cfn-ec2-launchtemplate-capacityreservationtarget-capacityreservationid
+ CapacityReservationId *types.Value `json:"CapacityReservationId,omitempty"`
+
+ // CapacityReservationResourceGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html#cfn-ec2-launchtemplate-capacityreservationtarget-capacityreservationresourcegrouparn
+ CapacityReservationResourceGroupArn *types.Value `json:"CapacityReservationResourceGroupArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_CapacityReservationTarget) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.CapacityReservationTarget"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_cpuoptions.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_cpuoptions.go
new file mode 100644
index 0000000000..e8e0d6b4d0
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_cpuoptions.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_CpuOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CpuOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html
+type LaunchTemplate_CpuOptions struct {
+
+ // CoreCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions-corecount
+ CoreCount *types.Value `json:"CoreCount,omitempty"`
+
+ // ThreadsPerCore AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-cpuoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions-threadspercore
+ ThreadsPerCore *types.Value `json:"ThreadsPerCore,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_CpuOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.CpuOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_creditspecification.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_creditspecification.go
new file mode 100644
index 0000000000..83274dcc9a
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_creditspecification.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_CreditSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.CreditSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-creditspecification.html
+type LaunchTemplate_CreditSpecification struct {
+
+ // CpuCredits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-creditspecification.html#cfn-ec2-launchtemplate-launchtemplatedata-creditspecification-cpucredits
+ CpuCredits *types.Value `json:"CpuCredits,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_CreditSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.CreditSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_ebs.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_ebs.go
new file mode 100644
index 0000000000..569c0d87f4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_ebs.go
@@ -0,0 +1,72 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_Ebs AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.Ebs)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html
+type LaunchTemplate_Ebs struct {
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-deleteontermination
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-encrypted
+ Encrypted *types.Value `json:"Encrypted,omitempty"`
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // SnapshotId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-snapshotid
+ SnapshotId *types.Value `json:"SnapshotId,omitempty"`
+
+ // Throughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-throughput
+ Throughput *types.Value `json:"Throughput,omitempty"`
+
+ // VolumeSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-volumesize
+ VolumeSize *types.Value `json:"VolumeSize,omitempty"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping-ebs.html#cfn-ec2-launchtemplate-blockdevicemapping-ebs-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_Ebs) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.Ebs"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_elasticgpuspecification.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_elasticgpuspecification.go
new file mode 100644
index 0000000000..84c52d9cc6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_elasticgpuspecification.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_ElasticGpuSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.ElasticGpuSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html
+type LaunchTemplate_ElasticGpuSpecification struct {
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html#cfn-ec2-launchtemplate-elasticgpuspecification-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_ElasticGpuSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.ElasticGpuSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_enclaveoptions.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_enclaveoptions.go
new file mode 100644
index 0000000000..dbd7f8adf8
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_enclaveoptions.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_EnclaveOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.EnclaveOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-enclaveoptions.html
+type LaunchTemplate_EnclaveOptions struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-enclaveoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-enclaveoptions-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_EnclaveOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.EnclaveOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_hibernationoptions.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_hibernationoptions.go
new file mode 100644
index 0000000000..99a50b2a8c
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_hibernationoptions.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_HibernationOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.HibernationOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html
+type LaunchTemplate_HibernationOptions struct {
+
+ // Configured AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-hibernationoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-hibernationoptions-configured
+ Configured *types.Value `json:"Configured,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_HibernationOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.HibernationOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_iaminstanceprofile.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_iaminstanceprofile.go
new file mode 100644
index 0000000000..30ebb7cada
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_iaminstanceprofile.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_IamInstanceProfile AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.IamInstanceProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html
+type LaunchTemplate_IamInstanceProfile struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html#cfn-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile.html#cfn-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_IamInstanceProfile) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.IamInstanceProfile"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_instancemarketoptions.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_instancemarketoptions.go
new file mode 100644
index 0000000000..6d4172432a
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_instancemarketoptions.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_InstanceMarketOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.InstanceMarketOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html
+type LaunchTemplate_InstanceMarketOptions struct {
+
+ // MarketType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-markettype
+ MarketType *types.Value `json:"MarketType,omitempty"`
+
+ // SpotOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions
+ SpotOptions *LaunchTemplate_SpotOptions `json:"SpotOptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_InstanceMarketOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.InstanceMarketOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_ipv6add.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_ipv6add.go
new file mode 100644
index 0000000000..5646d2335f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_ipv6add.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_Ipv6Add AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.Ipv6Add)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html
+type LaunchTemplate_Ipv6Add struct {
+
+ // Ipv6Address AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html#cfn-ec2-launchtemplate-ipv6add-ipv6address
+ Ipv6Address *types.Value `json:"Ipv6Address,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_Ipv6Add) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.Ipv6Add"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatedata.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatedata.go
new file mode 100644
index 0000000000..d2088bbaa7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatedata.go
@@ -0,0 +1,167 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_LaunchTemplateData AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LaunchTemplateData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html
+type LaunchTemplate_LaunchTemplateData struct {
+
+ // BlockDeviceMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-blockdevicemappings
+ BlockDeviceMappings []LaunchTemplate_BlockDeviceMapping `json:"BlockDeviceMappings,omitempty"`
+
+ // CapacityReservationSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-capacityreservationspecification
+ CapacityReservationSpecification *LaunchTemplate_CapacityReservationSpecification `json:"CapacityReservationSpecification,omitempty"`
+
+ // CpuOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-cpuoptions
+ CpuOptions *LaunchTemplate_CpuOptions `json:"CpuOptions,omitempty"`
+
+ // CreditSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-creditspecification
+ CreditSpecification *LaunchTemplate_CreditSpecification `json:"CreditSpecification,omitempty"`
+
+ // DisableApiTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-disableapitermination
+ DisableApiTermination *types.Value `json:"DisableApiTermination,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // ElasticGpuSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-elasticgpuspecifications
+ ElasticGpuSpecifications []LaunchTemplate_ElasticGpuSpecification `json:"ElasticGpuSpecifications,omitempty"`
+
+ // ElasticInferenceAccelerators AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-elasticinferenceaccelerators
+ ElasticInferenceAccelerators []LaunchTemplate_LaunchTemplateElasticInferenceAccelerator `json:"ElasticInferenceAccelerators,omitempty"`
+
+ // EnclaveOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-enclaveoptions
+ EnclaveOptions *LaunchTemplate_EnclaveOptions `json:"EnclaveOptions,omitempty"`
+
+ // HibernationOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-hibernationoptions
+ HibernationOptions *LaunchTemplate_HibernationOptions `json:"HibernationOptions,omitempty"`
+
+ // IamInstanceProfile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-iaminstanceprofile
+ IamInstanceProfile *LaunchTemplate_IamInstanceProfile `json:"IamInstanceProfile,omitempty"`
+
+ // ImageId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-imageid
+ ImageId *types.Value `json:"ImageId,omitempty"`
+
+ // InstanceInitiatedShutdownBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-instanceinitiatedshutdownbehavior
+ InstanceInitiatedShutdownBehavior *types.Value `json:"InstanceInitiatedShutdownBehavior,omitempty"`
+
+ // InstanceMarketOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions
+ InstanceMarketOptions *LaunchTemplate_InstanceMarketOptions `json:"InstanceMarketOptions,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // KernelId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-kernelid
+ KernelId *types.Value `json:"KernelId,omitempty"`
+
+ // KeyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-keyname
+ KeyName *types.Value `json:"KeyName,omitempty"`
+
+ // LicenseSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-licensespecifications
+ LicenseSpecifications []LaunchTemplate_LicenseSpecification `json:"LicenseSpecifications,omitempty"`
+
+ // MetadataOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions
+ MetadataOptions *LaunchTemplate_MetadataOptions `json:"MetadataOptions,omitempty"`
+
+ // Monitoring AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-monitoring
+ Monitoring *LaunchTemplate_Monitoring `json:"Monitoring,omitempty"`
+
+ // NetworkInterfaces AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-networkinterfaces
+ NetworkInterfaces []LaunchTemplate_NetworkInterface `json:"NetworkInterfaces,omitempty"`
+
+ // Placement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-placement
+ Placement *LaunchTemplate_Placement `json:"Placement,omitempty"`
+
+ // RamDiskId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-ramdiskid
+ RamDiskId *types.Value `json:"RamDiskId,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // TagSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications
+ TagSpecifications []LaunchTemplate_TagSpecification `json:"TagSpecifications,omitempty"`
+
+ // UserData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-userdata
+ UserData *types.Value `json:"UserData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_LaunchTemplateData) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.LaunchTemplateData"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go
new file mode 100644
index 0000000000..e5c0783f9b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplateelasticinferenceaccelerator.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_LaunchTemplateElasticInferenceAccelerator AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html
+type LaunchTemplate_LaunchTemplateElasticInferenceAccelerator struct {
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html#cfn-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html#cfn-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_LaunchTemplateElasticInferenceAccelerator) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatetagspecification.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatetagspecification.go
new file mode 100644
index 0000000000..94b7f52c78
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_launchtemplatetagspecification.go
@@ -0,0 +1,43 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_LaunchTemplateTagSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatetagspecification.html
+type LaunchTemplate_LaunchTemplateTagSpecification struct {
+
+ // ResourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatetagspecification.html#cfn-ec2-launchtemplate-launchtemplatetagspecification-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatetagspecification.html#cfn-ec2-launchtemplate-launchtemplatetagspecification-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_LaunchTemplateTagSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_licensespecification.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_licensespecification.go
new file mode 100644
index 0000000000..9d6f3e96ce
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_licensespecification.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_LicenseSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.LicenseSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html
+type LaunchTemplate_LicenseSpecification struct {
+
+ // LicenseConfigurationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html#cfn-ec2-launchtemplate-licensespecification-licenseconfigurationarn
+ LicenseConfigurationArn *types.Value `json:"LicenseConfigurationArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_LicenseSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.LicenseSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_memorygibpervcpu.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_memorygibpervcpu.go
new file mode 100644
index 0000000000..eca65689b4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_memorygibpervcpu.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_MemoryGiBPerVCpu AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html
+type LaunchTemplate_MemoryGiBPerVCpu struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html#cfn-ec2-launchtemplate-memorygibpervcpu-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorygibpervcpu.html#cfn-ec2-launchtemplate-memorygibpervcpu-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_MemoryGiBPerVCpu) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_memorymib.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_memorymib.go
new file mode 100644
index 0000000000..c947bcb7f1
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_memorymib.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_MemoryMiB AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.MemoryMiB)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html
+type LaunchTemplate_MemoryMiB struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html#cfn-ec2-launchtemplate-memorymib-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-memorymib.html#cfn-ec2-launchtemplate-memorymib-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_MemoryMiB) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.MemoryMiB"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_metadataoptions.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_metadataoptions.go
new file mode 100644
index 0000000000..fb387281dd
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_metadataoptions.go
@@ -0,0 +1,52 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_MetadataOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.MetadataOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html
+type LaunchTemplate_MetadataOptions struct {
+
+ // HttpEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpendpoint
+ HttpEndpoint *types.Value `json:"HttpEndpoint,omitempty"`
+
+ // HttpProtocolIpv6 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpprotocolipv6
+ HttpProtocolIpv6 *types.Value `json:"HttpProtocolIpv6,omitempty"`
+
+ // HttpPutResponseHopLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpputresponsehoplimit
+ HttpPutResponseHopLimit *types.Value `json:"HttpPutResponseHopLimit,omitempty"`
+
+ // HttpTokens AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httptokens
+ HttpTokens *types.Value `json:"HttpTokens,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_MetadataOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.MetadataOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_monitoring.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_monitoring.go
new file mode 100644
index 0000000000..84f6e321c6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_monitoring.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_Monitoring AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.Monitoring)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-monitoring.html
+type LaunchTemplate_Monitoring struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-monitoring.html#cfn-ec2-launchtemplate-launchtemplatedata-monitoring-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_Monitoring) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.Monitoring"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_networkinterface.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_networkinterface.go
new file mode 100644
index 0000000000..c69c2c301e
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_networkinterface.go
@@ -0,0 +1,107 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_NetworkInterface AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.NetworkInterface)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html
+type LaunchTemplate_NetworkInterface struct {
+
+ // AssociateCarrierIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-associatecarrieripaddress
+ AssociateCarrierIpAddress *types.Value `json:"AssociateCarrierIpAddress,omitempty"`
+
+ // AssociatePublicIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-associatepublicipaddress
+ AssociatePublicIpAddress *types.Value `json:"AssociatePublicIpAddress,omitempty"`
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-deleteontermination
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DeviceIndex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-deviceindex
+ DeviceIndex *types.Value `json:"DeviceIndex,omitempty"`
+
+ // Groups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-groups
+ Groups *types.Value `json:"Groups,omitempty"`
+
+ // InterfaceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-interfacetype
+ InterfaceType *types.Value `json:"InterfaceType,omitempty"`
+
+ // Ipv6AddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-ipv6addresscount
+ Ipv6AddressCount *types.Value `json:"Ipv6AddressCount,omitempty"`
+
+ // Ipv6Addresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-ipv6addresses
+ Ipv6Addresses []LaunchTemplate_Ipv6Add `json:"Ipv6Addresses,omitempty"`
+
+ // NetworkCardIndex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-networkcardindex
+ NetworkCardIndex *types.Value `json:"NetworkCardIndex,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-privateipaddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // PrivateIpAddresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-privateipaddresses
+ PrivateIpAddresses []LaunchTemplate_PrivateIpAdd `json:"PrivateIpAddresses,omitempty"`
+
+ // SecondaryPrivateIpAddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-secondaryprivateipaddresscount
+ SecondaryPrivateIpAddressCount *types.Value `json:"SecondaryPrivateIpAddressCount,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html#cfn-ec2-launchtemplate-networkinterface-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_NetworkInterface) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.NetworkInterface"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_networkinterfacecount.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_networkinterfacecount.go
new file mode 100644
index 0000000000..436249b91e
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_networkinterfacecount.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_NetworkInterfaceCount AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.NetworkInterfaceCount)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html
+type LaunchTemplate_NetworkInterfaceCount struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html#cfn-ec2-launchtemplate-networkinterfacecount-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html#cfn-ec2-launchtemplate-networkinterfacecount-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_NetworkInterfaceCount) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.NetworkInterfaceCount"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_placement.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_placement.go
new file mode 100644
index 0000000000..3badacd7a4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_placement.go
@@ -0,0 +1,72 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_Placement AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.Placement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html
+type LaunchTemplate_Placement struct {
+
+ // Affinity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-affinity
+ Affinity *types.Value `json:"Affinity,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // HostId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-hostid
+ HostId *types.Value `json:"HostId,omitempty"`
+
+ // HostResourceGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-hostresourcegrouparn
+ HostResourceGroupArn *types.Value `json:"HostResourceGroupArn,omitempty"`
+
+ // PartitionNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-partitionnumber
+ PartitionNumber *types.Value `json:"PartitionNumber,omitempty"`
+
+ // SpreadDomain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-spreaddomain
+ SpreadDomain *types.Value `json:"SpreadDomain,omitempty"`
+
+ // Tenancy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-placement.html#cfn-ec2-launchtemplate-launchtemplatedata-placement-tenancy
+ Tenancy *types.Value `json:"Tenancy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_Placement) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.Placement"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_privateipadd.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_privateipadd.go
new file mode 100644
index 0000000000..1c55a3a52d
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_privateipadd.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_PrivateIpAdd AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.PrivateIpAdd)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html
+type LaunchTemplate_PrivateIpAdd struct {
+
+ // Primary AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html#cfn-ec2-launchtemplate-privateipadd-primary
+ Primary *types.Value `json:"Primary,omitempty"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html#cfn-ec2-launchtemplate-privateipadd-privateipaddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_PrivateIpAdd) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.PrivateIpAdd"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_spotoptions.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_spotoptions.go
new file mode 100644
index 0000000000..0870787804
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_spotoptions.go
@@ -0,0 +1,57 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_SpotOptions AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.SpotOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html
+type LaunchTemplate_SpotOptions struct {
+
+ // BlockDurationMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-blockdurationminutes
+ BlockDurationMinutes *types.Value `json:"BlockDurationMinutes,omitempty"`
+
+ // InstanceInterruptionBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-instanceinterruptionbehavior
+ InstanceInterruptionBehavior *types.Value `json:"InstanceInterruptionBehavior,omitempty"`
+
+ // MaxPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-maxprice
+ MaxPrice *types.Value `json:"MaxPrice,omitempty"`
+
+ // SpotInstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-spotinstancetype
+ SpotInstanceType *types.Value `json:"SpotInstanceType,omitempty"`
+
+ // ValidUntil AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-instancemarketoptions-spotoptions-validuntil
+ ValidUntil *types.Value `json:"ValidUntil,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_SpotOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.SpotOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_tagspecification.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_tagspecification.go
new file mode 100644
index 0000000000..c8375829f3
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_tagspecification.go
@@ -0,0 +1,43 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_TagSpecification AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.TagSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html
+type LaunchTemplate_TagSpecification struct {
+
+ // ResourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html#cfn-ec2-launchtemplate-tagspecification-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html#cfn-ec2-launchtemplate-tagspecification-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_TagSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.TagSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_totallocalstoragegb.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_totallocalstoragegb.go
new file mode 100644
index 0000000000..420d9459a4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_totallocalstoragegb.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_TotalLocalStorageGB AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.TotalLocalStorageGB)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html
+type LaunchTemplate_TotalLocalStorageGB struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html#cfn-ec2-launchtemplate-totallocalstoragegb-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html#cfn-ec2-launchtemplate-totallocalstoragegb-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_TotalLocalStorageGB) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.TotalLocalStorageGB"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-launchtemplate_vcpucount.go b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_vcpucount.go
new file mode 100644
index 0000000000..4ea39ffa45
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-launchtemplate_vcpucount.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LaunchTemplate_VCpuCount AWS CloudFormation Resource (AWS::EC2::LaunchTemplate.VCpuCount)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html
+type LaunchTemplate_VCpuCount struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html#cfn-ec2-launchtemplate-vcpucount-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-vcpucount.html#cfn-ec2-launchtemplate-vcpucount-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LaunchTemplate_VCpuCount) AWSCloudFormationType() string {
+ return "AWS::EC2::LaunchTemplate.VCpuCount"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-localgatewayroute.go b/goformation/cloudformation/ec2/aws-ec2-localgatewayroute.go
new file mode 100644
index 0000000000..54bb147ba4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-localgatewayroute.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocalGatewayRoute AWS CloudFormation Resource (AWS::EC2::LocalGatewayRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html
+type LocalGatewayRoute struct {
+
+ // DestinationCidrBlock AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html#cfn-ec2-localgatewayroute-destinationcidrblock
+ DestinationCidrBlock *types.Value `json:"DestinationCidrBlock,omitempty"`
+
+ // LocalGatewayRouteTableId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html#cfn-ec2-localgatewayroute-localgatewayroutetableid
+ LocalGatewayRouteTableId *types.Value `json:"LocalGatewayRouteTableId,omitempty"`
+
+ // LocalGatewayVirtualInterfaceGroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html#cfn-ec2-localgatewayroute-localgatewayvirtualinterfacegroupid
+ LocalGatewayVirtualInterfaceGroupId *types.Value `json:"LocalGatewayVirtualInterfaceGroupId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocalGatewayRoute) AWSCloudFormationType() string {
+ return "AWS::EC2::LocalGatewayRoute"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocalGatewayRoute) MarshalJSON() ([]byte, error) {
+ type Properties LocalGatewayRoute
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocalGatewayRoute) UnmarshalJSON(b []byte) error {
+ type Properties LocalGatewayRoute
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocalGatewayRoute(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-localgatewayroutetablevpcassociation.go b/goformation/cloudformation/ec2/aws-ec2-localgatewayroutetablevpcassociation.go
new file mode 100644
index 0000000000..99731eda73
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-localgatewayroutetablevpcassociation.go
@@ -0,0 +1,119 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocalGatewayRouteTableVPCAssociation AWS CloudFormation Resource (AWS::EC2::LocalGatewayRouteTableVPCAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html
+type LocalGatewayRouteTableVPCAssociation struct {
+
+ // LocalGatewayRouteTableId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html#cfn-ec2-localgatewayroutetablevpcassociation-localgatewayroutetableid
+ LocalGatewayRouteTableId *types.Value `json:"LocalGatewayRouteTableId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html#cfn-ec2-localgatewayroutetablevpcassociation-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html#cfn-ec2-localgatewayroutetablevpcassociation-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocalGatewayRouteTableVPCAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::LocalGatewayRouteTableVPCAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LocalGatewayRouteTableVPCAssociation) MarshalJSON() ([]byte, error) {
+ type Properties LocalGatewayRouteTableVPCAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LocalGatewayRouteTableVPCAssociation) UnmarshalJSON(b []byte) error {
+ type Properties LocalGatewayRouteTableVPCAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LocalGatewayRouteTableVPCAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-localgatewayroutetablevpcassociation_tags.go b/goformation/cloudformation/ec2/aws-ec2-localgatewayroutetablevpcassociation_tags.go
new file mode 100644
index 0000000000..a05a349b2a
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-localgatewayroutetablevpcassociation_tags.go
@@ -0,0 +1,36 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LocalGatewayRouteTableVPCAssociation_Tags AWS CloudFormation Resource (AWS::EC2::LocalGatewayRouteTableVPCAssociation.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-localgatewayroutetablevpcassociation-tags.html
+type LocalGatewayRouteTableVPCAssociation_Tags struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-localgatewayroutetablevpcassociation-tags.html#cfn-ec2-localgatewayroutetablevpcassociation-tags-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LocalGatewayRouteTableVPCAssociation_Tags) AWSCloudFormationType() string {
+ return "AWS::EC2::LocalGatewayRouteTableVPCAssociation.Tags"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-natgateway.go b/goformation/cloudformation/ec2/aws-ec2-natgateway.go
new file mode 100644
index 0000000000..a364a9cbfe
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-natgateway.go
@@ -0,0 +1,124 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// NatGateway AWS CloudFormation Resource (AWS::EC2::NatGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html
+type NatGateway struct {
+
+ // AllocationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-allocationid
+ AllocationId *types.Value `json:"AllocationId,omitempty"`
+
+ // ConnectivityType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-connectivitytype
+ ConnectivityType *types.Value `json:"ConnectivityType,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html#cfn-ec2-natgateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NatGateway) AWSCloudFormationType() string {
+ return "AWS::EC2::NatGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NatGateway) MarshalJSON() ([]byte, error) {
+ type Properties NatGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NatGateway) UnmarshalJSON(b []byte) error {
+ type Properties NatGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NatGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkacl.go b/goformation/cloudformation/ec2/aws-ec2-networkacl.go
new file mode 100644
index 0000000000..bd4d9f1436
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkacl.go
@@ -0,0 +1,114 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkAcl AWS CloudFormation Resource (AWS::EC2::NetworkAcl)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html
+type NetworkAcl struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html#cfn-ec2-networkacl-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html#cfn-ec2-networkacl-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkAcl) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkAcl"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NetworkAcl) MarshalJSON() ([]byte, error) {
+ type Properties NetworkAcl
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NetworkAcl) UnmarshalJSON(b []byte) error {
+ type Properties NetworkAcl
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NetworkAcl(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkaclentry.go b/goformation/cloudformation/ec2/aws-ec2-networkaclentry.go
new file mode 100644
index 0000000000..4b3b20b5e1
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkaclentry.go
@@ -0,0 +1,148 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkAclEntry AWS CloudFormation Resource (AWS::EC2::NetworkAclEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html
+type NetworkAclEntry struct {
+
+ // CidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-cidrblock
+ CidrBlock *types.Value `json:"CidrBlock,omitempty"`
+
+ // Egress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-egress
+ Egress *types.Value `json:"Egress,omitempty"`
+
+ // Icmp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-icmp
+ Icmp *NetworkAclEntry_Icmp `json:"Icmp,omitempty"`
+
+ // Ipv6CidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-ipv6cidrblock
+ Ipv6CidrBlock *types.Value `json:"Ipv6CidrBlock,omitempty"`
+
+ // NetworkAclId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-networkaclid
+ NetworkAclId *types.Value `json:"NetworkAclId,omitempty"`
+
+ // PortRange AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-portrange
+ PortRange *NetworkAclEntry_PortRange `json:"PortRange,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-protocol
+ Protocol *types.Value `json:"Protocol"`
+
+ // RuleAction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-ruleaction
+ RuleAction *types.Value `json:"RuleAction,omitempty"`
+
+ // RuleNumber AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html#cfn-ec2-networkaclentry-rulenumber
+ RuleNumber *types.Value `json:"RuleNumber"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkAclEntry) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkAclEntry"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NetworkAclEntry) MarshalJSON() ([]byte, error) {
+ type Properties NetworkAclEntry
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NetworkAclEntry) UnmarshalJSON(b []byte) error {
+ type Properties NetworkAclEntry
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NetworkAclEntry(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkaclentry_icmp.go b/goformation/cloudformation/ec2/aws-ec2-networkaclentry_icmp.go
new file mode 100644
index 0000000000..bd346dcd46
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkaclentry_icmp.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkAclEntry_Icmp AWS CloudFormation Resource (AWS::EC2::NetworkAclEntry.Icmp)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html
+type NetworkAclEntry_Icmp struct {
+
+ // Code AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html#cfn-ec2-networkaclentry-icmp-code
+ Code *types.Value `json:"Code,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-icmp.html#cfn-ec2-networkaclentry-icmp-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkAclEntry_Icmp) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkAclEntry.Icmp"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkaclentry_portrange.go b/goformation/cloudformation/ec2/aws-ec2-networkaclentry_portrange.go
new file mode 100644
index 0000000000..03efe69ff5
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkaclentry_portrange.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkAclEntry_PortRange AWS CloudFormation Resource (AWS::EC2::NetworkAclEntry.PortRange)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html
+type NetworkAclEntry_PortRange struct {
+
+ // From AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html#cfn-ec2-networkaclentry-portrange-from
+ From *types.Value `json:"From,omitempty"`
+
+ // To AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkaclentry-portrange.html#cfn-ec2-networkaclentry-portrange-to
+ To *types.Value `json:"To,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkAclEntry_PortRange) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkAclEntry.PortRange"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis.go
new file mode 100644
index 0000000000..9298c77874
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis.go
@@ -0,0 +1,119 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html
+type NetworkInsightsAnalysis struct {
+
+ // FilterInArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html#cfn-ec2-networkinsightsanalysis-filterinarns
+ FilterInArns *types.Value `json:"FilterInArns,omitempty"`
+
+ // NetworkInsightsPathId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html#cfn-ec2-networkinsightsanalysis-networkinsightspathid
+ NetworkInsightsPathId *types.Value `json:"NetworkInsightsPathId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html#cfn-ec2-networkinsightsanalysis-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NetworkInsightsAnalysis) MarshalJSON() ([]byte, error) {
+ type Properties NetworkInsightsAnalysis
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NetworkInsightsAnalysis) UnmarshalJSON(b []byte) error {
+ type Properties NetworkInsightsAnalysis
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NetworkInsightsAnalysis(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_alternatepathhint.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_alternatepathhint.go
new file mode 100644
index 0000000000..87f739e470
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_alternatepathhint.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_AlternatePathHint AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.AlternatePathHint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-alternatepathhint.html
+type NetworkInsightsAnalysis_AlternatePathHint struct {
+
+ // ComponentArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-alternatepathhint.html#cfn-ec2-networkinsightsanalysis-alternatepathhint-componentarn
+ ComponentArn *types.Value `json:"ComponentArn,omitempty"`
+
+ // ComponentId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-alternatepathhint.html#cfn-ec2-networkinsightsanalysis-alternatepathhint-componentid
+ ComponentId *types.Value `json:"ComponentId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_AlternatePathHint) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.AlternatePathHint"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisaclrule.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisaclrule.go
new file mode 100644
index 0000000000..b44b752885
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisaclrule.go
@@ -0,0 +1,62 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_AnalysisAclRule AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html
+type NetworkInsightsAnalysis_AnalysisAclRule struct {
+
+ // Cidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html#cfn-ec2-networkinsightsanalysis-analysisaclrule-cidr
+ Cidr *types.Value `json:"Cidr,omitempty"`
+
+ // Egress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html#cfn-ec2-networkinsightsanalysis-analysisaclrule-egress
+ Egress *types.Value `json:"Egress,omitempty"`
+
+ // PortRange AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html#cfn-ec2-networkinsightsanalysis-analysisaclrule-portrange
+ PortRange *NetworkInsightsAnalysis_PortRange `json:"PortRange,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html#cfn-ec2-networkinsightsanalysis-analysisaclrule-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // RuleAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html#cfn-ec2-networkinsightsanalysis-analysisaclrule-ruleaction
+ RuleAction *types.Value `json:"RuleAction,omitempty"`
+
+ // RuleNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisaclrule.html#cfn-ec2-networkinsightsanalysis-analysisaclrule-rulenumber
+ RuleNumber *types.Value `json:"RuleNumber,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_AnalysisAclRule) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysiscomponent.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysiscomponent.go
new file mode 100644
index 0000000000..cf1572d5b2
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysiscomponent.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_AnalysisComponent AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html
+type NetworkInsightsAnalysis_AnalysisComponent struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html#cfn-ec2-networkinsightsanalysis-analysiscomponent-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysiscomponent.html#cfn-ec2-networkinsightsanalysis-analysiscomponent-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_AnalysisComponent) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisloadbalancerlistener.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisloadbalancerlistener.go
new file mode 100644
index 0000000000..94b14046dd
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisloadbalancerlistener.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_AnalysisLoadBalancerListener AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancerlistener.html
+type NetworkInsightsAnalysis_AnalysisLoadBalancerListener struct {
+
+ // InstancePort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancerlistener.html#cfn-ec2-networkinsightsanalysis-analysisloadbalancerlistener-instanceport
+ InstancePort *types.Value `json:"InstancePort,omitempty"`
+
+ // LoadBalancerPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancerlistener.html#cfn-ec2-networkinsightsanalysis-analysisloadbalancerlistener-loadbalancerport
+ LoadBalancerPort *types.Value `json:"LoadBalancerPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_AnalysisLoadBalancerListener) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisloadbalancertarget.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisloadbalancertarget.go
new file mode 100644
index 0000000000..c3745bbaa3
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisloadbalancertarget.go
@@ -0,0 +1,52 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_AnalysisLoadBalancerTarget AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancertarget.html
+type NetworkInsightsAnalysis_AnalysisLoadBalancerTarget struct {
+
+ // Address AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancertarget.html#cfn-ec2-networkinsightsanalysis-analysisloadbalancertarget-address
+ Address *types.Value `json:"Address,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancertarget.html#cfn-ec2-networkinsightsanalysis-analysisloadbalancertarget-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // Instance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancertarget.html#cfn-ec2-networkinsightsanalysis-analysisloadbalancertarget-instance
+ Instance *NetworkInsightsAnalysis_AnalysisComponent `json:"Instance,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisloadbalancertarget.html#cfn-ec2-networkinsightsanalysis-analysisloadbalancertarget-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_AnalysisLoadBalancerTarget) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysispacketheader.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysispacketheader.go
new file mode 100644
index 0000000000..63306fc50f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysispacketheader.go
@@ -0,0 +1,57 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_AnalysisPacketHeader AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html
+type NetworkInsightsAnalysis_AnalysisPacketHeader struct {
+
+ // DestinationAddresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html#cfn-ec2-networkinsightsanalysis-analysispacketheader-destinationaddresses
+ DestinationAddresses *types.Value `json:"DestinationAddresses,omitempty"`
+
+ // DestinationPortRanges AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html#cfn-ec2-networkinsightsanalysis-analysispacketheader-destinationportranges
+ DestinationPortRanges []NetworkInsightsAnalysis_PortRange `json:"DestinationPortRanges,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html#cfn-ec2-networkinsightsanalysis-analysispacketheader-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // SourceAddresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html#cfn-ec2-networkinsightsanalysis-analysispacketheader-sourceaddresses
+ SourceAddresses *types.Value `json:"SourceAddresses,omitempty"`
+
+ // SourcePortRanges AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysispacketheader.html#cfn-ec2-networkinsightsanalysis-analysispacketheader-sourceportranges
+ SourcePortRanges []NetworkInsightsAnalysis_PortRange `json:"SourcePortRanges,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_AnalysisPacketHeader) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisroutetableroute.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisroutetableroute.go
new file mode 100644
index 0000000000..9072c8a9d9
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysisroutetableroute.go
@@ -0,0 +1,82 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_AnalysisRouteTableRoute AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html
+type NetworkInsightsAnalysis_AnalysisRouteTableRoute struct {
+
+ // NatGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-natgatewayid
+ NatGatewayId *types.Value `json:"NatGatewayId,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // Origin AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-origin
+ Origin *types.Value `json:"Origin,omitempty"`
+
+ // TransitGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-transitgatewayid
+ TransitGatewayId *types.Value `json:"TransitGatewayId,omitempty"`
+
+ // VpcPeeringConnectionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-vpcpeeringconnectionid
+ VpcPeeringConnectionId *types.Value `json:"VpcPeeringConnectionId,omitempty"`
+
+ // destinationCidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-destinationcidr
+ destinationCidr *types.Value `json:"destinationCidr,omitempty"`
+
+ // destinationPrefixListId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-destinationprefixlistid
+ destinationPrefixListId *types.Value `json:"destinationPrefixListId,omitempty"`
+
+ // egressOnlyInternetGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-egressonlyinternetgatewayid
+ egressOnlyInternetGatewayId *types.Value `json:"egressOnlyInternetGatewayId,omitempty"`
+
+ // gatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-gatewayid
+ gatewayId *types.Value `json:"gatewayId,omitempty"`
+
+ // instanceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysisroutetableroute.html#cfn-ec2-networkinsightsanalysis-analysisroutetableroute-instanceid
+ instanceId *types.Value `json:"instanceId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_AnalysisRouteTableRoute) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysissecuritygrouprule.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysissecuritygrouprule.go
new file mode 100644
index 0000000000..4379233f45
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_analysissecuritygrouprule.go
@@ -0,0 +1,62 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_AnalysisSecurityGroupRule AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html
+type NetworkInsightsAnalysis_AnalysisSecurityGroupRule struct {
+
+ // Cidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html#cfn-ec2-networkinsightsanalysis-analysissecuritygrouprule-cidr
+ Cidr *types.Value `json:"Cidr,omitempty"`
+
+ // Direction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html#cfn-ec2-networkinsightsanalysis-analysissecuritygrouprule-direction
+ Direction *types.Value `json:"Direction,omitempty"`
+
+ // PortRange AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html#cfn-ec2-networkinsightsanalysis-analysissecuritygrouprule-portrange
+ PortRange *NetworkInsightsAnalysis_PortRange `json:"PortRange,omitempty"`
+
+ // PrefixListId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html#cfn-ec2-networkinsightsanalysis-analysissecuritygrouprule-prefixlistid
+ PrefixListId *types.Value `json:"PrefixListId,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html#cfn-ec2-networkinsightsanalysis-analysissecuritygrouprule-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // SecurityGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-analysissecuritygrouprule.html#cfn-ec2-networkinsightsanalysis-analysissecuritygrouprule-securitygroupid
+ SecurityGroupId *types.Value `json:"SecurityGroupId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_AnalysisSecurityGroupRule) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_explanation.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_explanation.go
new file mode 100644
index 0000000000..e933440d4d
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_explanation.go
@@ -0,0 +1,257 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_Explanation AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.Explanation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html
+type NetworkInsightsAnalysis_Explanation struct {
+
+ // Acl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-acl
+ Acl *NetworkInsightsAnalysis_AnalysisComponent `json:"Acl,omitempty"`
+
+ // AclRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-aclrule
+ AclRule *NetworkInsightsAnalysis_AnalysisAclRule `json:"AclRule,omitempty"`
+
+ // Address AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-address
+ Address *types.Value `json:"Address,omitempty"`
+
+ // Addresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-addresses
+ Addresses *types.Value `json:"Addresses,omitempty"`
+
+ // AttachedTo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-attachedto
+ AttachedTo *NetworkInsightsAnalysis_AnalysisComponent `json:"AttachedTo,omitempty"`
+
+ // AvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-availabilityzones
+ AvailabilityZones *types.Value `json:"AvailabilityZones,omitempty"`
+
+ // Cidrs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-cidrs
+ Cidrs *types.Value `json:"Cidrs,omitempty"`
+
+ // ClassicLoadBalancerListener AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-classicloadbalancerlistener
+ ClassicLoadBalancerListener *NetworkInsightsAnalysis_AnalysisLoadBalancerListener `json:"ClassicLoadBalancerListener,omitempty"`
+
+ // Component AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-component
+ Component *NetworkInsightsAnalysis_AnalysisComponent `json:"Component,omitempty"`
+
+ // CustomerGateway AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-customergateway
+ CustomerGateway *NetworkInsightsAnalysis_AnalysisComponent `json:"CustomerGateway,omitempty"`
+
+ // Destination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-destination
+ Destination *NetworkInsightsAnalysis_AnalysisComponent `json:"Destination,omitempty"`
+
+ // DestinationVpc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-destinationvpc
+ DestinationVpc *NetworkInsightsAnalysis_AnalysisComponent `json:"DestinationVpc,omitempty"`
+
+ // Direction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-direction
+ Direction *types.Value `json:"Direction,omitempty"`
+
+ // ElasticLoadBalancerListener AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-elasticloadbalancerlistener
+ ElasticLoadBalancerListener *NetworkInsightsAnalysis_AnalysisComponent `json:"ElasticLoadBalancerListener,omitempty"`
+
+ // ExplanationCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-explanationcode
+ ExplanationCode *types.Value `json:"ExplanationCode,omitempty"`
+
+ // IngressRouteTable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-ingressroutetable
+ IngressRouteTable *NetworkInsightsAnalysis_AnalysisComponent `json:"IngressRouteTable,omitempty"`
+
+ // InternetGateway AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-internetgateway
+ InternetGateway *NetworkInsightsAnalysis_AnalysisComponent `json:"InternetGateway,omitempty"`
+
+ // LoadBalancerArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-loadbalancerarn
+ LoadBalancerArn *types.Value `json:"LoadBalancerArn,omitempty"`
+
+ // LoadBalancerListenerPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-loadbalancerlistenerport
+ LoadBalancerListenerPort *types.Value `json:"LoadBalancerListenerPort,omitempty"`
+
+ // LoadBalancerTarget AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-loadbalancertarget
+ LoadBalancerTarget *NetworkInsightsAnalysis_AnalysisLoadBalancerTarget `json:"LoadBalancerTarget,omitempty"`
+
+ // LoadBalancerTargetGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-loadbalancertargetgroup
+ LoadBalancerTargetGroup *NetworkInsightsAnalysis_AnalysisComponent `json:"LoadBalancerTargetGroup,omitempty"`
+
+ // LoadBalancerTargetGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-loadbalancertargetgroups
+ LoadBalancerTargetGroups []NetworkInsightsAnalysis_AnalysisComponent `json:"LoadBalancerTargetGroups,omitempty"`
+
+ // LoadBalancerTargetPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-loadbalancertargetport
+ LoadBalancerTargetPort *types.Value `json:"LoadBalancerTargetPort,omitempty"`
+
+ // MissingComponent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-missingcomponent
+ MissingComponent *types.Value `json:"MissingComponent,omitempty"`
+
+ // NatGateway AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-natgateway
+ NatGateway *NetworkInsightsAnalysis_AnalysisComponent `json:"NatGateway,omitempty"`
+
+ // NetworkInterface AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-networkinterface
+ NetworkInterface *NetworkInsightsAnalysis_AnalysisComponent `json:"NetworkInterface,omitempty"`
+
+ // PacketField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-packetfield
+ PacketField *types.Value `json:"PacketField,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // PortRanges AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-portranges
+ PortRanges []NetworkInsightsAnalysis_PortRange `json:"PortRanges,omitempty"`
+
+ // PrefixList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-prefixlist
+ PrefixList *NetworkInsightsAnalysis_AnalysisComponent `json:"PrefixList,omitempty"`
+
+ // Protocols AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-protocols
+ Protocols *types.Value `json:"Protocols,omitempty"`
+
+ // RouteTable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-routetable
+ RouteTable *NetworkInsightsAnalysis_AnalysisComponent `json:"RouteTable,omitempty"`
+
+ // RouteTableRoute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-routetableroute
+ RouteTableRoute *NetworkInsightsAnalysis_AnalysisRouteTableRoute `json:"RouteTableRoute,omitempty"`
+
+ // SecurityGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-securitygroup
+ SecurityGroup *NetworkInsightsAnalysis_AnalysisComponent `json:"SecurityGroup,omitempty"`
+
+ // SecurityGroupRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-securitygrouprule
+ SecurityGroupRule *NetworkInsightsAnalysis_AnalysisSecurityGroupRule `json:"SecurityGroupRule,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-securitygroups
+ SecurityGroups []NetworkInsightsAnalysis_AnalysisComponent `json:"SecurityGroups,omitempty"`
+
+ // SourceVpc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-sourcevpc
+ SourceVpc *NetworkInsightsAnalysis_AnalysisComponent `json:"SourceVpc,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Subnet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-subnet
+ Subnet *NetworkInsightsAnalysis_AnalysisComponent `json:"Subnet,omitempty"`
+
+ // SubnetRouteTable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-subnetroutetable
+ SubnetRouteTable *NetworkInsightsAnalysis_AnalysisComponent `json:"SubnetRouteTable,omitempty"`
+
+ // Vpc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-vpc
+ Vpc *NetworkInsightsAnalysis_AnalysisComponent `json:"Vpc,omitempty"`
+
+ // VpcPeeringConnection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-vpcpeeringconnection
+ VpcPeeringConnection *NetworkInsightsAnalysis_AnalysisComponent `json:"VpcPeeringConnection,omitempty"`
+
+ // VpnConnection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-vpnconnection
+ VpnConnection *NetworkInsightsAnalysis_AnalysisComponent `json:"VpnConnection,omitempty"`
+
+ // VpnGateway AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-vpngateway
+ VpnGateway *NetworkInsightsAnalysis_AnalysisComponent `json:"VpnGateway,omitempty"`
+
+ // vpcEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-explanation.html#cfn-ec2-networkinsightsanalysis-explanation-vpcendpoint
+ vpcEndpoint *NetworkInsightsAnalysis_AnalysisComponent `json:"vpcEndpoint,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_Explanation) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.Explanation"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_pathcomponent.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_pathcomponent.go
new file mode 100644
index 0000000000..af2f7265d2
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_pathcomponent.go
@@ -0,0 +1,87 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_PathComponent AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.PathComponent)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html
+type NetworkInsightsAnalysis_PathComponent struct {
+
+ // AclRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-aclrule
+ AclRule *NetworkInsightsAnalysis_AnalysisAclRule `json:"AclRule,omitempty"`
+
+ // Component AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-component
+ Component *NetworkInsightsAnalysis_AnalysisComponent `json:"Component,omitempty"`
+
+ // DestinationVpc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-destinationvpc
+ DestinationVpc *NetworkInsightsAnalysis_AnalysisComponent `json:"DestinationVpc,omitempty"`
+
+ // InboundHeader AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-inboundheader
+ InboundHeader *NetworkInsightsAnalysis_AnalysisPacketHeader `json:"InboundHeader,omitempty"`
+
+ // OutboundHeader AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-outboundheader
+ OutboundHeader *NetworkInsightsAnalysis_AnalysisPacketHeader `json:"OutboundHeader,omitempty"`
+
+ // RouteTableRoute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-routetableroute
+ RouteTableRoute *NetworkInsightsAnalysis_AnalysisRouteTableRoute `json:"RouteTableRoute,omitempty"`
+
+ // SecurityGroupRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-securitygrouprule
+ SecurityGroupRule *NetworkInsightsAnalysis_AnalysisSecurityGroupRule `json:"SecurityGroupRule,omitempty"`
+
+ // SequenceNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-sequencenumber
+ SequenceNumber *types.Value `json:"SequenceNumber,omitempty"`
+
+ // SourceVpc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-sourcevpc
+ SourceVpc *NetworkInsightsAnalysis_AnalysisComponent `json:"SourceVpc,omitempty"`
+
+ // Subnet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-subnet
+ Subnet *NetworkInsightsAnalysis_AnalysisComponent `json:"Subnet,omitempty"`
+
+ // Vpc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-pathcomponent.html#cfn-ec2-networkinsightsanalysis-pathcomponent-vpc
+ Vpc *NetworkInsightsAnalysis_AnalysisComponent `json:"Vpc,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_PathComponent) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.PathComponent"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_portrange.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_portrange.go
new file mode 100644
index 0000000000..c352f478ee
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightsanalysis_portrange.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsAnalysis_PortRange AWS CloudFormation Resource (AWS::EC2::NetworkInsightsAnalysis.PortRange)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html
+type NetworkInsightsAnalysis_PortRange struct {
+
+ // From AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html#cfn-ec2-networkinsightsanalysis-portrange-from
+ From *types.Value `json:"From,omitempty"`
+
+ // To AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinsightsanalysis-portrange.html#cfn-ec2-networkinsightsanalysis-portrange-to
+ To *types.Value `json:"To,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsAnalysis_PortRange) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsAnalysis.PortRange"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinsightspath.go b/goformation/cloudformation/ec2/aws-ec2-networkinsightspath.go
new file mode 100644
index 0000000000..92e6f14fc7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinsightspath.go
@@ -0,0 +1,139 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInsightsPath AWS CloudFormation Resource (AWS::EC2::NetworkInsightsPath)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html
+type NetworkInsightsPath struct {
+
+ // Destination AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html#cfn-ec2-networkinsightspath-destination
+ Destination *types.Value `json:"Destination,omitempty"`
+
+ // DestinationIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html#cfn-ec2-networkinsightspath-destinationip
+ DestinationIp *types.Value `json:"DestinationIp,omitempty"`
+
+ // DestinationPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html#cfn-ec2-networkinsightspath-destinationport
+ DestinationPort *types.Value `json:"DestinationPort,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html#cfn-ec2-networkinsightspath-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html#cfn-ec2-networkinsightspath-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // SourceIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html#cfn-ec2-networkinsightspath-sourceip
+ SourceIp *types.Value `json:"SourceIp,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html#cfn-ec2-networkinsightspath-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInsightsPath) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInsightsPath"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NetworkInsightsPath) MarshalJSON() ([]byte, error) {
+ type Properties NetworkInsightsPath
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NetworkInsightsPath) UnmarshalJSON(b []byte) error {
+ type Properties NetworkInsightsPath
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NetworkInsightsPath(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinterface.go b/goformation/cloudformation/ec2/aws-ec2-networkinterface.go
new file mode 100644
index 0000000000..0b3af9a2eb
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinterface.go
@@ -0,0 +1,159 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInterface AWS CloudFormation Resource (AWS::EC2::NetworkInterface)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html
+type NetworkInterface struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // GroupSet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-groupset
+ GroupSet *types.Value `json:"GroupSet,omitempty"`
+
+ // InterfaceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-interfacetype
+ InterfaceType *types.Value `json:"InterfaceType,omitempty"`
+
+ // Ipv6AddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresscount
+ Ipv6AddressCount *types.Value `json:"Ipv6AddressCount,omitempty"`
+
+ // Ipv6Addresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-ipv6addresses
+ Ipv6Addresses []NetworkInterface_InstanceIpv6Address `json:"Ipv6Addresses,omitempty"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // PrivateIpAddresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-privateipaddresses
+ PrivateIpAddresses []NetworkInterface_PrivateIpAddressSpecification `json:"PrivateIpAddresses,omitempty"`
+
+ // SecondaryPrivateIpAddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-secondaryprivateipaddresscount
+ SecondaryPrivateIpAddressCount *types.Value `json:"SecondaryPrivateIpAddressCount,omitempty"`
+
+ // SourceDestCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-sourcedestcheck
+ SourceDestCheck *types.Value `json:"SourceDestCheck,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html#cfn-ec2-networkinterface-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInterface) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInterface"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NetworkInterface) MarshalJSON() ([]byte, error) {
+ type Properties NetworkInterface
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NetworkInterface) UnmarshalJSON(b []byte) error {
+ type Properties NetworkInterface
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NetworkInterface(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinterface_instanceipv6address.go b/goformation/cloudformation/ec2/aws-ec2-networkinterface_instanceipv6address.go
new file mode 100644
index 0000000000..868e462b5f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinterface_instanceipv6address.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInterface_InstanceIpv6Address AWS CloudFormation Resource (AWS::EC2::NetworkInterface.InstanceIpv6Address)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html
+type NetworkInterface_InstanceIpv6Address struct {
+
+ // Ipv6Address AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-instanceipv6address.html#cfn-ec2-networkinterface-instanceipv6address-ipv6address
+ Ipv6Address *types.Value `json:"Ipv6Address,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInterface_InstanceIpv6Address) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInterface.InstanceIpv6Address"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinterface_privateipaddressspecification.go b/goformation/cloudformation/ec2/aws-ec2-networkinterface_privateipaddressspecification.go
new file mode 100644
index 0000000000..d37d20d0af
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinterface_privateipaddressspecification.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInterface_PrivateIpAddressSpecification AWS CloudFormation Resource (AWS::EC2::NetworkInterface.PrivateIpAddressSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-privateipaddressspecification.html
+type NetworkInterface_PrivateIpAddressSpecification struct {
+
+ // Primary AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-privateipaddressspecification.html#cfn-ec2-networkinterface-privateipaddressspecification-primary
+ Primary *types.Value `json:"Primary"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-networkinterface-privateipaddressspecification.html#cfn-ec2-networkinterface-privateipaddressspecification-privateipaddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInterface_PrivateIpAddressSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinterfaceattachment.go b/goformation/cloudformation/ec2/aws-ec2-networkinterfaceattachment.go
new file mode 100644
index 0000000000..c0bcb195c4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinterfaceattachment.go
@@ -0,0 +1,123 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInterfaceAttachment AWS CloudFormation Resource (AWS::EC2::NetworkInterfaceAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html
+type NetworkInterfaceAttachment struct {
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html#cfn-ec2-network-interface-attachment-deleteonterm
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // DeviceIndex AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html#cfn-ec2-network-interface-attachment-deviceindex
+ DeviceIndex *types.Value `json:"DeviceIndex,omitempty"`
+
+ // InstanceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html#cfn-ec2-network-interface-attachment-instanceid
+ InstanceId *types.Value `json:"InstanceId,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-network-interface-attachment.html#cfn-ec2-network-interface-attachment-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInterfaceAttachment) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInterfaceAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NetworkInterfaceAttachment) MarshalJSON() ([]byte, error) {
+ type Properties NetworkInterfaceAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NetworkInterfaceAttachment) UnmarshalJSON(b []byte) error {
+ type Properties NetworkInterfaceAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NetworkInterfaceAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-networkinterfacepermission.go b/goformation/cloudformation/ec2/aws-ec2-networkinterfacepermission.go
new file mode 100644
index 0000000000..747cb018e6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-networkinterfacepermission.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NetworkInterfacePermission AWS CloudFormation Resource (AWS::EC2::NetworkInterfacePermission)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html
+type NetworkInterfacePermission struct {
+
+ // AwsAccountId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-awsaccountid
+ AwsAccountId *types.Value `json:"AwsAccountId,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // Permission AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-permission
+ Permission *types.Value `json:"Permission,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NetworkInterfacePermission) AWSCloudFormationType() string {
+ return "AWS::EC2::NetworkInterfacePermission"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NetworkInterfacePermission) MarshalJSON() ([]byte, error) {
+ type Properties NetworkInterfacePermission
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NetworkInterfacePermission) UnmarshalJSON(b []byte) error {
+ type Properties NetworkInterfacePermission
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NetworkInterfacePermission(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-placementgroup.go b/goformation/cloudformation/ec2/aws-ec2-placementgroup.go
new file mode 100644
index 0000000000..95c2e6aea6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-placementgroup.go
@@ -0,0 +1,108 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PlacementGroup AWS CloudFormation Resource (AWS::EC2::PlacementGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html
+type PlacementGroup struct {
+
+ // Strategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html#cfn-ec2-placementgroup-strategy
+ Strategy *types.Value `json:"Strategy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PlacementGroup) AWSCloudFormationType() string {
+ return "AWS::EC2::PlacementGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PlacementGroup) MarshalJSON() ([]byte, error) {
+ type Properties PlacementGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PlacementGroup) UnmarshalJSON(b []byte) error {
+ type Properties PlacementGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PlacementGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-prefixlist.go b/goformation/cloudformation/ec2/aws-ec2-prefixlist.go
new file mode 100644
index 0000000000..55530a85f0
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-prefixlist.go
@@ -0,0 +1,129 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// PrefixList AWS CloudFormation Resource (AWS::EC2::PrefixList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html
+type PrefixList struct {
+
+ // AddressFamily AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-addressfamily
+ AddressFamily *types.Value `json:"AddressFamily,omitempty"`
+
+ // Entries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-entries
+ Entries []PrefixList_Entry `json:"Entries,omitempty"`
+
+ // MaxEntries AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-maxentries
+ MaxEntries *types.Value `json:"MaxEntries"`
+
+ // PrefixListName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-prefixlistname
+ PrefixListName *types.Value `json:"PrefixListName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html#cfn-ec2-prefixlist-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PrefixList) AWSCloudFormationType() string {
+ return "AWS::EC2::PrefixList"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PrefixList) MarshalJSON() ([]byte, error) {
+ type Properties PrefixList
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PrefixList) UnmarshalJSON(b []byte) error {
+ type Properties PrefixList
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PrefixList(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-prefixlist_entry.go b/goformation/cloudformation/ec2/aws-ec2-prefixlist_entry.go
new file mode 100644
index 0000000000..4708992bdf
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-prefixlist_entry.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PrefixList_Entry AWS CloudFormation Resource (AWS::EC2::PrefixList.Entry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html
+type PrefixList_Entry struct {
+
+ // Cidr AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html#cfn-ec2-prefixlist-entry-cidr
+ Cidr *types.Value `json:"Cidr,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-prefixlist-entry.html#cfn-ec2-prefixlist-entry-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PrefixList_Entry) AWSCloudFormationType() string {
+ return "AWS::EC2::PrefixList.Entry"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-route.go b/goformation/cloudformation/ec2/aws-ec2-route.go
new file mode 100644
index 0000000000..a99e2d4090
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-route.go
@@ -0,0 +1,168 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Route AWS CloudFormation Resource (AWS::EC2::Route)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html
+type Route struct {
+
+ // CarrierGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-carriergatewayid
+ CarrierGatewayId *types.Value `json:"CarrierGatewayId,omitempty"`
+
+ // DestinationCidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationcidrblock
+ DestinationCidrBlock *types.Value `json:"DestinationCidrBlock,omitempty"`
+
+ // DestinationIpv6CidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-destinationipv6cidrblock
+ DestinationIpv6CidrBlock *types.Value `json:"DestinationIpv6CidrBlock,omitempty"`
+
+ // EgressOnlyInternetGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-egressonlyinternetgatewayid
+ EgressOnlyInternetGatewayId *types.Value `json:"EgressOnlyInternetGatewayId,omitempty"`
+
+ // GatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-gatewayid
+ GatewayId *types.Value `json:"GatewayId,omitempty"`
+
+ // InstanceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-instanceid
+ InstanceId *types.Value `json:"InstanceId,omitempty"`
+
+ // LocalGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-localgatewayid
+ LocalGatewayId *types.Value `json:"LocalGatewayId,omitempty"`
+
+ // NatGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-natgatewayid
+ NatGatewayId *types.Value `json:"NatGatewayId,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // RouteTableId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-routetableid
+ RouteTableId *types.Value `json:"RouteTableId,omitempty"`
+
+ // TransitGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-transitgatewayid
+ TransitGatewayId *types.Value `json:"TransitGatewayId,omitempty"`
+
+ // VpcEndpointId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcendpointid
+ VpcEndpointId *types.Value `json:"VpcEndpointId,omitempty"`
+
+ // VpcPeeringConnectionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html#cfn-ec2-route-vpcpeeringconnectionid
+ VpcPeeringConnectionId *types.Value `json:"VpcPeeringConnectionId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Route) AWSCloudFormationType() string {
+ return "AWS::EC2::Route"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Route) MarshalJSON() ([]byte, error) {
+ type Properties Route
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Route) UnmarshalJSON(b []byte) error {
+ type Properties Route
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Route(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-routetable.go b/goformation/cloudformation/ec2/aws-ec2-routetable.go
new file mode 100644
index 0000000000..2cf26cbe24
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-routetable.go
@@ -0,0 +1,114 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// RouteTable AWS CloudFormation Resource (AWS::EC2::RouteTable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html
+type RouteTable struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html#cfn-ec2-routetable-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html#cfn-ec2-routetable-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RouteTable) AWSCloudFormationType() string {
+ return "AWS::EC2::RouteTable"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RouteTable) MarshalJSON() ([]byte, error) {
+ type Properties RouteTable
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RouteTable) UnmarshalJSON(b []byte) error {
+ type Properties RouteTable
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RouteTable(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-securitygroup.go b/goformation/cloudformation/ec2/aws-ec2-securitygroup.go
new file mode 100644
index 0000000000..a40adf774b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-securitygroup.go
@@ -0,0 +1,134 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityGroup AWS CloudFormation Resource (AWS::EC2::SecurityGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html
+type SecurityGroup struct {
+
+ // GroupDescription AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-groupdescription
+ GroupDescription *types.Value `json:"GroupDescription,omitempty"`
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // SecurityGroupEgress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-securitygroupegress
+ SecurityGroupEgress []SecurityGroup_Egress `json:"SecurityGroupEgress,omitempty"`
+
+ // SecurityGroupIngress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-securitygroupingress
+ SecurityGroupIngress []SecurityGroup_Ingress `json:"SecurityGroupIngress,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityGroup) AWSCloudFormationType() string {
+ return "AWS::EC2::SecurityGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SecurityGroup) MarshalJSON() ([]byte, error) {
+ type Properties SecurityGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SecurityGroup) UnmarshalJSON(b []byte) error {
+ type Properties SecurityGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SecurityGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-securitygroup_egress.go b/goformation/cloudformation/ec2/aws-ec2-securitygroup_egress.go
new file mode 100644
index 0000000000..e28592eeac
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-securitygroup_egress.go
@@ -0,0 +1,72 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityGroup_Egress AWS CloudFormation Resource (AWS::EC2::SecurityGroup.Egress)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html
+type SecurityGroup_Egress struct {
+
+ // CidrIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-cidrip
+ CidrIp *types.Value `json:"CidrIp,omitempty"`
+
+ // CidrIpv6 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-cidripv6
+ CidrIpv6 *types.Value `json:"CidrIpv6,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DestinationPrefixListId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-destinationprefixlistid
+ DestinationPrefixListId *types.Value `json:"DestinationPrefixListId,omitempty"`
+
+ // DestinationSecurityGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-destsecgroupid
+ DestinationSecurityGroupId *types.Value `json:"DestinationSecurityGroupId,omitempty"`
+
+ // FromPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-fromport
+ FromPort *types.Value `json:"FromPort,omitempty"`
+
+ // IpProtocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-ipprotocol
+ IpProtocol *types.Value `json:"IpProtocol,omitempty"`
+
+ // ToPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-toport
+ ToPort *types.Value `json:"ToPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityGroup_Egress) AWSCloudFormationType() string {
+ return "AWS::EC2::SecurityGroup.Egress"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-securitygroup_ingress.go b/goformation/cloudformation/ec2/aws-ec2-securitygroup_ingress.go
new file mode 100644
index 0000000000..e130a2d275
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-securitygroup_ingress.go
@@ -0,0 +1,82 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityGroup_Ingress AWS CloudFormation Resource (AWS::EC2::SecurityGroup.Ingress)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html
+type SecurityGroup_Ingress struct {
+
+ // CidrIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-cidrip
+ CidrIp *types.Value `json:"CidrIp,omitempty"`
+
+ // CidrIpv6 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-cidripv6
+ CidrIpv6 *types.Value `json:"CidrIpv6,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FromPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-fromport
+ FromPort *types.Value `json:"FromPort,omitempty"`
+
+ // IpProtocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-ipprotocol
+ IpProtocol *types.Value `json:"IpProtocol,omitempty"`
+
+ // SourcePrefixListId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-securitygroup-ingress-sourceprefixlistid
+ SourcePrefixListId *types.Value `json:"SourcePrefixListId,omitempty"`
+
+ // SourceSecurityGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-sourcesecuritygroupid
+ SourceSecurityGroupId *types.Value `json:"SourceSecurityGroupId,omitempty"`
+
+ // SourceSecurityGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-sourcesecuritygroupname
+ SourceSecurityGroupName *types.Value `json:"SourceSecurityGroupName,omitempty"`
+
+ // SourceSecurityGroupOwnerId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-sourcesecuritygroupownerid
+ SourceSecurityGroupOwnerId *types.Value `json:"SourceSecurityGroupOwnerId,omitempty"`
+
+ // ToPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-rule.html#cfn-ec2-security-group-rule-toport
+ ToPort *types.Value `json:"ToPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityGroup_Ingress) AWSCloudFormationType() string {
+ return "AWS::EC2::SecurityGroup.Ingress"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-securitygroupegress.go b/goformation/cloudformation/ec2/aws-ec2-securitygroupegress.go
new file mode 100644
index 0000000000..a1fa830443
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-securitygroupegress.go
@@ -0,0 +1,148 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityGroupEgress AWS CloudFormation Resource (AWS::EC2::SecurityGroupEgress)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html
+type SecurityGroupEgress struct {
+
+ // CidrIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-cidrip
+ CidrIp *types.Value `json:"CidrIp,omitempty"`
+
+ // CidrIpv6 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-cidripv6
+ CidrIpv6 *types.Value `json:"CidrIpv6,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DestinationPrefixListId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-destinationprefixlistid
+ DestinationPrefixListId *types.Value `json:"DestinationPrefixListId,omitempty"`
+
+ // DestinationSecurityGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-destinationsecuritygroupid
+ DestinationSecurityGroupId *types.Value `json:"DestinationSecurityGroupId,omitempty"`
+
+ // FromPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-fromport
+ FromPort *types.Value `json:"FromPort,omitempty"`
+
+ // GroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-groupid
+ GroupId *types.Value `json:"GroupId,omitempty"`
+
+ // IpProtocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-ipprotocol
+ IpProtocol *types.Value `json:"IpProtocol,omitempty"`
+
+ // ToPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html#cfn-ec2-securitygroupegress-toport
+ ToPort *types.Value `json:"ToPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityGroupEgress) AWSCloudFormationType() string {
+ return "AWS::EC2::SecurityGroupEgress"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SecurityGroupEgress) MarshalJSON() ([]byte, error) {
+ type Properties SecurityGroupEgress
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SecurityGroupEgress) UnmarshalJSON(b []byte) error {
+ type Properties SecurityGroupEgress
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SecurityGroupEgress(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-securitygroupingress.go b/goformation/cloudformation/ec2/aws-ec2-securitygroupingress.go
new file mode 100644
index 0000000000..91eba11be8
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-securitygroupingress.go
@@ -0,0 +1,163 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityGroupIngress AWS CloudFormation Resource (AWS::EC2::SecurityGroupIngress)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html
+type SecurityGroupIngress struct {
+
+ // CidrIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-cidrip
+ CidrIp *types.Value `json:"CidrIp,omitempty"`
+
+ // CidrIpv6 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-cidripv6
+ CidrIpv6 *types.Value `json:"CidrIpv6,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FromPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-fromport
+ FromPort *types.Value `json:"FromPort,omitempty"`
+
+ // GroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-groupid
+ GroupId *types.Value `json:"GroupId,omitempty"`
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // IpProtocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-ipprotocol
+ IpProtocol *types.Value `json:"IpProtocol,omitempty"`
+
+ // SourcePrefixListId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-securitygroupingress-sourceprefixlistid
+ SourcePrefixListId *types.Value `json:"SourcePrefixListId,omitempty"`
+
+ // SourceSecurityGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-sourcesecuritygroupid
+ SourceSecurityGroupId *types.Value `json:"SourceSecurityGroupId,omitempty"`
+
+ // SourceSecurityGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-sourcesecuritygroupname
+ SourceSecurityGroupName *types.Value `json:"SourceSecurityGroupName,omitempty"`
+
+ // SourceSecurityGroupOwnerId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-sourcesecuritygroupownerid
+ SourceSecurityGroupOwnerId *types.Value `json:"SourceSecurityGroupOwnerId,omitempty"`
+
+ // ToPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html#cfn-ec2-security-group-ingress-toport
+ ToPort *types.Value `json:"ToPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityGroupIngress) AWSCloudFormationType() string {
+ return "AWS::EC2::SecurityGroupIngress"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SecurityGroupIngress) MarshalJSON() ([]byte, error) {
+ type Properties SecurityGroupIngress
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SecurityGroupIngress) UnmarshalJSON(b []byte) error {
+ type Properties SecurityGroupIngress
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SecurityGroupIngress(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet.go
new file mode 100644
index 0000000000..45c0d1c515
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet.go
@@ -0,0 +1,106 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet AWS CloudFormation Resource (AWS::EC2::SpotFleet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html
+type SpotFleet struct {
+
+ // SpotFleetRequestConfigData AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata
+ SpotFleetRequestConfigData *SpotFleet_SpotFleetRequestConfigData `json:"SpotFleetRequestConfigData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SpotFleet) MarshalJSON() ([]byte, error) {
+ type Properties SpotFleet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SpotFleet) UnmarshalJSON(b []byte) error {
+ type Properties SpotFleet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SpotFleet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_acceleratorcountrequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_acceleratorcountrequest.go
new file mode 100644
index 0000000000..3410a5d6d9
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_acceleratorcountrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_AcceleratorCountRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.AcceleratorCountRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html
+type SpotFleet_AcceleratorCountRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html#cfn-ec2-spotfleet-acceleratorcountrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratorcountrequest.html#cfn-ec2-spotfleet-acceleratorcountrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_AcceleratorCountRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.AcceleratorCountRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_acceleratortotalmemorymibrequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_acceleratortotalmemorymibrequest.go
new file mode 100644
index 0000000000..3d3e9e657b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_acceleratortotalmemorymibrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_AcceleratorTotalMemoryMiBRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html
+type SpotFleet_AcceleratorTotalMemoryMiBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html#cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-acceleratortotalmemorymibrequest.html#cfn-ec2-spotfleet-acceleratortotalmemorymibrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_AcceleratorTotalMemoryMiBRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_baselineebsbandwidthmbpsrequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_baselineebsbandwidthmbpsrequest.go
new file mode 100644
index 0000000000..0dfabafd17
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_baselineebsbandwidthmbpsrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_BaselineEbsBandwidthMbpsRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html
+type SpotFleet_BaselineEbsBandwidthMbpsRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html#cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-baselineebsbandwidthmbpsrequest.html#cfn-ec2-spotfleet-baselineebsbandwidthmbpsrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_BaselineEbsBandwidthMbpsRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_blockdevicemapping.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_blockdevicemapping.go
new file mode 100644
index 0000000000..e868e324a6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_blockdevicemapping.go
@@ -0,0 +1,52 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_BlockDeviceMapping AWS CloudFormation Resource (AWS::EC2::SpotFleet.BlockDeviceMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-blockdevicemapping.html
+type SpotFleet_BlockDeviceMapping struct {
+
+ // DeviceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-blockdevicemapping.html#cfn-ec2-spotfleet-blockdevicemapping-devicename
+ DeviceName *types.Value `json:"DeviceName,omitempty"`
+
+ // Ebs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-blockdevicemapping.html#cfn-ec2-spotfleet-blockdevicemapping-ebs
+ Ebs *SpotFleet_EbsBlockDevice `json:"Ebs,omitempty"`
+
+ // NoDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-blockdevicemapping.html#cfn-ec2-spotfleet-blockdevicemapping-nodevice
+ NoDevice *types.Value `json:"NoDevice,omitempty"`
+
+ // VirtualName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-blockdevicemapping.html#cfn-ec2-spotfleet-blockdevicemapping-virtualname
+ VirtualName *types.Value `json:"VirtualName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_BlockDeviceMapping) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.BlockDeviceMapping"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_classicloadbalancer.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_classicloadbalancer.go
new file mode 100644
index 0000000000..e1d1a21b6b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_classicloadbalancer.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_ClassicLoadBalancer AWS CloudFormation Resource (AWS::EC2::SpotFleet.ClassicLoadBalancer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancer.html
+type SpotFleet_ClassicLoadBalancer struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancer.html#cfn-ec2-spotfleet-classicloadbalancer-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_ClassicLoadBalancer) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.ClassicLoadBalancer"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_classicloadbalancersconfig.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_classicloadbalancersconfig.go
new file mode 100644
index 0000000000..f075357b25
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_classicloadbalancersconfig.go
@@ -0,0 +1,35 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_ClassicLoadBalancersConfig AWS CloudFormation Resource (AWS::EC2::SpotFleet.ClassicLoadBalancersConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancersconfig.html
+type SpotFleet_ClassicLoadBalancersConfig struct {
+
+ // ClassicLoadBalancers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-classicloadbalancersconfig.html#cfn-ec2-spotfleet-classicloadbalancersconfig-classicloadbalancers
+ ClassicLoadBalancers []SpotFleet_ClassicLoadBalancer `json:"ClassicLoadBalancers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_ClassicLoadBalancersConfig) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_ebsblockdevice.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_ebsblockdevice.go
new file mode 100644
index 0000000000..5478348ab8
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_ebsblockdevice.go
@@ -0,0 +1,62 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_EbsBlockDevice AWS CloudFormation Resource (AWS::EC2::SpotFleet.EbsBlockDevice)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html
+type SpotFleet_EbsBlockDevice struct {
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html#cfn-ec2-spotfleet-ebsblockdevice-deleteontermination
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html#cfn-ec2-spotfleet-ebsblockdevice-encrypted
+ Encrypted *types.Value `json:"Encrypted,omitempty"`
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html#cfn-ec2-spotfleet-ebsblockdevice-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // SnapshotId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html#cfn-ec2-spotfleet-ebsblockdevice-snapshotid
+ SnapshotId *types.Value `json:"SnapshotId,omitempty"`
+
+ // VolumeSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html#cfn-ec2-spotfleet-ebsblockdevice-volumesize
+ VolumeSize *types.Value `json:"VolumeSize,omitempty"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-ebsblockdevice.html#cfn-ec2-spotfleet-ebsblockdevice-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_EbsBlockDevice) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.EbsBlockDevice"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go
new file mode 100644
index 0000000000..b82d9ef3f4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_fleetlaunchtemplatespecification.go
@@ -0,0 +1,47 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_FleetLaunchTemplateSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html
+type SpotFleet_FleetLaunchTemplateSpecification struct {
+
+ // LaunchTemplateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-launchtemplateid
+ LaunchTemplateId *types.Value `json:"LaunchTemplateId,omitempty"`
+
+ // LaunchTemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-launchtemplatename
+ LaunchTemplateName *types.Value `json:"LaunchTemplateName,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-fleetlaunchtemplatespecification.html#cfn-ec2-spotfleet-fleetlaunchtemplatespecification-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_FleetLaunchTemplateSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_groupidentifier.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_groupidentifier.go
new file mode 100644
index 0000000000..cdba320ac7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_groupidentifier.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_GroupIdentifier AWS CloudFormation Resource (AWS::EC2::SpotFleet.GroupIdentifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-groupidentifier.html
+type SpotFleet_GroupIdentifier struct {
+
+ // GroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-groupidentifier.html#cfn-ec2-spotfleet-groupidentifier-groupid
+ GroupId *types.Value `json:"GroupId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_GroupIdentifier) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.GroupIdentifier"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_iaminstanceprofilespecification.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_iaminstanceprofilespecification.go
new file mode 100644
index 0000000000..5607d44927
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_iaminstanceprofilespecification.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_IamInstanceProfileSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.IamInstanceProfileSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-iaminstanceprofilespecification.html
+type SpotFleet_IamInstanceProfileSpecification struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-iaminstanceprofilespecification.html#cfn-ec2-spotfleet-iaminstanceprofilespecification-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_IamInstanceProfileSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.IamInstanceProfileSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_instanceipv6address.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_instanceipv6address.go
new file mode 100644
index 0000000000..b858152241
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_instanceipv6address.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_InstanceIpv6Address AWS CloudFormation Resource (AWS::EC2::SpotFleet.InstanceIpv6Address)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html
+type SpotFleet_InstanceIpv6Address struct {
+
+ // Ipv6Address AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instanceipv6address.html#cfn-ec2-spotfleet-instanceipv6address-ipv6address
+ Ipv6Address *types.Value `json:"Ipv6Address,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_InstanceIpv6Address) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.InstanceIpv6Address"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_instancenetworkinterfacespecification.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_instancenetworkinterfacespecification.go
new file mode 100644
index 0000000000..e1dfb81d87
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_instancenetworkinterfacespecification.go
@@ -0,0 +1,87 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_InstanceNetworkInterfaceSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html
+type SpotFleet_InstanceNetworkInterfaceSpecification struct {
+
+ // AssociatePublicIpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-associatepublicipaddress
+ AssociatePublicIpAddress *types.Value `json:"AssociatePublicIpAddress,omitempty"`
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-deleteontermination
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DeviceIndex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-deviceindex
+ DeviceIndex *types.Value `json:"DeviceIndex,omitempty"`
+
+ // Groups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-groups
+ Groups *types.Value `json:"Groups,omitempty"`
+
+ // Ipv6AddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresscount
+ Ipv6AddressCount *types.Value `json:"Ipv6AddressCount,omitempty"`
+
+ // Ipv6Addresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresses
+ Ipv6Addresses []SpotFleet_InstanceIpv6Address `json:"Ipv6Addresses,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // PrivateIpAddresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-privateipaddresses
+ PrivateIpAddresses []SpotFleet_PrivateIpAddressSpecification `json:"PrivateIpAddresses,omitempty"`
+
+ // SecondaryPrivateIpAddressCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-secondaryprivateipaddresscount
+ SecondaryPrivateIpAddressCount *types.Value `json:"SecondaryPrivateIpAddressCount,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html#cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_InstanceNetworkInterfaceSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_instancerequirementsrequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_instancerequirementsrequest.go
new file mode 100644
index 0000000000..f2927a03bc
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_instancerequirementsrequest.go
@@ -0,0 +1,137 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_InstanceRequirementsRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.InstanceRequirementsRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html
+type SpotFleet_InstanceRequirementsRequest struct {
+
+ // AcceleratorCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratorcount
+ AcceleratorCount *SpotFleet_AcceleratorCountRequest `json:"AcceleratorCount,omitempty"`
+
+ // AcceleratorManufacturers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratormanufacturers
+ AcceleratorManufacturers *types.Value `json:"AcceleratorManufacturers,omitempty"`
+
+ // AcceleratorNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratornames
+ AcceleratorNames *types.Value `json:"AcceleratorNames,omitempty"`
+
+ // AcceleratorTotalMemoryMiB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortotalmemorymib
+ AcceleratorTotalMemoryMiB *SpotFleet_AcceleratorTotalMemoryMiBRequest `json:"AcceleratorTotalMemoryMiB,omitempty"`
+
+ // AcceleratorTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-acceleratortypes
+ AcceleratorTypes *types.Value `json:"AcceleratorTypes,omitempty"`
+
+ // BareMetal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-baremetal
+ BareMetal *types.Value `json:"BareMetal,omitempty"`
+
+ // BaselineEbsBandwidthMbps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-baselineebsbandwidthmbps
+ BaselineEbsBandwidthMbps *SpotFleet_BaselineEbsBandwidthMbpsRequest `json:"BaselineEbsBandwidthMbps,omitempty"`
+
+ // BurstablePerformance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-burstableperformance
+ BurstablePerformance *types.Value `json:"BurstablePerformance,omitempty"`
+
+ // CpuManufacturers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-cpumanufacturers
+ CpuManufacturers *types.Value `json:"CpuManufacturers,omitempty"`
+
+ // ExcludedInstanceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-excludedinstancetypes
+ ExcludedInstanceTypes *types.Value `json:"ExcludedInstanceTypes,omitempty"`
+
+ // InstanceGenerations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-instancegenerations
+ InstanceGenerations *types.Value `json:"InstanceGenerations,omitempty"`
+
+ // LocalStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-localstorage
+ LocalStorage *types.Value `json:"LocalStorage,omitempty"`
+
+ // LocalStorageTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-localstoragetypes
+ LocalStorageTypes *types.Value `json:"LocalStorageTypes,omitempty"`
+
+ // MemoryGiBPerVCpu AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-memorygibpervcpu
+ MemoryGiBPerVCpu *SpotFleet_MemoryGiBPerVCpuRequest `json:"MemoryGiBPerVCpu,omitempty"`
+
+ // MemoryMiB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-memorymib
+ MemoryMiB *SpotFleet_MemoryMiBRequest `json:"MemoryMiB,omitempty"`
+
+ // NetworkInterfaceCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-networkinterfacecount
+ NetworkInterfaceCount *SpotFleet_NetworkInterfaceCountRequest `json:"NetworkInterfaceCount,omitempty"`
+
+ // OnDemandMaxPricePercentageOverLowestPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-ondemandmaxpricepercentageoverlowestprice
+ OnDemandMaxPricePercentageOverLowestPrice *types.Value `json:"OnDemandMaxPricePercentageOverLowestPrice,omitempty"`
+
+ // RequireHibernateSupport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-requirehibernatesupport
+ RequireHibernateSupport *types.Value `json:"RequireHibernateSupport,omitempty"`
+
+ // SpotMaxPricePercentageOverLowestPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-spotmaxpricepercentageoverlowestprice
+ SpotMaxPricePercentageOverLowestPrice *types.Value `json:"SpotMaxPricePercentageOverLowestPrice,omitempty"`
+
+ // TotalLocalStorageGB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-totallocalstoragegb
+ TotalLocalStorageGB *SpotFleet_TotalLocalStorageGBRequest `json:"TotalLocalStorageGB,omitempty"`
+
+ // VCpuCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancerequirementsrequest.html#cfn-ec2-spotfleet-instancerequirementsrequest-vcpucount
+ VCpuCount *SpotFleet_VCpuCountRangeRequest `json:"VCpuCount,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_InstanceRequirementsRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.InstanceRequirementsRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateconfig.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateconfig.go
new file mode 100644
index 0000000000..877b27d47f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateconfig.go
@@ -0,0 +1,40 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_LaunchTemplateConfig AWS CloudFormation Resource (AWS::EC2::SpotFleet.LaunchTemplateConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html
+type SpotFleet_LaunchTemplateConfig struct {
+
+ // LaunchTemplateSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html#cfn-ec2-spotfleet-launchtemplateconfig-launchtemplatespecification
+ LaunchTemplateSpecification *SpotFleet_FleetLaunchTemplateSpecification `json:"LaunchTemplateSpecification,omitempty"`
+
+ // Overrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateconfig.html#cfn-ec2-spotfleet-launchtemplateconfig-overrides
+ Overrides []SpotFleet_LaunchTemplateOverrides `json:"Overrides,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_LaunchTemplateConfig) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.LaunchTemplateConfig"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateoverrides.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateoverrides.go
new file mode 100644
index 0000000000..a371ee70d5
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_launchtemplateoverrides.go
@@ -0,0 +1,62 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_LaunchTemplateOverrides AWS CloudFormation Resource (AWS::EC2::SpotFleet.LaunchTemplateOverrides)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html
+type SpotFleet_LaunchTemplateOverrides struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // InstanceRequirements AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-instancerequirements
+ InstanceRequirements *SpotFleet_InstanceRequirementsRequest `json:"InstanceRequirements,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // SpotPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-spotprice
+ SpotPrice *types.Value `json:"SpotPrice,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // WeightedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-launchtemplateoverrides.html#cfn-ec2-spotfleet-launchtemplateoverrides-weightedcapacity
+ WeightedCapacity *types.Value `json:"WeightedCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_LaunchTemplateOverrides) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.LaunchTemplateOverrides"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_loadbalancersconfig.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_loadbalancersconfig.go
new file mode 100644
index 0000000000..83aacd264e
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_loadbalancersconfig.go
@@ -0,0 +1,40 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_LoadBalancersConfig AWS CloudFormation Resource (AWS::EC2::SpotFleet.LoadBalancersConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-loadbalancersconfig.html
+type SpotFleet_LoadBalancersConfig struct {
+
+ // ClassicLoadBalancersConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-loadbalancersconfig.html#cfn-ec2-spotfleet-loadbalancersconfig-classicloadbalancersconfig
+ ClassicLoadBalancersConfig *SpotFleet_ClassicLoadBalancersConfig `json:"ClassicLoadBalancersConfig,omitempty"`
+
+ // TargetGroupsConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-loadbalancersconfig.html#cfn-ec2-spotfleet-loadbalancersconfig-targetgroupsconfig
+ TargetGroupsConfig *SpotFleet_TargetGroupsConfig `json:"TargetGroupsConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_LoadBalancersConfig) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.LoadBalancersConfig"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_memorygibpervcpurequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_memorygibpervcpurequest.go
new file mode 100644
index 0000000000..dd31a23f4a
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_memorygibpervcpurequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_MemoryGiBPerVCpuRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html
+type SpotFleet_MemoryGiBPerVCpuRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html#cfn-ec2-spotfleet-memorygibpervcpurequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorygibpervcpurequest.html#cfn-ec2-spotfleet-memorygibpervcpurequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_MemoryGiBPerVCpuRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_memorymibrequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_memorymibrequest.go
new file mode 100644
index 0000000000..19ecc4d947
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_memorymibrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_MemoryMiBRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.MemoryMiBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html
+type SpotFleet_MemoryMiBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html#cfn-ec2-spotfleet-memorymibrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-memorymibrequest.html#cfn-ec2-spotfleet-memorymibrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_MemoryMiBRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.MemoryMiBRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_networkinterfacecountrequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_networkinterfacecountrequest.go
new file mode 100644
index 0000000000..3c157aa884
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_networkinterfacecountrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_NetworkInterfaceCountRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.NetworkInterfaceCountRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html
+type SpotFleet_NetworkInterfaceCountRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html#cfn-ec2-spotfleet-networkinterfacecountrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-networkinterfacecountrequest.html#cfn-ec2-spotfleet-networkinterfacecountrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_NetworkInterfaceCountRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_privateipaddressspecification.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_privateipaddressspecification.go
new file mode 100644
index 0000000000..e9b2b4cfe6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_privateipaddressspecification.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_PrivateIpAddressSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.PrivateIpAddressSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-privateipaddressspecification.html
+type SpotFleet_PrivateIpAddressSpecification struct {
+
+ // Primary AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-privateipaddressspecification.html#cfn-ec2-spotfleet-privateipaddressspecification-primary
+ Primary *types.Value `json:"Primary,omitempty"`
+
+ // PrivateIpAddress AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-privateipaddressspecification.html#cfn-ec2-spotfleet-privateipaddressspecification-privateipaddress
+ PrivateIpAddress *types.Value `json:"PrivateIpAddress,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_PrivateIpAddressSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.PrivateIpAddressSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotcapacityrebalance.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotcapacityrebalance.go
new file mode 100644
index 0000000000..b1cd15e9dd
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotcapacityrebalance.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_SpotCapacityRebalance AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotCapacityRebalance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html
+type SpotFleet_SpotCapacityRebalance struct {
+
+ // ReplacementStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html#cfn-ec2-spotfleet-spotcapacityrebalance-replacementstrategy
+ ReplacementStrategy *types.Value `json:"ReplacementStrategy,omitempty"`
+
+ // TerminationDelay AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotcapacityrebalance.html#cfn-ec2-spotfleet-spotcapacityrebalance-terminationdelay
+ TerminationDelay *types.Value `json:"TerminationDelay,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_SpotCapacityRebalance) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.SpotCapacityRebalance"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetlaunchspecification.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetlaunchspecification.go
new file mode 100644
index 0000000000..d4dbf095eb
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetlaunchspecification.go
@@ -0,0 +1,122 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_SpotFleetLaunchSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotFleetLaunchSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html
+type SpotFleet_SpotFleetLaunchSpecification struct {
+
+ // BlockDeviceMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-blockdevicemappings
+ BlockDeviceMappings []SpotFleet_BlockDeviceMapping `json:"BlockDeviceMappings,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // IamInstanceProfile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-iaminstanceprofile
+ IamInstanceProfile *SpotFleet_IamInstanceProfileSpecification `json:"IamInstanceProfile,omitempty"`
+
+ // ImageId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-imageid
+ ImageId *types.Value `json:"ImageId,omitempty"`
+
+ // InstanceRequirements AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancerequirements
+ InstanceRequirements *SpotFleet_InstanceRequirementsRequest `json:"InstanceRequirements,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // KernelId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-kernelid
+ KernelId *types.Value `json:"KernelId,omitempty"`
+
+ // KeyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-keyname
+ KeyName *types.Value `json:"KeyName,omitempty"`
+
+ // Monitoring AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-monitoring
+ Monitoring *SpotFleet_SpotFleetMonitoring `json:"Monitoring,omitempty"`
+
+ // NetworkInterfaces AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-networkinterfaces
+ NetworkInterfaces []SpotFleet_InstanceNetworkInterfaceSpecification `json:"NetworkInterfaces,omitempty"`
+
+ // Placement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-placement
+ Placement *SpotFleet_SpotPlacement `json:"Placement,omitempty"`
+
+ // RamdiskId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-ramdiskid
+ RamdiskId *types.Value `json:"RamdiskId,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-securitygroups
+ SecurityGroups []SpotFleet_GroupIdentifier `json:"SecurityGroups,omitempty"`
+
+ // SpotPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-spotprice
+ SpotPrice *types.Value `json:"SpotPrice,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // TagSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-tagspecifications
+ TagSpecifications []SpotFleet_SpotFleetTagSpecification `json:"TagSpecifications,omitempty"`
+
+ // UserData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-userdata
+ UserData *types.Value `json:"UserData,omitempty"`
+
+ // WeightedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetlaunchspecification.html#cfn-ec2-spotfleet-spotfleetlaunchspecification-weightedcapacity
+ WeightedCapacity *types.Value `json:"WeightedCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_SpotFleetLaunchSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetmonitoring.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetmonitoring.go
new file mode 100644
index 0000000000..3919914482
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetmonitoring.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_SpotFleetMonitoring AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotFleetMonitoring)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetmonitoring.html
+type SpotFleet_SpotFleetMonitoring struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetmonitoring.html#cfn-ec2-spotfleet-spotfleetmonitoring-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_SpotFleetMonitoring) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.SpotFleetMonitoring"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetrequestconfigdata.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetrequestconfigdata.go
new file mode 100644
index 0000000000..854e490514
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleetrequestconfigdata.go
@@ -0,0 +1,142 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_SpotFleetRequestConfigData AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotFleetRequestConfigData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html
+type SpotFleet_SpotFleetRequestConfigData struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // Context AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-context
+ Context *types.Value `json:"Context,omitempty"`
+
+ // ExcessCapacityTerminationPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-excesscapacityterminationpolicy
+ ExcessCapacityTerminationPolicy *types.Value `json:"ExcessCapacityTerminationPolicy,omitempty"`
+
+ // IamFleetRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-iamfleetrole
+ IamFleetRole *types.Value `json:"IamFleetRole,omitempty"`
+
+ // InstanceInterruptionBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-instanceinterruptionbehavior
+ InstanceInterruptionBehavior *types.Value `json:"InstanceInterruptionBehavior,omitempty"`
+
+ // InstancePoolsToUseCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-instancepoolstousecount
+ InstancePoolsToUseCount *types.Value `json:"InstancePoolsToUseCount,omitempty"`
+
+ // LaunchSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchspecifications
+ LaunchSpecifications []SpotFleet_SpotFleetLaunchSpecification `json:"LaunchSpecifications,omitempty"`
+
+ // LaunchTemplateConfigs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-launchtemplateconfigs
+ LaunchTemplateConfigs []SpotFleet_LaunchTemplateConfig `json:"LaunchTemplateConfigs,omitempty"`
+
+ // LoadBalancersConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-loadbalancersconfig
+ LoadBalancersConfig *SpotFleet_LoadBalancersConfig `json:"LoadBalancersConfig,omitempty"`
+
+ // OnDemandAllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandallocationstrategy
+ OnDemandAllocationStrategy *types.Value `json:"OnDemandAllocationStrategy,omitempty"`
+
+ // OnDemandMaxTotalPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandmaxtotalprice
+ OnDemandMaxTotalPrice *types.Value `json:"OnDemandMaxTotalPrice,omitempty"`
+
+ // OnDemandTargetCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-ondemandtargetcapacity
+ OnDemandTargetCapacity *types.Value `json:"OnDemandTargetCapacity,omitempty"`
+
+ // ReplaceUnhealthyInstances AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-replaceunhealthyinstances
+ ReplaceUnhealthyInstances *types.Value `json:"ReplaceUnhealthyInstances,omitempty"`
+
+ // SpotMaintenanceStrategies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaintenancestrategies
+ SpotMaintenanceStrategies *SpotFleet_SpotMaintenanceStrategies `json:"SpotMaintenanceStrategies,omitempty"`
+
+ // SpotMaxTotalPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotmaxtotalprice
+ SpotMaxTotalPrice *types.Value `json:"SpotMaxTotalPrice,omitempty"`
+
+ // SpotPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-spotprice
+ SpotPrice *types.Value `json:"SpotPrice,omitempty"`
+
+ // TargetCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacity
+ TargetCapacity *types.Value `json:"TargetCapacity"`
+
+ // TargetCapacityUnitType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-targetcapacityunittype
+ TargetCapacityUnitType *types.Value `json:"TargetCapacityUnitType,omitempty"`
+
+ // TerminateInstancesWithExpiration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-terminateinstanceswithexpiration
+ TerminateInstancesWithExpiration *types.Value `json:"TerminateInstancesWithExpiration,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // ValidFrom AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-validfrom
+ ValidFrom *types.Value `json:"ValidFrom,omitempty"`
+
+ // ValidUntil AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleetrequestconfigdata.html#cfn-ec2-spotfleet-spotfleetrequestconfigdata-validuntil
+ ValidUntil *types.Value `json:"ValidUntil,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_SpotFleetRequestConfigData) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.SpotFleetRequestConfigData"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleettagspecification.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleettagspecification.go
new file mode 100644
index 0000000000..ddc52c5080
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotfleettagspecification.go
@@ -0,0 +1,43 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_SpotFleetTagSpecification AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotFleetTagSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html
+type SpotFleet_SpotFleetTagSpecification struct {
+
+ // ResourceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html#cfn-ec2-spotfleet-spotfleettagspecification-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotfleettagspecification.html#cfn-ec2-spotfleet-spotfleettagspecification-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_SpotFleetTagSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.SpotFleetTagSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotmaintenancestrategies.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotmaintenancestrategies.go
new file mode 100644
index 0000000000..2d05ef6f52
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotmaintenancestrategies.go
@@ -0,0 +1,35 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_SpotMaintenanceStrategies AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotMaintenanceStrategies)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotmaintenancestrategies.html
+type SpotFleet_SpotMaintenanceStrategies struct {
+
+ // CapacityRebalance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotmaintenancestrategies.html#cfn-ec2-spotfleet-spotmaintenancestrategies-capacityrebalance
+ CapacityRebalance *SpotFleet_SpotCapacityRebalance `json:"CapacityRebalance,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_SpotMaintenanceStrategies) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.SpotMaintenanceStrategies"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotplacement.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotplacement.go
new file mode 100644
index 0000000000..b85127cbec
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_spotplacement.go
@@ -0,0 +1,47 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_SpotPlacement AWS CloudFormation Resource (AWS::EC2::SpotFleet.SpotPlacement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html
+type SpotFleet_SpotPlacement struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html#cfn-ec2-spotfleet-spotplacement-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html#cfn-ec2-spotfleet-spotplacement-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // Tenancy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-spotplacement.html#cfn-ec2-spotfleet-spotplacement-tenancy
+ Tenancy *types.Value `json:"Tenancy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_SpotPlacement) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.SpotPlacement"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_targetgroup.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_targetgroup.go
new file mode 100644
index 0000000000..5151465b51
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_targetgroup.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_TargetGroup AWS CloudFormation Resource (AWS::EC2::SpotFleet.TargetGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroup.html
+type SpotFleet_TargetGroup struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroup.html#cfn-ec2-spotfleet-targetgroup-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_TargetGroup) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.TargetGroup"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_targetgroupsconfig.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_targetgroupsconfig.go
new file mode 100644
index 0000000000..c2985a8784
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_targetgroupsconfig.go
@@ -0,0 +1,35 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_TargetGroupsConfig AWS CloudFormation Resource (AWS::EC2::SpotFleet.TargetGroupsConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroupsconfig.html
+type SpotFleet_TargetGroupsConfig struct {
+
+ // TargetGroups AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-targetgroupsconfig.html#cfn-ec2-spotfleet-targetgroupsconfig-targetgroups
+ TargetGroups []SpotFleet_TargetGroup `json:"TargetGroups,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_TargetGroupsConfig) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.TargetGroupsConfig"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_totallocalstoragegbrequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_totallocalstoragegbrequest.go
new file mode 100644
index 0000000000..91b1fccec4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_totallocalstoragegbrequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_TotalLocalStorageGBRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.TotalLocalStorageGBRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html
+type SpotFleet_TotalLocalStorageGBRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html#cfn-ec2-spotfleet-totallocalstoragegbrequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-totallocalstoragegbrequest.html#cfn-ec2-spotfleet-totallocalstoragegbrequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_TotalLocalStorageGBRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-spotfleet_vcpucountrangerequest.go b/goformation/cloudformation/ec2/aws-ec2-spotfleet_vcpucountrangerequest.go
new file mode 100644
index 0000000000..b9ebf0c32c
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-spotfleet_vcpucountrangerequest.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SpotFleet_VCpuCountRangeRequest AWS CloudFormation Resource (AWS::EC2::SpotFleet.VCpuCountRangeRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html
+type SpotFleet_VCpuCountRangeRequest struct {
+
+ // Max AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html#cfn-ec2-spotfleet-vcpucountrangerequest-max
+ Max *types.Value `json:"Max,omitempty"`
+
+ // Min AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-vcpucountrangerequest.html#cfn-ec2-spotfleet-vcpucountrangerequest-min
+ Min *types.Value `json:"Min,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SpotFleet_VCpuCountRangeRequest) AWSCloudFormationType() string {
+ return "AWS::EC2::SpotFleet.VCpuCountRangeRequest"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-subnet.go b/goformation/cloudformation/ec2/aws-ec2-subnet.go
new file mode 100644
index 0000000000..89d05497ba
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-subnet.go
@@ -0,0 +1,164 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Subnet AWS CloudFormation Resource (AWS::EC2::Subnet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html
+type Subnet struct {
+
+ // AssignIpv6AddressOnCreation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-assignipv6addressoncreation
+ AssignIpv6AddressOnCreation *types.Value `json:"AssignIpv6AddressOnCreation,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // AvailabilityZoneId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-availabilityzoneid
+ AvailabilityZoneId *types.Value `json:"AvailabilityZoneId,omitempty"`
+
+ // CidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-cidrblock
+ CidrBlock *types.Value `json:"CidrBlock,omitempty"`
+
+ // EnableDns64 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-enabledns64
+ EnableDns64 *types.Value `json:"EnableDns64,omitempty"`
+
+ // Ipv6CidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-ipv6cidrblock
+ Ipv6CidrBlock *types.Value `json:"Ipv6CidrBlock,omitempty"`
+
+ // Ipv6Native AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-ipv6native
+ Ipv6Native *types.Value `json:"Ipv6Native,omitempty"`
+
+ // MapPublicIpOnLaunch AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-mappubliciponlaunch
+ MapPublicIpOnLaunch *types.Value `json:"MapPublicIpOnLaunch,omitempty"`
+
+ // OutpostArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-outpostarn
+ OutpostArn *types.Value `json:"OutpostArn,omitempty"`
+
+ // PrivateDnsNameOptionsOnLaunch AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-privatednsnameoptionsonlaunch
+ PrivateDnsNameOptionsOnLaunch *Subnet_PrivateDnsNameOptionsOnLaunch `json:"PrivateDnsNameOptionsOnLaunch,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html#cfn-ec2-subnet-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Subnet) AWSCloudFormationType() string {
+ return "AWS::EC2::Subnet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Subnet) MarshalJSON() ([]byte, error) {
+ type Properties Subnet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Subnet) UnmarshalJSON(b []byte) error {
+ type Properties Subnet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Subnet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-subnet_privatednsnameoptionsonlaunch.go b/goformation/cloudformation/ec2/aws-ec2-subnet_privatednsnameoptionsonlaunch.go
new file mode 100644
index 0000000000..478ac40e83
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-subnet_privatednsnameoptionsonlaunch.go
@@ -0,0 +1,47 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Subnet_PrivateDnsNameOptionsOnLaunch AWS CloudFormation Resource (AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html
+type Subnet_PrivateDnsNameOptionsOnLaunch struct {
+
+ // EnableResourceNameDnsAAAARecord AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html#cfn-ec2-subnet-privatednsnameoptionsonlaunch-enableresourcenamednsaaaarecord
+ EnableResourceNameDnsAAAARecord *types.Value `json:"EnableResourceNameDnsAAAARecord,omitempty"`
+
+ // EnableResourceNameDnsARecord AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html#cfn-ec2-subnet-privatednsnameoptionsonlaunch-enableresourcenamednsarecord
+ EnableResourceNameDnsARecord *types.Value `json:"EnableResourceNameDnsARecord,omitempty"`
+
+ // HostnameType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-subnet-privatednsnameoptionsonlaunch.html#cfn-ec2-subnet-privatednsnameoptionsonlaunch-hostnametype
+ HostnameType *types.Value `json:"HostnameType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Subnet_PrivateDnsNameOptionsOnLaunch) AWSCloudFormationType() string {
+ return "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-subnetcidrblock.go b/goformation/cloudformation/ec2/aws-ec2-subnetcidrblock.go
new file mode 100644
index 0000000000..cc4cf72460
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-subnetcidrblock.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubnetCidrBlock AWS CloudFormation Resource (AWS::EC2::SubnetCidrBlock)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html
+type SubnetCidrBlock struct {
+
+ // Ipv6CidrBlock AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html#cfn-ec2-subnetcidrblock-ipv6cidrblock
+ Ipv6CidrBlock *types.Value `json:"Ipv6CidrBlock,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html#cfn-ec2-subnetcidrblock-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubnetCidrBlock) AWSCloudFormationType() string {
+ return "AWS::EC2::SubnetCidrBlock"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SubnetCidrBlock) MarshalJSON() ([]byte, error) {
+ type Properties SubnetCidrBlock
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SubnetCidrBlock) UnmarshalJSON(b []byte) error {
+ type Properties SubnetCidrBlock
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SubnetCidrBlock(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-subnetnetworkaclassociation.go b/goformation/cloudformation/ec2/aws-ec2-subnetnetworkaclassociation.go
new file mode 100644
index 0000000000..2fa2186d80
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-subnetnetworkaclassociation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubnetNetworkAclAssociation AWS CloudFormation Resource (AWS::EC2::SubnetNetworkAclAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html
+type SubnetNetworkAclAssociation struct {
+
+ // NetworkAclId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html#cfn-ec2-subnetnetworkaclassociation-networkaclid
+ NetworkAclId *types.Value `json:"NetworkAclId,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-network-acl-assoc.html#cfn-ec2-subnetnetworkaclassociation-associationid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubnetNetworkAclAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::SubnetNetworkAclAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SubnetNetworkAclAssociation) MarshalJSON() ([]byte, error) {
+ type Properties SubnetNetworkAclAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SubnetNetworkAclAssociation) UnmarshalJSON(b []byte) error {
+ type Properties SubnetNetworkAclAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SubnetNetworkAclAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-subnetroutetableassociation.go b/goformation/cloudformation/ec2/aws-ec2-subnetroutetableassociation.go
new file mode 100644
index 0000000000..43f8c143b3
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-subnetroutetableassociation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubnetRouteTableAssociation AWS CloudFormation Resource (AWS::EC2::SubnetRouteTableAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html
+type SubnetRouteTableAssociation struct {
+
+ // RouteTableId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html#cfn-ec2-subnetroutetableassociation-routetableid
+ RouteTableId *types.Value `json:"RouteTableId,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html#cfn-ec2-subnetroutetableassociation-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubnetRouteTableAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::SubnetRouteTableAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SubnetRouteTableAssociation) MarshalJSON() ([]byte, error) {
+ type Properties SubnetRouteTableAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SubnetRouteTableAssociation) UnmarshalJSON(b []byte) error {
+ type Properties SubnetRouteTableAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SubnetRouteTableAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilter.go b/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilter.go
new file mode 100644
index 0000000000..75cd77f4ba
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilter.go
@@ -0,0 +1,119 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TrafficMirrorFilter AWS CloudFormation Resource (AWS::EC2::TrafficMirrorFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html
+type TrafficMirrorFilter struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html#cfn-ec2-trafficmirrorfilter-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // NetworkServices AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html#cfn-ec2-trafficmirrorfilter-networkservices
+ NetworkServices *types.Value `json:"NetworkServices,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html#cfn-ec2-trafficmirrorfilter-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TrafficMirrorFilter) AWSCloudFormationType() string {
+ return "AWS::EC2::TrafficMirrorFilter"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TrafficMirrorFilter) MarshalJSON() ([]byte, error) {
+ type Properties TrafficMirrorFilter
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TrafficMirrorFilter) UnmarshalJSON(b []byte) error {
+ type Properties TrafficMirrorFilter
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TrafficMirrorFilter(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilterrule.go b/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilterrule.go
new file mode 100644
index 0000000000..62357ca94c
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilterrule.go
@@ -0,0 +1,153 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TrafficMirrorFilterRule AWS CloudFormation Resource (AWS::EC2::TrafficMirrorFilterRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html
+type TrafficMirrorFilterRule struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DestinationCidrBlock AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-destinationcidrblock
+ DestinationCidrBlock *types.Value `json:"DestinationCidrBlock,omitempty"`
+
+ // DestinationPortRange AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-destinationportrange
+ DestinationPortRange *TrafficMirrorFilterRule_TrafficMirrorPortRange `json:"DestinationPortRange,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // RuleAction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-ruleaction
+ RuleAction *types.Value `json:"RuleAction,omitempty"`
+
+ // RuleNumber AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-rulenumber
+ RuleNumber *types.Value `json:"RuleNumber"`
+
+ // SourceCidrBlock AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-sourcecidrblock
+ SourceCidrBlock *types.Value `json:"SourceCidrBlock,omitempty"`
+
+ // SourcePortRange AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-sourceportrange
+ SourcePortRange *TrafficMirrorFilterRule_TrafficMirrorPortRange `json:"SourcePortRange,omitempty"`
+
+ // TrafficDirection AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-trafficdirection
+ TrafficDirection *types.Value `json:"TrafficDirection,omitempty"`
+
+ // TrafficMirrorFilterId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html#cfn-ec2-trafficmirrorfilterrule-trafficmirrorfilterid
+ TrafficMirrorFilterId *types.Value `json:"TrafficMirrorFilterId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TrafficMirrorFilterRule) AWSCloudFormationType() string {
+ return "AWS::EC2::TrafficMirrorFilterRule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TrafficMirrorFilterRule) MarshalJSON() ([]byte, error) {
+ type Properties TrafficMirrorFilterRule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TrafficMirrorFilterRule) UnmarshalJSON(b []byte) error {
+ type Properties TrafficMirrorFilterRule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TrafficMirrorFilterRule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilterrule_trafficmirrorportrange.go b/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilterrule_trafficmirrorportrange.go
new file mode 100644
index 0000000000..903dad0e9b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-trafficmirrorfilterrule_trafficmirrorportrange.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TrafficMirrorFilterRule_TrafficMirrorPortRange AWS CloudFormation Resource (AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html
+type TrafficMirrorFilterRule_TrafficMirrorPortRange struct {
+
+ // FromPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html#cfn-ec2-trafficmirrorfilterrule-trafficmirrorportrange-fromport
+ FromPort *types.Value `json:"FromPort"`
+
+ // ToPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-trafficmirrorfilterrule-trafficmirrorportrange.html#cfn-ec2-trafficmirrorfilterrule-trafficmirrorportrange-toport
+ ToPort *types.Value `json:"ToPort"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TrafficMirrorFilterRule_TrafficMirrorPortRange) AWSCloudFormationType() string {
+ return "AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-trafficmirrorsession.go b/goformation/cloudformation/ec2/aws-ec2-trafficmirrorsession.go
new file mode 100644
index 0000000000..b6a5348f3f
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-trafficmirrorsession.go
@@ -0,0 +1,144 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TrafficMirrorSession AWS CloudFormation Resource (AWS::EC2::TrafficMirrorSession)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html
+type TrafficMirrorSession struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // PacketLength AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-packetlength
+ PacketLength *types.Value `json:"PacketLength,omitempty"`
+
+ // SessionNumber AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-sessionnumber
+ SessionNumber *types.Value `json:"SessionNumber"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TrafficMirrorFilterId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-trafficmirrorfilterid
+ TrafficMirrorFilterId *types.Value `json:"TrafficMirrorFilterId,omitempty"`
+
+ // TrafficMirrorTargetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-trafficmirrortargetid
+ TrafficMirrorTargetId *types.Value `json:"TrafficMirrorTargetId,omitempty"`
+
+ // VirtualNetworkId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html#cfn-ec2-trafficmirrorsession-virtualnetworkid
+ VirtualNetworkId *types.Value `json:"VirtualNetworkId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TrafficMirrorSession) AWSCloudFormationType() string {
+ return "AWS::EC2::TrafficMirrorSession"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TrafficMirrorSession) MarshalJSON() ([]byte, error) {
+ type Properties TrafficMirrorSession
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TrafficMirrorSession) UnmarshalJSON(b []byte) error {
+ type Properties TrafficMirrorSession
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TrafficMirrorSession(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-trafficmirrortarget.go b/goformation/cloudformation/ec2/aws-ec2-trafficmirrortarget.go
new file mode 100644
index 0000000000..ab7af4a853
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-trafficmirrortarget.go
@@ -0,0 +1,124 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TrafficMirrorTarget AWS CloudFormation Resource (AWS::EC2::TrafficMirrorTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html
+type TrafficMirrorTarget struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html#cfn-ec2-trafficmirrortarget-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html#cfn-ec2-trafficmirrortarget-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // NetworkLoadBalancerArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html#cfn-ec2-trafficmirrortarget-networkloadbalancerarn
+ NetworkLoadBalancerArn *types.Value `json:"NetworkLoadBalancerArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html#cfn-ec2-trafficmirrortarget-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TrafficMirrorTarget) AWSCloudFormationType() string {
+ return "AWS::EC2::TrafficMirrorTarget"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TrafficMirrorTarget) MarshalJSON() ([]byte, error) {
+ type Properties TrafficMirrorTarget
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TrafficMirrorTarget) UnmarshalJSON(b []byte) error {
+ type Properties TrafficMirrorTarget
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TrafficMirrorTarget(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgateway.go b/goformation/cloudformation/ec2/aws-ec2-transitgateway.go
new file mode 100644
index 0000000000..f38184cbd2
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgateway.go
@@ -0,0 +1,164 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGateway AWS CloudFormation Resource (AWS::EC2::TransitGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html
+type TransitGateway struct {
+
+ // AmazonSideAsn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-amazonsideasn
+ AmazonSideAsn *types.Value `json:"AmazonSideAsn,omitempty"`
+
+ // AssociationDefaultRouteTableId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-associationdefaultroutetableid
+ AssociationDefaultRouteTableId *types.Value `json:"AssociationDefaultRouteTableId,omitempty"`
+
+ // AutoAcceptSharedAttachments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-autoacceptsharedattachments
+ AutoAcceptSharedAttachments *types.Value `json:"AutoAcceptSharedAttachments,omitempty"`
+
+ // DefaultRouteTableAssociation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-defaultroutetableassociation
+ DefaultRouteTableAssociation *types.Value `json:"DefaultRouteTableAssociation,omitempty"`
+
+ // DefaultRouteTablePropagation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-defaultroutetablepropagation
+ DefaultRouteTablePropagation *types.Value `json:"DefaultRouteTablePropagation,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DnsSupport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-dnssupport
+ DnsSupport *types.Value `json:"DnsSupport,omitempty"`
+
+ // MulticastSupport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-multicastsupport
+ MulticastSupport *types.Value `json:"MulticastSupport,omitempty"`
+
+ // PropagationDefaultRouteTableId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-propagationdefaultroutetableid
+ PropagationDefaultRouteTableId *types.Value `json:"PropagationDefaultRouteTableId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransitGatewayCidrBlocks AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-transitgatewaycidrblocks
+ TransitGatewayCidrBlocks *types.Value `json:"TransitGatewayCidrBlocks,omitempty"`
+
+ // VpnEcmpSupport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html#cfn-ec2-transitgateway-vpnecmpsupport
+ VpnEcmpSupport *types.Value `json:"VpnEcmpSupport,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGateway) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGateway) MarshalJSON() ([]byte, error) {
+ type Properties TransitGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGateway) UnmarshalJSON(b []byte) error {
+ type Properties TransitGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewayattachment.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewayattachment.go
new file mode 100644
index 0000000000..df7fb72257
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewayattachment.go
@@ -0,0 +1,124 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayAttachment AWS CloudFormation Resource (AWS::EC2::TransitGatewayAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html
+type TransitGatewayAttachment struct {
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html#cfn-ec2-transitgatewayattachment-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html#cfn-ec2-transitgatewayattachment-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransitGatewayId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html#cfn-ec2-transitgatewayattachment-transitgatewayid
+ TransitGatewayId *types.Value `json:"TransitGatewayId,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html#cfn-ec2-transitgatewayattachment-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayAttachment) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayAttachment) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayAttachment) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewayconnect.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewayconnect.go
new file mode 100644
index 0000000000..5925b2bda3
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewayconnect.go
@@ -0,0 +1,119 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayConnect AWS CloudFormation Resource (AWS::EC2::TransitGatewayConnect)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html
+type TransitGatewayConnect struct {
+
+ // Options AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html#cfn-ec2-transitgatewayconnect-options
+ Options *TransitGatewayConnect_TransitGatewayConnectOptions `json:"Options,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html#cfn-ec2-transitgatewayconnect-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransportTransitGatewayAttachmentId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html#cfn-ec2-transitgatewayconnect-transporttransitgatewayattachmentid
+ TransportTransitGatewayAttachmentId *types.Value `json:"TransportTransitGatewayAttachmentId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayConnect) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayConnect"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayConnect) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayConnect
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayConnect) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayConnect
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayConnect(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewayconnect_transitgatewayconnectoptions.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewayconnect_transitgatewayconnectoptions.go
new file mode 100644
index 0000000000..61cd2b2b6e
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewayconnect_transitgatewayconnectoptions.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayConnect_TransitGatewayConnectOptions AWS CloudFormation Resource (AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnect-transitgatewayconnectoptions.html
+type TransitGatewayConnect_TransitGatewayConnectOptions struct {
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewayconnect-transitgatewayconnectoptions.html#cfn-ec2-transitgatewayconnect-transitgatewayconnectoptions-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayConnect_TransitGatewayConnectOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastdomain.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastdomain.go
new file mode 100644
index 0000000000..57f8d697ab
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastdomain.go
@@ -0,0 +1,119 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayMulticastDomain AWS CloudFormation Resource (AWS::EC2::TransitGatewayMulticastDomain)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html
+type TransitGatewayMulticastDomain struct {
+
+ // Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html#cfn-ec2-transitgatewaymulticastdomain-options
+ Options interface{} `json:"Options,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html#cfn-ec2-transitgatewaymulticastdomain-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransitGatewayId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html#cfn-ec2-transitgatewaymulticastdomain-transitgatewayid
+ TransitGatewayId *types.Value `json:"TransitGatewayId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayMulticastDomain) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayMulticastDomain"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayMulticastDomain) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayMulticastDomain
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayMulticastDomain) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayMulticastDomain
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayMulticastDomain(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastdomainassociation.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastdomainassociation.go
new file mode 100644
index 0000000000..b1c4313a67
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastdomainassociation.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayMulticastDomainAssociation AWS CloudFormation Resource (AWS::EC2::TransitGatewayMulticastDomainAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html
+type TransitGatewayMulticastDomainAssociation struct {
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html#cfn-ec2-transitgatewaymulticastdomainassociation-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // TransitGatewayAttachmentId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html#cfn-ec2-transitgatewaymulticastdomainassociation-transitgatewayattachmentid
+ TransitGatewayAttachmentId *types.Value `json:"TransitGatewayAttachmentId,omitempty"`
+
+ // TransitGatewayMulticastDomainId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html#cfn-ec2-transitgatewaymulticastdomainassociation-transitgatewaymulticastdomainid
+ TransitGatewayMulticastDomainId *types.Value `json:"TransitGatewayMulticastDomainId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayMulticastDomainAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayMulticastDomainAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayMulticastDomainAssociation) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayMulticastDomainAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayMulticastDomainAssociation) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayMulticastDomainAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayMulticastDomainAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastgroupmember.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastgroupmember.go
new file mode 100644
index 0000000000..7b8ed70c4d
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastgroupmember.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayMulticastGroupMember AWS CloudFormation Resource (AWS::EC2::TransitGatewayMulticastGroupMember)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html
+type TransitGatewayMulticastGroupMember struct {
+
+ // GroupIpAddress AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html#cfn-ec2-transitgatewaymulticastgroupmember-groupipaddress
+ GroupIpAddress *types.Value `json:"GroupIpAddress,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html#cfn-ec2-transitgatewaymulticastgroupmember-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // TransitGatewayMulticastDomainId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html#cfn-ec2-transitgatewaymulticastgroupmember-transitgatewaymulticastdomainid
+ TransitGatewayMulticastDomainId *types.Value `json:"TransitGatewayMulticastDomainId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayMulticastGroupMember) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayMulticastGroupMember"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayMulticastGroupMember) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayMulticastGroupMember
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayMulticastGroupMember) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayMulticastGroupMember
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayMulticastGroupMember(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastgroupsource.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastgroupsource.go
new file mode 100644
index 0000000000..0e05ef2aff
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewaymulticastgroupsource.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayMulticastGroupSource AWS CloudFormation Resource (AWS::EC2::TransitGatewayMulticastGroupSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html
+type TransitGatewayMulticastGroupSource struct {
+
+ // GroupIpAddress AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html#cfn-ec2-transitgatewaymulticastgroupsource-groupipaddress
+ GroupIpAddress *types.Value `json:"GroupIpAddress,omitempty"`
+
+ // NetworkInterfaceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html#cfn-ec2-transitgatewaymulticastgroupsource-networkinterfaceid
+ NetworkInterfaceId *types.Value `json:"NetworkInterfaceId,omitempty"`
+
+ // TransitGatewayMulticastDomainId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html#cfn-ec2-transitgatewaymulticastgroupsource-transitgatewaymulticastdomainid
+ TransitGatewayMulticastDomainId *types.Value `json:"TransitGatewayMulticastDomainId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayMulticastGroupSource) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayMulticastGroupSource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayMulticastGroupSource) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayMulticastGroupSource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayMulticastGroupSource) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayMulticastGroupSource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayMulticastGroupSource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment.go
new file mode 100644
index 0000000000..7bab6f2dc6
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment.go
@@ -0,0 +1,134 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayPeeringAttachment AWS CloudFormation Resource (AWS::EC2::TransitGatewayPeeringAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html
+type TransitGatewayPeeringAttachment struct {
+
+ // Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html#cfn-ec2-transitgatewaypeeringattachment-options
+ Options *TransitGatewayPeeringAttachment_TransitGatewayPeeringAttachmentOptions `json:"Options,omitempty"`
+
+ // PeerAccountId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html#cfn-ec2-transitgatewaypeeringattachment-peeraccountid
+ PeerAccountId *types.Value `json:"PeerAccountId,omitempty"`
+
+ // PeerRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html#cfn-ec2-transitgatewaypeeringattachment-peerregion
+ PeerRegion *types.Value `json:"PeerRegion,omitempty"`
+
+ // PeerTransitGatewayId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html#cfn-ec2-transitgatewaypeeringattachment-peertransitgatewayid
+ PeerTransitGatewayId *types.Value `json:"PeerTransitGatewayId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html#cfn-ec2-transitgatewaypeeringattachment-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransitGatewayId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html#cfn-ec2-transitgatewaypeeringattachment-transitgatewayid
+ TransitGatewayId *types.Value `json:"TransitGatewayId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayPeeringAttachment) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayPeeringAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayPeeringAttachment) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayPeeringAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayPeeringAttachment) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayPeeringAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayPeeringAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment_transitgatewaypeeringattachmentoptions.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment_transitgatewaypeeringattachmentoptions.go
new file mode 100644
index 0000000000..efb7d1350c
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewaypeeringattachment_transitgatewaypeeringattachmentoptions.go
@@ -0,0 +1,37 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayPeeringAttachment_TransitGatewayPeeringAttachmentOptions AWS CloudFormation Resource (AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaypeeringattachment-transitgatewaypeeringattachmentoptions.html
+type TransitGatewayPeeringAttachment_TransitGatewayPeeringAttachmentOptions struct {
+
+ // DynamicRouting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-transitgatewaypeeringattachment-transitgatewaypeeringattachmentoptions.html#cfn-ec2-transitgatewaypeeringattachment-transitgatewaypeeringattachmentoptions-dynamicrouting
+ DynamicRouting *types.Value `json:"DynamicRouting,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayPeeringAttachment_TransitGatewayPeeringAttachmentOptions) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayPeeringAttachment.TransitGatewayPeeringAttachmentOptions"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewayroute.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewayroute.go
new file mode 100644
index 0000000000..cd95a4386b
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewayroute.go
@@ -0,0 +1,123 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayRoute AWS CloudFormation Resource (AWS::EC2::TransitGatewayRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html
+type TransitGatewayRoute struct {
+
+ // Blackhole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html#cfn-ec2-transitgatewayroute-blackhole
+ Blackhole *types.Value `json:"Blackhole,omitempty"`
+
+ // DestinationCidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html#cfn-ec2-transitgatewayroute-destinationcidrblock
+ DestinationCidrBlock *types.Value `json:"DestinationCidrBlock,omitempty"`
+
+ // TransitGatewayAttachmentId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html#cfn-ec2-transitgatewayroute-transitgatewayattachmentid
+ TransitGatewayAttachmentId *types.Value `json:"TransitGatewayAttachmentId,omitempty"`
+
+ // TransitGatewayRouteTableId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html#cfn-ec2-transitgatewayroute-transitgatewayroutetableid
+ TransitGatewayRouteTableId *types.Value `json:"TransitGatewayRouteTableId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayRoute) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayRoute"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayRoute) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayRoute
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayRoute) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayRoute
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayRoute(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetable.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetable.go
new file mode 100644
index 0000000000..279e193983
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetable.go
@@ -0,0 +1,114 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayRouteTable AWS CloudFormation Resource (AWS::EC2::TransitGatewayRouteTable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html
+type TransitGatewayRouteTable struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html#cfn-ec2-transitgatewayroutetable-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransitGatewayId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html#cfn-ec2-transitgatewayroutetable-transitgatewayid
+ TransitGatewayId *types.Value `json:"TransitGatewayId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayRouteTable) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayRouteTable"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayRouteTable) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayRouteTable
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayRouteTable) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayRouteTable
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayRouteTable(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetableassociation.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetableassociation.go
new file mode 100644
index 0000000000..de2f6965c9
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetableassociation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayRouteTableAssociation AWS CloudFormation Resource (AWS::EC2::TransitGatewayRouteTableAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html
+type TransitGatewayRouteTableAssociation struct {
+
+ // TransitGatewayAttachmentId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html#cfn-ec2-transitgatewayroutetableassociation-transitgatewayattachmentid
+ TransitGatewayAttachmentId *types.Value `json:"TransitGatewayAttachmentId,omitempty"`
+
+ // TransitGatewayRouteTableId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html#cfn-ec2-transitgatewayroutetableassociation-transitgatewayroutetableid
+ TransitGatewayRouteTableId *types.Value `json:"TransitGatewayRouteTableId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayRouteTableAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayRouteTableAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayRouteTableAssociation) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayRouteTableAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayRouteTableAssociation) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayRouteTableAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayRouteTableAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetablepropagation.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetablepropagation.go
new file mode 100644
index 0000000000..fba3ae5736
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewayroutetablepropagation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayRouteTablePropagation AWS CloudFormation Resource (AWS::EC2::TransitGatewayRouteTablePropagation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html
+type TransitGatewayRouteTablePropagation struct {
+
+ // TransitGatewayAttachmentId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html#cfn-ec2-transitgatewayroutetablepropagation-transitgatewayattachmentid
+ TransitGatewayAttachmentId *types.Value `json:"TransitGatewayAttachmentId,omitempty"`
+
+ // TransitGatewayRouteTableId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html#cfn-ec2-transitgatewayroutetablepropagation-transitgatewayroutetableid
+ TransitGatewayRouteTableId *types.Value `json:"TransitGatewayRouteTableId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayRouteTablePropagation) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayRouteTablePropagation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayRouteTablePropagation) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayRouteTablePropagation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayRouteTablePropagation) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayRouteTablePropagation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayRouteTablePropagation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go b/goformation/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go
new file mode 100644
index 0000000000..5d6340cddd
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-transitgatewayvpcattachment.go
@@ -0,0 +1,139 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TransitGatewayVpcAttachment AWS CloudFormation Resource (AWS::EC2::TransitGatewayVpcAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html
+type TransitGatewayVpcAttachment struct {
+
+ // AddSubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-addsubnetids
+ AddSubnetIds *types.Value `json:"AddSubnetIds,omitempty"`
+
+ // Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-options
+ Options interface{} `json:"Options,omitempty"`
+
+ // RemoveSubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-removesubnetids
+ RemoveSubnetIds *types.Value `json:"RemoveSubnetIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransitGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-transitgatewayid
+ TransitGatewayId *types.Value `json:"TransitGatewayId,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html#cfn-ec2-transitgatewayvpcattachment-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TransitGatewayVpcAttachment) AWSCloudFormationType() string {
+ return "AWS::EC2::TransitGatewayVpcAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TransitGatewayVpcAttachment) MarshalJSON() ([]byte, error) {
+ type Properties TransitGatewayVpcAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TransitGatewayVpcAttachment) UnmarshalJSON(b []byte) error {
+ type Properties TransitGatewayVpcAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TransitGatewayVpcAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-volume.go b/goformation/cloudformation/ec2/aws-ec2-volume.go
new file mode 100644
index 0000000000..45dba8f3cd
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-volume.go
@@ -0,0 +1,164 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Volume AWS CloudFormation Resource (AWS::EC2::Volume)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html
+type Volume struct {
+
+ // AutoEnableIO AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-autoenableio
+ AutoEnableIO *types.Value `json:"AutoEnableIO,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-encrypted
+ Encrypted *types.Value `json:"Encrypted,omitempty"`
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // MultiAttachEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-multiattachenabled
+ MultiAttachEnabled *types.Value `json:"MultiAttachEnabled,omitempty"`
+
+ // OutpostArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-outpostarn
+ OutpostArn *types.Value `json:"OutpostArn,omitempty"`
+
+ // Size AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-size
+ Size *types.Value `json:"Size,omitempty"`
+
+ // SnapshotId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-snapshotid
+ SnapshotId *types.Value `json:"SnapshotId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Throughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-throughput
+ Throughput *types.Value `json:"Throughput,omitempty"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volume.html#cfn-ec2-ebs-volume-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Volume) AWSCloudFormationType() string {
+ return "AWS::EC2::Volume"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Volume) MarshalJSON() ([]byte, error) {
+ type Properties Volume
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Volume) UnmarshalJSON(b []byte) error {
+ type Properties Volume
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Volume(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-volumeattachment.go b/goformation/cloudformation/ec2/aws-ec2-volumeattachment.go
new file mode 100644
index 0000000000..4e8907ce36
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-volumeattachment.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VolumeAttachment AWS CloudFormation Resource (AWS::EC2::VolumeAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html
+type VolumeAttachment struct {
+
+ // Device AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-device
+ Device *types.Value `json:"Device,omitempty"`
+
+ // InstanceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-instanceid
+ InstanceId *types.Value `json:"InstanceId,omitempty"`
+
+ // VolumeId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html#cfn-ec2-ebs-volumeattachment-volumeid
+ VolumeId *types.Value `json:"VolumeId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VolumeAttachment) AWSCloudFormationType() string {
+ return "AWS::EC2::VolumeAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VolumeAttachment) MarshalJSON() ([]byte, error) {
+ type Properties VolumeAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VolumeAttachment) UnmarshalJSON(b []byte) error {
+ type Properties VolumeAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VolumeAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpc.go b/goformation/cloudformation/ec2/aws-ec2-vpc.go
new file mode 100644
index 0000000000..86ee06d227
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpc.go
@@ -0,0 +1,129 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPC AWS CloudFormation Resource (AWS::EC2::VPC)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html
+type VPC struct {
+
+ // CidrBlock AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-cidrblock
+ CidrBlock *types.Value `json:"CidrBlock,omitempty"`
+
+ // EnableDnsHostnames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-EnableDnsHostnames
+ EnableDnsHostnames *types.Value `json:"EnableDnsHostnames,omitempty"`
+
+ // EnableDnsSupport AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-EnableDnsSupport
+ EnableDnsSupport *types.Value `json:"EnableDnsSupport,omitempty"`
+
+ // InstanceTenancy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-instancetenancy
+ InstanceTenancy *types.Value `json:"InstanceTenancy,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html#cfn-aws-ec2-vpc-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPC) AWSCloudFormationType() string {
+ return "AWS::EC2::VPC"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPC) MarshalJSON() ([]byte, error) {
+ type Properties VPC
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPC) UnmarshalJSON(b []byte) error {
+ type Properties VPC
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPC(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpccidrblock.go b/goformation/cloudformation/ec2/aws-ec2-vpccidrblock.go
new file mode 100644
index 0000000000..8d27f729e4
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpccidrblock.go
@@ -0,0 +1,128 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPCCidrBlock AWS CloudFormation Resource (AWS::EC2::VPCCidrBlock)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html
+type VPCCidrBlock struct {
+
+ // AmazonProvidedIpv6CidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-amazonprovidedipv6cidrblock
+ AmazonProvidedIpv6CidrBlock *types.Value `json:"AmazonProvidedIpv6CidrBlock,omitempty"`
+
+ // CidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-cidrblock
+ CidrBlock *types.Value `json:"CidrBlock,omitempty"`
+
+ // Ipv6CidrBlock AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-ipv6cidrblock
+ Ipv6CidrBlock *types.Value `json:"Ipv6CidrBlock,omitempty"`
+
+ // Ipv6Pool AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-ipv6pool
+ Ipv6Pool *types.Value `json:"Ipv6Pool,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html#cfn-ec2-vpccidrblock-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPCCidrBlock) AWSCloudFormationType() string {
+ return "AWS::EC2::VPCCidrBlock"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPCCidrBlock) MarshalJSON() ([]byte, error) {
+ type Properties VPCCidrBlock
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPCCidrBlock) UnmarshalJSON(b []byte) error {
+ type Properties VPCCidrBlock
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPCCidrBlock(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpcdhcpoptionsassociation.go b/goformation/cloudformation/ec2/aws-ec2-vpcdhcpoptionsassociation.go
new file mode 100644
index 0000000000..7a922026ab
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpcdhcpoptionsassociation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPCDHCPOptionsAssociation AWS CloudFormation Resource (AWS::EC2::VPCDHCPOptionsAssociation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html
+type VPCDHCPOptionsAssociation struct {
+
+ // DhcpOptionsId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html#cfn-ec2-vpcdhcpoptionsassociation-dhcpoptionsid
+ DhcpOptionsId *types.Value `json:"DhcpOptionsId,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html#cfn-ec2-vpcdhcpoptionsassociation-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPCDHCPOptionsAssociation) AWSCloudFormationType() string {
+ return "AWS::EC2::VPCDHCPOptionsAssociation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPCDHCPOptionsAssociation) MarshalJSON() ([]byte, error) {
+ type Properties VPCDHCPOptionsAssociation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPCDHCPOptionsAssociation) UnmarshalJSON(b []byte) error {
+ type Properties VPCDHCPOptionsAssociation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPCDHCPOptionsAssociation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpcendpoint.go b/goformation/cloudformation/ec2/aws-ec2-vpcendpoint.go
new file mode 100644
index 0000000000..f07b81f9de
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpcendpoint.go
@@ -0,0 +1,143 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPCEndpoint AWS CloudFormation Resource (AWS::EC2::VPCEndpoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html
+type VPCEndpoint struct {
+
+ // PolicyDocument AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-policydocument
+ PolicyDocument interface{} `json:"PolicyDocument,omitempty"`
+
+ // PrivateDnsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-privatednsenabled
+ PrivateDnsEnabled *types.Value `json:"PrivateDnsEnabled,omitempty"`
+
+ // RouteTableIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-routetableids
+ RouteTableIds *types.Value `json:"RouteTableIds,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // VpcEndpointType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-vpcendpointtype
+ VpcEndpointType *types.Value `json:"VpcEndpointType,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html#cfn-ec2-vpcendpoint-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPCEndpoint) AWSCloudFormationType() string {
+ return "AWS::EC2::VPCEndpoint"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPCEndpoint) MarshalJSON() ([]byte, error) {
+ type Properties VPCEndpoint
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPCEndpoint) UnmarshalJSON(b []byte) error {
+ type Properties VPCEndpoint
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPCEndpoint(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpcendpointconnectionnotification.go b/goformation/cloudformation/ec2/aws-ec2-vpcendpointconnectionnotification.go
new file mode 100644
index 0000000000..e9fce01c50
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpcendpointconnectionnotification.go
@@ -0,0 +1,123 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPCEndpointConnectionNotification AWS CloudFormation Resource (AWS::EC2::VPCEndpointConnectionNotification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html
+type VPCEndpointConnectionNotification struct {
+
+ // ConnectionEvents AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html#cfn-ec2-vpcendpointconnectionnotification-connectionevents
+ ConnectionEvents *types.Value `json:"ConnectionEvents,omitempty"`
+
+ // ConnectionNotificationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html#cfn-ec2-vpcendpointconnectionnotification-connectionnotificationarn
+ ConnectionNotificationArn *types.Value `json:"ConnectionNotificationArn,omitempty"`
+
+ // ServiceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html#cfn-ec2-vpcendpointconnectionnotification-serviceid
+ ServiceId *types.Value `json:"ServiceId,omitempty"`
+
+ // VPCEndpointId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html#cfn-ec2-vpcendpointconnectionnotification-vpcendpointid
+ VPCEndpointId *types.Value `json:"VPCEndpointId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPCEndpointConnectionNotification) AWSCloudFormationType() string {
+ return "AWS::EC2::VPCEndpointConnectionNotification"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPCEndpointConnectionNotification) MarshalJSON() ([]byte, error) {
+ type Properties VPCEndpointConnectionNotification
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPCEndpointConnectionNotification) UnmarshalJSON(b []byte) error {
+ type Properties VPCEndpointConnectionNotification
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPCEndpointConnectionNotification(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpcendpointservice.go b/goformation/cloudformation/ec2/aws-ec2-vpcendpointservice.go
new file mode 100644
index 0000000000..b3c1bd44ad
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpcendpointservice.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPCEndpointService AWS CloudFormation Resource (AWS::EC2::VPCEndpointService)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html
+type VPCEndpointService struct {
+
+ // AcceptanceRequired AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-acceptancerequired
+ AcceptanceRequired *types.Value `json:"AcceptanceRequired,omitempty"`
+
+ // GatewayLoadBalancerArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-gatewayloadbalancerarns
+ GatewayLoadBalancerArns *types.Value `json:"GatewayLoadBalancerArns,omitempty"`
+
+ // NetworkLoadBalancerArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-networkloadbalancerarns
+ NetworkLoadBalancerArns *types.Value `json:"NetworkLoadBalancerArns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPCEndpointService) AWSCloudFormationType() string {
+ return "AWS::EC2::VPCEndpointService"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPCEndpointService) MarshalJSON() ([]byte, error) {
+ type Properties VPCEndpointService
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPCEndpointService) UnmarshalJSON(b []byte) error {
+ type Properties VPCEndpointService
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPCEndpointService(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpcendpointservicepermissions.go b/goformation/cloudformation/ec2/aws-ec2-vpcendpointservicepermissions.go
new file mode 100644
index 0000000000..64efc800b1
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpcendpointservicepermissions.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPCEndpointServicePermissions AWS CloudFormation Resource (AWS::EC2::VPCEndpointServicePermissions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html
+type VPCEndpointServicePermissions struct {
+
+ // AllowedPrincipals AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html#cfn-ec2-vpcendpointservicepermissions-allowedprincipals
+ AllowedPrincipals *types.Value `json:"AllowedPrincipals,omitempty"`
+
+ // ServiceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html#cfn-ec2-vpcendpointservicepermissions-serviceid
+ ServiceId *types.Value `json:"ServiceId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPCEndpointServicePermissions) AWSCloudFormationType() string {
+ return "AWS::EC2::VPCEndpointServicePermissions"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPCEndpointServicePermissions) MarshalJSON() ([]byte, error) {
+ type Properties VPCEndpointServicePermissions
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPCEndpointServicePermissions) UnmarshalJSON(b []byte) error {
+ type Properties VPCEndpointServicePermissions
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPCEndpointServicePermissions(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpcgatewayattachment.go b/goformation/cloudformation/ec2/aws-ec2-vpcgatewayattachment.go
new file mode 100644
index 0000000000..11c87a637a
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpcgatewayattachment.go
@@ -0,0 +1,118 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPCGatewayAttachment AWS CloudFormation Resource (AWS::EC2::VPCGatewayAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html
+type VPCGatewayAttachment struct {
+
+ // InternetGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-internetgatewayid
+ InternetGatewayId *types.Value `json:"InternetGatewayId,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // VpnGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html#cfn-ec2-vpcgatewayattachment-vpngatewayid
+ VpnGatewayId *types.Value `json:"VpnGatewayId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPCGatewayAttachment) AWSCloudFormationType() string {
+ return "AWS::EC2::VPCGatewayAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPCGatewayAttachment) MarshalJSON() ([]byte, error) {
+ type Properties VPCGatewayAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPCGatewayAttachment) UnmarshalJSON(b []byte) error {
+ type Properties VPCGatewayAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPCGatewayAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpcpeeringconnection.go b/goformation/cloudformation/ec2/aws-ec2-vpcpeeringconnection.go
new file mode 100644
index 0000000000..8b0bf61ab5
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpcpeeringconnection.go
@@ -0,0 +1,134 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPCPeeringConnection AWS CloudFormation Resource (AWS::EC2::VPCPeeringConnection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html
+type VPCPeeringConnection struct {
+
+ // PeerOwnerId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-peerownerid
+ PeerOwnerId *types.Value `json:"PeerOwnerId,omitempty"`
+
+ // PeerRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-peerregion
+ PeerRegion *types.Value `json:"PeerRegion,omitempty"`
+
+ // PeerRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-peerrolearn
+ PeerRoleArn *types.Value `json:"PeerRoleArn,omitempty"`
+
+ // PeerVpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-peervpcid
+ PeerVpcId *types.Value `json:"PeerVpcId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html#cfn-ec2-vpcpeeringconnection-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPCPeeringConnection) AWSCloudFormationType() string {
+ return "AWS::EC2::VPCPeeringConnection"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPCPeeringConnection) MarshalJSON() ([]byte, error) {
+ type Properties VPCPeeringConnection
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPCPeeringConnection) UnmarshalJSON(b []byte) error {
+ type Properties VPCPeeringConnection
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPCPeeringConnection(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpnconnection.go b/goformation/cloudformation/ec2/aws-ec2-vpnconnection.go
new file mode 100644
index 0000000000..f14a0278e7
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpnconnection.go
@@ -0,0 +1,139 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPNConnection AWS CloudFormation Resource (AWS::EC2::VPNConnection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html
+type VPNConnection struct {
+
+ // CustomerGatewayId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-customergatewayid
+ CustomerGatewayId *types.Value `json:"CustomerGatewayId,omitempty"`
+
+ // StaticRoutesOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-StaticRoutesOnly
+ StaticRoutesOnly *types.Value `json:"StaticRoutesOnly,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransitGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-transitgatewayid
+ TransitGatewayId *types.Value `json:"TransitGatewayId,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // VpnGatewayId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-vpngatewayid
+ VpnGatewayId *types.Value `json:"VpnGatewayId,omitempty"`
+
+ // VpnTunnelOptionsSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection.html#cfn-ec2-vpnconnection-vpntunneloptionsspecifications
+ VpnTunnelOptionsSpecifications []VPNConnection_VpnTunnelOptionsSpecification `json:"VpnTunnelOptionsSpecifications,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPNConnection) AWSCloudFormationType() string {
+ return "AWS::EC2::VPNConnection"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPNConnection) MarshalJSON() ([]byte, error) {
+ type Properties VPNConnection
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPNConnection) UnmarshalJSON(b []byte) error {
+ type Properties VPNConnection
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPNConnection(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpnconnection_vpntunneloptionsspecification.go b/goformation/cloudformation/ec2/aws-ec2-vpnconnection_vpntunneloptionsspecification.go
new file mode 100644
index 0000000000..70e5bbb262
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpnconnection_vpntunneloptionsspecification.go
@@ -0,0 +1,42 @@
+package ec2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPNConnection_VpnTunnelOptionsSpecification AWS CloudFormation Resource (AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html
+type VPNConnection_VpnTunnelOptionsSpecification struct {
+
+ // PreSharedKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-presharedkey
+ PreSharedKey *types.Value `json:"PreSharedKey,omitempty"`
+
+ // TunnelInsideCidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-vpnconnection-vpntunneloptionsspecification.html#cfn-ec2-vpnconnection-vpntunneloptionsspecification-tunnelinsidecidr
+ TunnelInsideCidr *types.Value `json:"TunnelInsideCidr,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPNConnection_VpnTunnelOptionsSpecification) AWSCloudFormationType() string {
+ return "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification"
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpnconnectionroute.go b/goformation/cloudformation/ec2/aws-ec2-vpnconnectionroute.go
new file mode 100644
index 0000000000..9f01ad52ae
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpnconnectionroute.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPNConnectionRoute AWS CloudFormation Resource (AWS::EC2::VPNConnectionRoute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html
+type VPNConnectionRoute struct {
+
+ // DestinationCidrBlock AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html#cfn-ec2-vpnconnectionroute-cidrblock
+ DestinationCidrBlock *types.Value `json:"DestinationCidrBlock,omitempty"`
+
+ // VpnConnectionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-connection-route.html#cfn-ec2-vpnconnectionroute-connectionid
+ VpnConnectionId *types.Value `json:"VpnConnectionId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPNConnectionRoute) AWSCloudFormationType() string {
+ return "AWS::EC2::VPNConnectionRoute"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPNConnectionRoute) MarshalJSON() ([]byte, error) {
+ type Properties VPNConnectionRoute
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPNConnectionRoute) UnmarshalJSON(b []byte) error {
+ type Properties VPNConnectionRoute
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPNConnectionRoute(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpngateway.go b/goformation/cloudformation/ec2/aws-ec2-vpngateway.go
new file mode 100644
index 0000000000..05cff61edc
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpngateway.go
@@ -0,0 +1,119 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPNGateway AWS CloudFormation Resource (AWS::EC2::VPNGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html
+type VPNGateway struct {
+
+ // AmazonSideAsn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-amazonsideasn
+ AmazonSideAsn *types.Value `json:"AmazonSideAsn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gateway.html#cfn-ec2-vpngateway-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPNGateway) AWSCloudFormationType() string {
+ return "AWS::EC2::VPNGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPNGateway) MarshalJSON() ([]byte, error) {
+ type Properties VPNGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPNGateway) UnmarshalJSON(b []byte) error {
+ type Properties VPNGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPNGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ec2/aws-ec2-vpngatewayroutepropagation.go b/goformation/cloudformation/ec2/aws-ec2-vpngatewayroutepropagation.go
new file mode 100644
index 0000000000..2dc3688c89
--- /dev/null
+++ b/goformation/cloudformation/ec2/aws-ec2-vpngatewayroutepropagation.go
@@ -0,0 +1,113 @@
+package ec2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VPNGatewayRoutePropagation AWS CloudFormation Resource (AWS::EC2::VPNGatewayRoutePropagation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html
+type VPNGatewayRoutePropagation struct {
+
+ // RouteTableIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html#cfn-ec2-vpngatewayrouteprop-routetableids
+ RouteTableIds *types.Value `json:"RouteTableIds,omitempty"`
+
+ // VpnGatewayId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpn-gatewayrouteprop.html#cfn-ec2-vpngatewayrouteprop-vpngatewayid
+ VpnGatewayId *types.Value `json:"VpnGatewayId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VPNGatewayRoutePropagation) AWSCloudFormationType() string {
+ return "AWS::EC2::VPNGatewayRoutePropagation"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VPNGatewayRoutePropagation) MarshalJSON() ([]byte, error) {
+ type Properties VPNGatewayRoutePropagation
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VPNGatewayRoutePropagation) UnmarshalJSON(b []byte) error {
+ type Properties VPNGatewayRoutePropagation
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VPNGatewayRoutePropagation(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-publicrepository.go b/goformation/cloudformation/ecr/aws-ecr-publicrepository.go
new file mode 100644
index 0000000000..df78efe6ee
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-publicrepository.go
@@ -0,0 +1,124 @@
+package ecr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// PublicRepository AWS CloudFormation Resource (AWS::ECR::PublicRepository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html
+type PublicRepository struct {
+
+ // RepositoryCatalogData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html#cfn-ecr-publicrepository-repositorycatalogdata
+ RepositoryCatalogData interface{} `json:"RepositoryCatalogData,omitempty"`
+
+ // RepositoryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html#cfn-ecr-publicrepository-repositoryname
+ RepositoryName *types.Value `json:"RepositoryName,omitempty"`
+
+ // RepositoryPolicyText AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html#cfn-ecr-publicrepository-repositorypolicytext
+ RepositoryPolicyText interface{} `json:"RepositoryPolicyText,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-publicrepository.html#cfn-ecr-publicrepository-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PublicRepository) AWSCloudFormationType() string {
+ return "AWS::ECR::PublicRepository"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PublicRepository) MarshalJSON() ([]byte, error) {
+ type Properties PublicRepository
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PublicRepository) UnmarshalJSON(b []byte) error {
+ type Properties PublicRepository
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PublicRepository(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-registrypolicy.go b/goformation/cloudformation/ecr/aws-ecr-registrypolicy.go
new file mode 100644
index 0000000000..453a44b399
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-registrypolicy.go
@@ -0,0 +1,106 @@
+package ecr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RegistryPolicy AWS CloudFormation Resource (AWS::ECR::RegistryPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registrypolicy.html
+type RegistryPolicy struct {
+
+ // PolicyText AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-registrypolicy.html#cfn-ecr-registrypolicy-policytext
+ PolicyText interface{} `json:"PolicyText,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RegistryPolicy) AWSCloudFormationType() string {
+ return "AWS::ECR::RegistryPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RegistryPolicy) MarshalJSON() ([]byte, error) {
+ type Properties RegistryPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RegistryPolicy) UnmarshalJSON(b []byte) error {
+ type Properties RegistryPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RegistryPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration.go b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration.go
new file mode 100644
index 0000000000..a440ca89e4
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration.go
@@ -0,0 +1,106 @@
+package ecr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationConfiguration AWS CloudFormation Resource (AWS::ECR::ReplicationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-replicationconfiguration.html
+type ReplicationConfiguration struct {
+
+ // ReplicationConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-replicationconfiguration.html#cfn-ecr-replicationconfiguration-replicationconfiguration
+ ReplicationConfiguration *ReplicationConfiguration_ReplicationConfiguration `json:"ReplicationConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECR::ReplicationConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReplicationConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties ReplicationConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReplicationConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties ReplicationConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReplicationConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationconfiguration.go b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationconfiguration.go
new file mode 100644
index 0000000000..54927fe4c8
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationconfiguration.go
@@ -0,0 +1,35 @@
+package ecr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationConfiguration_ReplicationConfiguration AWS CloudFormation Resource (AWS::ECR::ReplicationConfiguration.ReplicationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationconfiguration.html
+type ReplicationConfiguration_ReplicationConfiguration struct {
+
+ // Rules AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationconfiguration.html#cfn-ecr-replicationconfiguration-replicationconfiguration-rules
+ Rules []ReplicationConfiguration_ReplicationRule `json:"Rules,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationConfiguration_ReplicationConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration"
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationdestination.go b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationdestination.go
new file mode 100644
index 0000000000..508f337474
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationdestination.go
@@ -0,0 +1,42 @@
+package ecr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationConfiguration_ReplicationDestination AWS CloudFormation Resource (AWS::ECR::ReplicationConfiguration.ReplicationDestination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationdestination.html
+type ReplicationConfiguration_ReplicationDestination struct {
+
+ // Region AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationdestination.html#cfn-ecr-replicationconfiguration-replicationdestination-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // RegistryId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationdestination.html#cfn-ecr-replicationconfiguration-replicationdestination-registryid
+ RegistryId *types.Value `json:"RegistryId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationConfiguration_ReplicationDestination) AWSCloudFormationType() string {
+ return "AWS::ECR::ReplicationConfiguration.ReplicationDestination"
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationrule.go b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationrule.go
new file mode 100644
index 0000000000..631e871e21
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_replicationrule.go
@@ -0,0 +1,40 @@
+package ecr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationConfiguration_ReplicationRule AWS CloudFormation Resource (AWS::ECR::ReplicationConfiguration.ReplicationRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationrule.html
+type ReplicationConfiguration_ReplicationRule struct {
+
+ // Destinations AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationrule.html#cfn-ecr-replicationconfiguration-replicationrule-destinations
+ Destinations []ReplicationConfiguration_ReplicationDestination `json:"Destinations,omitempty"`
+
+ // RepositoryFilters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-replicationrule.html#cfn-ecr-replicationconfiguration-replicationrule-repositoryfilters
+ RepositoryFilters []ReplicationConfiguration_RepositoryFilter `json:"RepositoryFilters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationConfiguration_ReplicationRule) AWSCloudFormationType() string {
+ return "AWS::ECR::ReplicationConfiguration.ReplicationRule"
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_repositoryfilter.go b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_repositoryfilter.go
new file mode 100644
index 0000000000..11bea70518
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-replicationconfiguration_repositoryfilter.go
@@ -0,0 +1,42 @@
+package ecr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationConfiguration_RepositoryFilter AWS CloudFormation Resource (AWS::ECR::ReplicationConfiguration.RepositoryFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html
+type ReplicationConfiguration_RepositoryFilter struct {
+
+ // Filter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html#cfn-ecr-replicationconfiguration-repositoryfilter-filter
+ Filter *types.Value `json:"Filter,omitempty"`
+
+ // FilterType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-replicationconfiguration-repositoryfilter.html#cfn-ecr-replicationconfiguration-repositoryfilter-filtertype
+ FilterType *types.Value `json:"FilterType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationConfiguration_RepositoryFilter) AWSCloudFormationType() string {
+ return "AWS::ECR::ReplicationConfiguration.RepositoryFilter"
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-repository.go b/goformation/cloudformation/ecr/aws-ecr-repository.go
new file mode 100644
index 0000000000..41c1677c22
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-repository.go
@@ -0,0 +1,139 @@
+package ecr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository AWS CloudFormation Resource (AWS::ECR::Repository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html
+type Repository struct {
+
+ // EncryptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-encryptionconfiguration
+ EncryptionConfiguration *Repository_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"`
+
+ // ImageScanningConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-imagescanningconfiguration
+ ImageScanningConfiguration *Repository_ImageScanningConfiguration `json:"ImageScanningConfiguration,omitempty"`
+
+ // ImageTagMutability AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-imagetagmutability
+ ImageTagMutability *types.Value `json:"ImageTagMutability,omitempty"`
+
+ // LifecyclePolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-lifecyclepolicy
+ LifecyclePolicy *Repository_LifecyclePolicy `json:"LifecyclePolicy,omitempty"`
+
+ // RepositoryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-repositoryname
+ RepositoryName *types.Value `json:"RepositoryName,omitempty"`
+
+ // RepositoryPolicyText AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-repositorypolicytext
+ RepositoryPolicyText interface{} `json:"RepositoryPolicyText,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecr-repository.html#cfn-ecr-repository-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository) AWSCloudFormationType() string {
+ return "AWS::ECR::Repository"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Repository) MarshalJSON() ([]byte, error) {
+ type Properties Repository
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Repository) UnmarshalJSON(b []byte) error {
+ type Properties Repository
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Repository(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-repository_encryptionconfiguration.go b/goformation/cloudformation/ecr/aws-ecr-repository_encryptionconfiguration.go
new file mode 100644
index 0000000000..caa39100a9
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-repository_encryptionconfiguration.go
@@ -0,0 +1,42 @@
+package ecr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository_EncryptionConfiguration AWS CloudFormation Resource (AWS::ECR::Repository.EncryptionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-encryptionconfiguration.html
+type Repository_EncryptionConfiguration struct {
+
+ // EncryptionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-encryptionconfiguration.html#cfn-ecr-repository-encryptionconfiguration-encryptiontype
+ EncryptionType *types.Value `json:"EncryptionType,omitempty"`
+
+ // KmsKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-encryptionconfiguration.html#cfn-ecr-repository-encryptionconfiguration-kmskey
+ KmsKey *types.Value `json:"KmsKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository_EncryptionConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECR::Repository.EncryptionConfiguration"
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-repository_imagescanningconfiguration.go b/goformation/cloudformation/ecr/aws-ecr-repository_imagescanningconfiguration.go
new file mode 100644
index 0000000000..d59afd0db3
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-repository_imagescanningconfiguration.go
@@ -0,0 +1,37 @@
+package ecr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository_ImageScanningConfiguration AWS CloudFormation Resource (AWS::ECR::Repository.ImageScanningConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-imagescanningconfiguration.html
+type Repository_ImageScanningConfiguration struct {
+
+ // ScanOnPush AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-imagescanningconfiguration.html#cfn-ecr-repository-imagescanningconfiguration-scanonpush
+ ScanOnPush *types.Value `json:"ScanOnPush,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository_ImageScanningConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECR::Repository.ImageScanningConfiguration"
+}
diff --git a/goformation/cloudformation/ecr/aws-ecr-repository_lifecyclepolicy.go b/goformation/cloudformation/ecr/aws-ecr-repository_lifecyclepolicy.go
new file mode 100644
index 0000000000..d18ccdad99
--- /dev/null
+++ b/goformation/cloudformation/ecr/aws-ecr-repository_lifecyclepolicy.go
@@ -0,0 +1,42 @@
+package ecr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Repository_LifecyclePolicy AWS CloudFormation Resource (AWS::ECR::Repository.LifecyclePolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html
+type Repository_LifecyclePolicy struct {
+
+ // LifecyclePolicyText AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html#cfn-ecr-repository-lifecyclepolicy-lifecyclepolicytext
+ LifecyclePolicyText *types.Value `json:"LifecyclePolicyText,omitempty"`
+
+ // RegistryId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecr-repository-lifecyclepolicy.html#cfn-ecr-repository-lifecyclepolicy-registryid
+ RegistryId *types.Value `json:"RegistryId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Repository_LifecyclePolicy) AWSCloudFormationType() string {
+ return "AWS::ECR::Repository.LifecyclePolicy"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-capacityprovider.go b/goformation/cloudformation/ecs/aws-ecs-capacityprovider.go
new file mode 100644
index 0000000000..5fcbc8aa90
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-capacityprovider.go
@@ -0,0 +1,119 @@
+package ecs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CapacityProvider AWS CloudFormation Resource (AWS::ECS::CapacityProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html
+type CapacityProvider struct {
+
+ // AutoScalingGroupProvider AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#cfn-ecs-capacityprovider-autoscalinggroupprovider
+ AutoScalingGroupProvider *CapacityProvider_AutoScalingGroupProvider `json:"AutoScalingGroupProvider,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#cfn-ecs-capacityprovider-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html#cfn-ecs-capacityprovider-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CapacityProvider) AWSCloudFormationType() string {
+ return "AWS::ECS::CapacityProvider"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CapacityProvider) MarshalJSON() ([]byte, error) {
+ type Properties CapacityProvider
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CapacityProvider) UnmarshalJSON(b []byte) error {
+ type Properties CapacityProvider
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CapacityProvider(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-capacityprovider_autoscalinggroupprovider.go b/goformation/cloudformation/ecs/aws-ecs-capacityprovider_autoscalinggroupprovider.go
new file mode 100644
index 0000000000..c7c3c15bed
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-capacityprovider_autoscalinggroupprovider.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CapacityProvider_AutoScalingGroupProvider AWS CloudFormation Resource (AWS::ECS::CapacityProvider.AutoScalingGroupProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html
+type CapacityProvider_AutoScalingGroupProvider struct {
+
+ // AutoScalingGroupArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html#cfn-ecs-capacityprovider-autoscalinggroupprovider-autoscalinggrouparn
+ AutoScalingGroupArn *types.Value `json:"AutoScalingGroupArn,omitempty"`
+
+ // ManagedScaling AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html#cfn-ecs-capacityprovider-autoscalinggroupprovider-managedscaling
+ ManagedScaling *CapacityProvider_ManagedScaling `json:"ManagedScaling,omitempty"`
+
+ // ManagedTerminationProtection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html#cfn-ecs-capacityprovider-autoscalinggroupprovider-managedterminationprotection
+ ManagedTerminationProtection *types.Value `json:"ManagedTerminationProtection,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CapacityProvider_AutoScalingGroupProvider) AWSCloudFormationType() string {
+ return "AWS::ECS::CapacityProvider.AutoScalingGroupProvider"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-capacityprovider_managedscaling.go b/goformation/cloudformation/ecs/aws-ecs-capacityprovider_managedscaling.go
new file mode 100644
index 0000000000..6fc8f1b80e
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-capacityprovider_managedscaling.go
@@ -0,0 +1,57 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CapacityProvider_ManagedScaling AWS CloudFormation Resource (AWS::ECS::CapacityProvider.ManagedScaling)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html
+type CapacityProvider_ManagedScaling struct {
+
+ // InstanceWarmupPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-instancewarmupperiod
+ InstanceWarmupPeriod *types.Value `json:"InstanceWarmupPeriod,omitempty"`
+
+ // MaximumScalingStepSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-maximumscalingstepsize
+ MaximumScalingStepSize *types.Value `json:"MaximumScalingStepSize,omitempty"`
+
+ // MinimumScalingStepSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-minimumscalingstepsize
+ MinimumScalingStepSize *types.Value `json:"MinimumScalingStepSize,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // TargetCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-targetcapacity
+ TargetCapacity *types.Value `json:"TargetCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CapacityProvider_ManagedScaling) AWSCloudFormationType() string {
+ return "AWS::ECS::CapacityProvider.ManagedScaling"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-cluster.go b/goformation/cloudformation/ecs/aws-ecs-cluster.go
new file mode 100644
index 0000000000..04be9676fd
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-cluster.go
@@ -0,0 +1,134 @@
+package ecs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster AWS CloudFormation Resource (AWS::ECS::Cluster)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html
+type Cluster struct {
+
+ // CapacityProviders AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-capacityproviders
+ CapacityProviders *types.Value `json:"CapacityProviders,omitempty"`
+
+ // ClusterName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-clustername
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ // ClusterSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-clustersettings
+ ClusterSettings []Cluster_ClusterSettings `json:"ClusterSettings,omitempty"`
+
+ // Configuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-configuration
+ Configuration *Cluster_ClusterConfiguration `json:"Configuration,omitempty"`
+
+ // DefaultCapacityProviderStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-defaultcapacityproviderstrategy
+ DefaultCapacityProviderStrategy []Cluster_CapacityProviderStrategyItem `json:"DefaultCapacityProviderStrategy,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html#cfn-ecs-cluster-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster) AWSCloudFormationType() string {
+ return "AWS::ECS::Cluster"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Cluster) MarshalJSON() ([]byte, error) {
+ type Properties Cluster
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Cluster) UnmarshalJSON(b []byte) error {
+ type Properties Cluster
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Cluster(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-cluster_capacityproviderstrategyitem.go b/goformation/cloudformation/ecs/aws-ecs-cluster_capacityproviderstrategyitem.go
new file mode 100644
index 0000000000..a7d2bbfb0f
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-cluster_capacityproviderstrategyitem.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_CapacityProviderStrategyItem AWS CloudFormation Resource (AWS::ECS::Cluster.CapacityProviderStrategyItem)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html
+type Cluster_CapacityProviderStrategyItem struct {
+
+ // Base AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-base
+ Base *types.Value `json:"Base,omitempty"`
+
+ // CapacityProvider AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-capacityprovider
+ CapacityProvider *types.Value `json:"CapacityProvider,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html#cfn-ecs-cluster-capacityproviderstrategyitem-weight
+ Weight *types.Value `json:"Weight,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_CapacityProviderStrategyItem) AWSCloudFormationType() string {
+ return "AWS::ECS::Cluster.CapacityProviderStrategyItem"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-cluster_clusterconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-cluster_clusterconfiguration.go
new file mode 100644
index 0000000000..cad99a0be2
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-cluster_clusterconfiguration.go
@@ -0,0 +1,35 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ClusterConfiguration AWS CloudFormation Resource (AWS::ECS::Cluster.ClusterConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html
+type Cluster_ClusterConfiguration struct {
+
+ // ExecuteCommandConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html#cfn-ecs-cluster-clusterconfiguration-executecommandconfiguration
+ ExecuteCommandConfiguration *Cluster_ExecuteCommandConfiguration `json:"ExecuteCommandConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ClusterConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::Cluster.ClusterConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-cluster_clustersettings.go b/goformation/cloudformation/ecs/aws-ecs-cluster_clustersettings.go
new file mode 100644
index 0000000000..9cf4d39f3f
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-cluster_clustersettings.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ClusterSettings AWS CloudFormation Resource (AWS::ECS::Cluster.ClusterSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html
+type Cluster_ClusterSettings struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html#cfn-ecs-cluster-clustersettings-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html#cfn-ecs-cluster-clustersettings-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ClusterSettings) AWSCloudFormationType() string {
+ return "AWS::ECS::Cluster.ClusterSettings"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-cluster_executecommandconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-cluster_executecommandconfiguration.go
new file mode 100644
index 0000000000..bbec2cfe39
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-cluster_executecommandconfiguration.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ExecuteCommandConfiguration AWS CloudFormation Resource (AWS::ECS::Cluster.ExecuteCommandConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html
+type Cluster_ExecuteCommandConfiguration struct {
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // LogConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-logconfiguration
+ LogConfiguration *Cluster_ExecuteCommandLogConfiguration `json:"LogConfiguration,omitempty"`
+
+ // Logging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html#cfn-ecs-cluster-executecommandconfiguration-logging
+ Logging *types.Value `json:"Logging,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ExecuteCommandConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::Cluster.ExecuteCommandConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-cluster_executecommandlogconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-cluster_executecommandlogconfiguration.go
new file mode 100644
index 0000000000..61035b0104
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-cluster_executecommandlogconfiguration.go
@@ -0,0 +1,57 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ExecuteCommandLogConfiguration AWS CloudFormation Resource (AWS::ECS::Cluster.ExecuteCommandLogConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html
+type Cluster_ExecuteCommandLogConfiguration struct {
+
+ // CloudWatchEncryptionEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-cloudwatchencryptionenabled
+ CloudWatchEncryptionEnabled *types.Value `json:"CloudWatchEncryptionEnabled,omitempty"`
+
+ // CloudWatchLogGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-cloudwatchloggroupname
+ CloudWatchLogGroupName *types.Value `json:"CloudWatchLogGroupName,omitempty"`
+
+ // S3BucketName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3bucketname
+ S3BucketName *types.Value `json:"S3BucketName,omitempty"`
+
+ // S3EncryptionEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3encryptionenabled
+ S3EncryptionEnabled *types.Value `json:"S3EncryptionEnabled,omitempty"`
+
+ // S3KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html#cfn-ecs-cluster-executecommandlogconfiguration-s3keyprefix
+ S3KeyPrefix *types.Value `json:"S3KeyPrefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ExecuteCommandLogConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::Cluster.ExecuteCommandLogConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-clustercapacityproviderassociations.go b/goformation/cloudformation/ecs/aws-ecs-clustercapacityproviderassociations.go
new file mode 100644
index 0000000000..d952d47eff
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-clustercapacityproviderassociations.go
@@ -0,0 +1,118 @@
+package ecs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClusterCapacityProviderAssociations AWS CloudFormation Resource (AWS::ECS::ClusterCapacityProviderAssociations)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html
+type ClusterCapacityProviderAssociations struct {
+
+ // CapacityProviders AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html#cfn-ecs-clustercapacityproviderassociations-capacityproviders
+ CapacityProviders *types.Value `json:"CapacityProviders,omitempty"`
+
+ // Cluster AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html#cfn-ecs-clustercapacityproviderassociations-cluster
+ Cluster *types.Value `json:"Cluster,omitempty"`
+
+ // DefaultCapacityProviderStrategy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html#cfn-ecs-clustercapacityproviderassociations-defaultcapacityproviderstrategy
+ DefaultCapacityProviderStrategy []ClusterCapacityProviderAssociations_CapacityProviderStrategy `json:"DefaultCapacityProviderStrategy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClusterCapacityProviderAssociations) AWSCloudFormationType() string {
+ return "AWS::ECS::ClusterCapacityProviderAssociations"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ClusterCapacityProviderAssociations) MarshalJSON() ([]byte, error) {
+ type Properties ClusterCapacityProviderAssociations
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ClusterCapacityProviderAssociations) UnmarshalJSON(b []byte) error {
+ type Properties ClusterCapacityProviderAssociations
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ClusterCapacityProviderAssociations(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-clustercapacityproviderassociations_capacityproviderstrategy.go b/goformation/cloudformation/ecs/aws-ecs-clustercapacityproviderassociations_capacityproviderstrategy.go
new file mode 100644
index 0000000000..d0e58f4094
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-clustercapacityproviderassociations_capacityproviderstrategy.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ClusterCapacityProviderAssociations_CapacityProviderStrategy AWS CloudFormation Resource (AWS::ECS::ClusterCapacityProviderAssociations.CapacityProviderStrategy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html
+type ClusterCapacityProviderAssociations_CapacityProviderStrategy struct {
+
+ // Base AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html#cfn-ecs-clustercapacityproviderassociations-capacityproviderstrategy-base
+ Base *types.Value `json:"Base,omitempty"`
+
+ // CapacityProvider AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html#cfn-ecs-clustercapacityproviderassociations-capacityproviderstrategy-capacityprovider
+ CapacityProvider *types.Value `json:"CapacityProvider,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html#cfn-ecs-clustercapacityproviderassociations-capacityproviderstrategy-weight
+ Weight *types.Value `json:"Weight,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ClusterCapacityProviderAssociations_CapacityProviderStrategy) AWSCloudFormationType() string {
+ return "AWS::ECS::ClusterCapacityProviderAssociations.CapacityProviderStrategy"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-primarytaskset.go b/goformation/cloudformation/ecs/aws-ecs-primarytaskset.go
new file mode 100644
index 0000000000..700554eb26
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-primarytaskset.go
@@ -0,0 +1,118 @@
+package ecs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PrimaryTaskSet AWS CloudFormation Resource (AWS::ECS::PrimaryTaskSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html
+type PrimaryTaskSet struct {
+
+ // Cluster AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html#cfn-ecs-primarytaskset-cluster
+ Cluster *types.Value `json:"Cluster,omitempty"`
+
+ // Service AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html#cfn-ecs-primarytaskset-service
+ Service *types.Value `json:"Service,omitempty"`
+
+ // TaskSetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html#cfn-ecs-primarytaskset-tasksetid
+ TaskSetId *types.Value `json:"TaskSetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PrimaryTaskSet) AWSCloudFormationType() string {
+ return "AWS::ECS::PrimaryTaskSet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PrimaryTaskSet) MarshalJSON() ([]byte, error) {
+ type Properties PrimaryTaskSet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PrimaryTaskSet) UnmarshalJSON(b []byte) error {
+ type Properties PrimaryTaskSet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PrimaryTaskSet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service.go b/goformation/cloudformation/ecs/aws-ecs-service.go
new file mode 100644
index 0000000000..37df18935d
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service.go
@@ -0,0 +1,209 @@
+package ecs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service AWS CloudFormation Resource (AWS::ECS::Service)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html
+type Service struct {
+
+ // CapacityProviderStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-capacityproviderstrategy
+ CapacityProviderStrategy []Service_CapacityProviderStrategyItem `json:"CapacityProviderStrategy,omitempty"`
+
+ // Cluster AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-cluster
+ Cluster *types.Value `json:"Cluster,omitempty"`
+
+ // DeploymentConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-deploymentconfiguration
+ DeploymentConfiguration *Service_DeploymentConfiguration `json:"DeploymentConfiguration,omitempty"`
+
+ // DeploymentController AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-deploymentcontroller
+ DeploymentController *Service_DeploymentController `json:"DeploymentController,omitempty"`
+
+ // DesiredCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-desiredcount
+ DesiredCount *types.Value `json:"DesiredCount,omitempty"`
+
+ // EnableECSManagedTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-enableecsmanagedtags
+ EnableECSManagedTags *types.Value `json:"EnableECSManagedTags,omitempty"`
+
+ // EnableExecuteCommand AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-enableexecutecommand
+ EnableExecuteCommand *types.Value `json:"EnableExecuteCommand,omitempty"`
+
+ // HealthCheckGracePeriodSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-healthcheckgraceperiodseconds
+ HealthCheckGracePeriodSeconds *types.Value `json:"HealthCheckGracePeriodSeconds,omitempty"`
+
+ // LaunchType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-launchtype
+ LaunchType *types.Value `json:"LaunchType,omitempty"`
+
+ // LoadBalancers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-loadbalancers
+ LoadBalancers []Service_LoadBalancer `json:"LoadBalancers,omitempty"`
+
+ // NetworkConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-networkconfiguration
+ NetworkConfiguration *Service_NetworkConfiguration `json:"NetworkConfiguration,omitempty"`
+
+ // PlacementConstraints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-placementconstraints
+ PlacementConstraints []Service_PlacementConstraint `json:"PlacementConstraints,omitempty"`
+
+ // PlacementStrategies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-placementstrategies
+ PlacementStrategies []Service_PlacementStrategy `json:"PlacementStrategies,omitempty"`
+
+ // PlatformVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-platformversion
+ PlatformVersion *types.Value `json:"PlatformVersion,omitempty"`
+
+ // PropagateTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-propagatetags
+ PropagateTags *types.Value `json:"PropagateTags,omitempty"`
+
+ // Role AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-role
+ Role *types.Value `json:"Role,omitempty"`
+
+ // SchedulingStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-schedulingstrategy
+ SchedulingStrategy *types.Value `json:"SchedulingStrategy,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // ServiceRegistries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-serviceregistries
+ ServiceRegistries []Service_ServiceRegistry `json:"ServiceRegistries,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TaskDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html#cfn-ecs-service-taskdefinition
+ TaskDefinition *types.Value `json:"TaskDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service) AWSCloudFormationType() string {
+ return "AWS::ECS::Service"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Service) MarshalJSON() ([]byte, error) {
+ type Properties Service
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Service) UnmarshalJSON(b []byte) error {
+ type Properties Service
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Service(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_awsvpcconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-service_awsvpcconfiguration.go
new file mode 100644
index 0000000000..abab8c41a6
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_awsvpcconfiguration.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_AwsVpcConfiguration AWS CloudFormation Resource (AWS::ECS::Service.AwsVpcConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html
+type Service_AwsVpcConfiguration struct {
+
+ // AssignPublicIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-assignpublicip
+ AssignPublicIp *types.Value `json:"AssignPublicIp,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html#cfn-ecs-service-awsvpcconfiguration-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_AwsVpcConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.AwsVpcConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_capacityproviderstrategyitem.go b/goformation/cloudformation/ecs/aws-ecs-service_capacityproviderstrategyitem.go
new file mode 100644
index 0000000000..3ed6fbebaa
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_capacityproviderstrategyitem.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_CapacityProviderStrategyItem AWS CloudFormation Resource (AWS::ECS::Service.CapacityProviderStrategyItem)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html
+type Service_CapacityProviderStrategyItem struct {
+
+ // Base AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html#cfn-ecs-service-capacityproviderstrategyitem-base
+ Base *types.Value `json:"Base,omitempty"`
+
+ // CapacityProvider AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html#cfn-ecs-service-capacityproviderstrategyitem-capacityprovider
+ CapacityProvider *types.Value `json:"CapacityProvider,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html#cfn-ecs-service-capacityproviderstrategyitem-weight
+ Weight *types.Value `json:"Weight,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_CapacityProviderStrategyItem) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.CapacityProviderStrategyItem"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_deploymentcircuitbreaker.go b/goformation/cloudformation/ecs/aws-ecs-service_deploymentcircuitbreaker.go
new file mode 100644
index 0000000000..91c3215439
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_deploymentcircuitbreaker.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_DeploymentCircuitBreaker AWS CloudFormation Resource (AWS::ECS::Service.DeploymentCircuitBreaker)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcircuitbreaker.html
+type Service_DeploymentCircuitBreaker struct {
+
+ // Enable AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcircuitbreaker.html#cfn-ecs-service-deploymentcircuitbreaker-enable
+ Enable *types.Value `json:"Enable"`
+
+ // Rollback AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcircuitbreaker.html#cfn-ecs-service-deploymentcircuitbreaker-rollback
+ Rollback *types.Value `json:"Rollback"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_DeploymentCircuitBreaker) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.DeploymentCircuitBreaker"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_deploymentconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-service_deploymentconfiguration.go
new file mode 100644
index 0000000000..a3cf6a5128
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_deploymentconfiguration.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_DeploymentConfiguration AWS CloudFormation Resource (AWS::ECS::Service.DeploymentConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html
+type Service_DeploymentConfiguration struct {
+
+ // DeploymentCircuitBreaker AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html#cfn-ecs-service-deploymentconfiguration-deploymentcircuitbreaker
+ DeploymentCircuitBreaker *Service_DeploymentCircuitBreaker `json:"DeploymentCircuitBreaker,omitempty"`
+
+ // MaximumPercent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html#cfn-ecs-service-deploymentconfiguration-maximumpercent
+ MaximumPercent *types.Value `json:"MaximumPercent,omitempty"`
+
+ // MinimumHealthyPercent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html#cfn-ecs-service-deploymentconfiguration-minimumhealthypercent
+ MinimumHealthyPercent *types.Value `json:"MinimumHealthyPercent,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_DeploymentConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.DeploymentConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_deploymentcontroller.go b/goformation/cloudformation/ecs/aws-ecs-service_deploymentcontroller.go
new file mode 100644
index 0000000000..85c8622096
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_deploymentcontroller.go
@@ -0,0 +1,37 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_DeploymentController AWS CloudFormation Resource (AWS::ECS::Service.DeploymentController)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcontroller.html
+type Service_DeploymentController struct {
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcontroller.html#cfn-ecs-service-deploymentcontroller-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_DeploymentController) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.DeploymentController"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_loadbalancer.go b/goformation/cloudformation/ecs/aws-ecs-service_loadbalancer.go
new file mode 100644
index 0000000000..49d4a76dcf
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_loadbalancer.go
@@ -0,0 +1,52 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_LoadBalancer AWS CloudFormation Resource (AWS::ECS::Service.LoadBalancer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html
+type Service_LoadBalancer struct {
+
+ // ContainerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html#cfn-ecs-service-loadbalancer-containername
+ ContainerName *types.Value `json:"ContainerName,omitempty"`
+
+ // ContainerPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html#cfn-ecs-service-loadbalancer-containerport
+ ContainerPort *types.Value `json:"ContainerPort,omitempty"`
+
+ // LoadBalancerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html#cfn-ecs-service-loadbalancer-loadbalancername
+ LoadBalancerName *types.Value `json:"LoadBalancerName,omitempty"`
+
+ // TargetGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html#cfn-ecs-service-loadbalancer-targetgrouparn
+ TargetGroupArn *types.Value `json:"TargetGroupArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_LoadBalancer) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.LoadBalancer"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_networkconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-service_networkconfiguration.go
new file mode 100644
index 0000000000..d7aaf5dbfb
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_networkconfiguration.go
@@ -0,0 +1,35 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_NetworkConfiguration AWS CloudFormation Resource (AWS::ECS::Service.NetworkConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html
+type Service_NetworkConfiguration struct {
+
+ // AwsvpcConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html#cfn-ecs-service-networkconfiguration-awsvpcconfiguration
+ AwsvpcConfiguration *Service_AwsVpcConfiguration `json:"AwsvpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_NetworkConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.NetworkConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_placementconstraint.go b/goformation/cloudformation/ecs/aws-ecs-service_placementconstraint.go
new file mode 100644
index 0000000000..0ffd5526d3
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_placementconstraint.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_PlacementConstraint AWS CloudFormation Resource (AWS::ECS::Service.PlacementConstraint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html
+type Service_PlacementConstraint struct {
+
+ // Expression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html#cfn-ecs-service-placementconstraint-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html#cfn-ecs-service-placementconstraint-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_PlacementConstraint) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.PlacementConstraint"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_placementstrategy.go b/goformation/cloudformation/ecs/aws-ecs-service_placementstrategy.go
new file mode 100644
index 0000000000..d37c36f7fc
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_placementstrategy.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_PlacementStrategy AWS CloudFormation Resource (AWS::ECS::Service.PlacementStrategy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html
+type Service_PlacementStrategy struct {
+
+ // Field AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html#cfn-ecs-service-placementstrategy-field
+ Field *types.Value `json:"Field,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html#cfn-ecs-service-placementstrategy-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_PlacementStrategy) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.PlacementStrategy"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-service_serviceregistry.go b/goformation/cloudformation/ecs/aws-ecs-service_serviceregistry.go
new file mode 100644
index 0000000000..1b10abb401
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-service_serviceregistry.go
@@ -0,0 +1,52 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Service_ServiceRegistry AWS CloudFormation Resource (AWS::ECS::Service.ServiceRegistry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html
+type Service_ServiceRegistry struct {
+
+ // ContainerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html#cfn-ecs-service-serviceregistry-containername
+ ContainerName *types.Value `json:"ContainerName,omitempty"`
+
+ // ContainerPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html#cfn-ecs-service-serviceregistry-containerport
+ ContainerPort *types.Value `json:"ContainerPort,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html#cfn-ecs-service-serviceregistry-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // RegistryArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html#cfn-ecs-service-serviceregistry-registryarn
+ RegistryArn *types.Value `json:"RegistryArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Service_ServiceRegistry) AWSCloudFormationType() string {
+ return "AWS::ECS::Service.ServiceRegistry"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition.go
new file mode 100644
index 0000000000..c776f355a2
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition.go
@@ -0,0 +1,189 @@
+package ecs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition AWS CloudFormation Resource (AWS::ECS::TaskDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html
+type TaskDefinition struct {
+
+ // ContainerDefinitions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-containerdefinitions
+ ContainerDefinitions []TaskDefinition_ContainerDefinition `json:"ContainerDefinitions,omitempty"`
+
+ // Cpu AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-cpu
+ Cpu *types.Value `json:"Cpu,omitempty"`
+
+ // EphemeralStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-ephemeralstorage
+ EphemeralStorage *TaskDefinition_EphemeralStorage `json:"EphemeralStorage,omitempty"`
+
+ // ExecutionRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-executionrolearn
+ ExecutionRoleArn *types.Value `json:"ExecutionRoleArn,omitempty"`
+
+ // Family AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-family
+ Family *types.Value `json:"Family,omitempty"`
+
+ // InferenceAccelerators AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-inferenceaccelerators
+ InferenceAccelerators []TaskDefinition_InferenceAccelerator `json:"InferenceAccelerators,omitempty"`
+
+ // IpcMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-ipcmode
+ IpcMode *types.Value `json:"IpcMode,omitempty"`
+
+ // Memory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-memory
+ Memory *types.Value `json:"Memory,omitempty"`
+
+ // NetworkMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-networkmode
+ NetworkMode *types.Value `json:"NetworkMode,omitempty"`
+
+ // PidMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-pidmode
+ PidMode *types.Value `json:"PidMode,omitempty"`
+
+ // PlacementConstraints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-placementconstraints
+ PlacementConstraints []TaskDefinition_TaskDefinitionPlacementConstraint `json:"PlacementConstraints,omitempty"`
+
+ // ProxyConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-proxyconfiguration
+ ProxyConfiguration *TaskDefinition_ProxyConfiguration `json:"ProxyConfiguration,omitempty"`
+
+ // RequiresCompatibilities AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-requirescompatibilities
+ RequiresCompatibilities *types.Value `json:"RequiresCompatibilities,omitempty"`
+
+ // RuntimePlatform AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-runtimeplatform
+ RuntimePlatform *TaskDefinition_RuntimePlatform `json:"RuntimePlatform,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TaskRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-taskrolearn
+ TaskRoleArn *types.Value `json:"TaskRoleArn,omitempty"`
+
+ // Volumes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html#cfn-ecs-taskdefinition-volumes
+ Volumes []TaskDefinition_Volume `json:"Volumes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TaskDefinition) MarshalJSON() ([]byte, error) {
+ type Properties TaskDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TaskDefinition) UnmarshalJSON(b []byte) error {
+ type Properties TaskDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TaskDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_authorizationconfig.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_authorizationconfig.go
new file mode 100644
index 0000000000..f33c636751
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_authorizationconfig.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_AuthorizationConfig AWS CloudFormation Resource (AWS::ECS::TaskDefinition.AuthorizationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html
+type TaskDefinition_AuthorizationConfig struct {
+
+ // AccessPointId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html#cfn-ecs-taskdefinition-authorizationconfig-accesspointid
+ AccessPointId *types.Value `json:"AccessPointId,omitempty"`
+
+ // IAM AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html#cfn-ecs-taskdefinition-authorizationconfig-iam
+ IAM *types.Value `json:"IAM,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_AuthorizationConfig) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.AuthorizationConfig"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_containerdefinition.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_containerdefinition.go
new file mode 100644
index 0000000000..f333c8f615
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_containerdefinition.go
@@ -0,0 +1,227 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_ContainerDefinition AWS CloudFormation Resource (AWS::ECS::TaskDefinition.ContainerDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html
+type TaskDefinition_ContainerDefinition struct {
+
+ // Command AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-command
+ Command *types.Value `json:"Command,omitempty"`
+
+ // Cpu AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-cpu
+ Cpu *types.Value `json:"Cpu,omitempty"`
+
+ // DependsOn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dependson
+ DependsOnProp []TaskDefinition_ContainerDependency `json:"DependsOn,omitempty"`
+
+ // DisableNetworking AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-disablenetworking
+ DisableNetworking *types.Value `json:"DisableNetworking,omitempty"`
+
+ // DnsSearchDomains AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dnssearchdomains
+ DnsSearchDomains *types.Value `json:"DnsSearchDomains,omitempty"`
+
+ // DnsServers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dnsservers
+ DnsServers *types.Value `json:"DnsServers,omitempty"`
+
+ // DockerLabels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dockerlabels
+ DockerLabels map[string]*types.Value `json:"DockerLabels,omitempty"`
+
+ // DockerSecurityOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-dockersecurityoptions
+ DockerSecurityOptions *types.Value `json:"DockerSecurityOptions,omitempty"`
+
+ // EntryPoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-entrypoint
+ EntryPoint *types.Value `json:"EntryPoint,omitempty"`
+
+ // Environment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-environment
+ Environment []TaskDefinition_KeyValuePair `json:"Environment,omitempty"`
+
+ // EnvironmentFiles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-environmentfiles
+ EnvironmentFiles []TaskDefinition_EnvironmentFile `json:"EnvironmentFiles,omitempty"`
+
+ // Essential AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-essential
+ Essential *types.Value `json:"Essential,omitempty"`
+
+ // ExtraHosts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-extrahosts
+ ExtraHosts []TaskDefinition_HostEntry `json:"ExtraHosts,omitempty"`
+
+ // FirelensConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-firelensconfiguration
+ FirelensConfiguration *TaskDefinition_FirelensConfiguration `json:"FirelensConfiguration,omitempty"`
+
+ // HealthCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-healthcheck
+ HealthCheck *TaskDefinition_HealthCheck `json:"HealthCheck,omitempty"`
+
+ // Hostname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-hostname
+ Hostname *types.Value `json:"Hostname,omitempty"`
+
+ // Image AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-image
+ Image *types.Value `json:"Image,omitempty"`
+
+ // Interactive AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-interactive
+ Interactive *types.Value `json:"Interactive,omitempty"`
+
+ // Links AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-links
+ Links *types.Value `json:"Links,omitempty"`
+
+ // LinuxParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-linuxparameters
+ LinuxParameters *TaskDefinition_LinuxParameters `json:"LinuxParameters,omitempty"`
+
+ // LogConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration
+ LogConfiguration *TaskDefinition_LogConfiguration `json:"LogConfiguration,omitempty"`
+
+ // Memory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-memory
+ Memory *types.Value `json:"Memory,omitempty"`
+
+ // MemoryReservation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-memoryreservation
+ MemoryReservation *types.Value `json:"MemoryReservation,omitempty"`
+
+ // MountPoints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints
+ MountPoints []TaskDefinition_MountPoint `json:"MountPoints,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // PortMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-portmappings
+ PortMappings []TaskDefinition_PortMapping `json:"PortMappings,omitempty"`
+
+ // Privileged AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-privileged
+ Privileged *types.Value `json:"Privileged,omitempty"`
+
+ // PseudoTerminal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-pseudoterminal
+ PseudoTerminal *types.Value `json:"PseudoTerminal,omitempty"`
+
+ // ReadonlyRootFilesystem AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-readonlyrootfilesystem
+ ReadonlyRootFilesystem *types.Value `json:"ReadonlyRootFilesystem,omitempty"`
+
+ // RepositoryCredentials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-repositorycredentials
+ RepositoryCredentials *TaskDefinition_RepositoryCredentials `json:"RepositoryCredentials,omitempty"`
+
+ // ResourceRequirements AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-resourcerequirements
+ ResourceRequirements []TaskDefinition_ResourceRequirement `json:"ResourceRequirements,omitempty"`
+
+ // Secrets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-secrets
+ Secrets []TaskDefinition_Secret `json:"Secrets,omitempty"`
+
+ // StartTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-starttimeout
+ StartTimeout *types.Value `json:"StartTimeout,omitempty"`
+
+ // StopTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-stoptimeout
+ StopTimeout *types.Value `json:"StopTimeout,omitempty"`
+
+ // SystemControls AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-systemcontrols
+ SystemControls []TaskDefinition_SystemControl `json:"SystemControls,omitempty"`
+
+ // Ulimits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-ulimits
+ Ulimits []TaskDefinition_Ulimit `json:"Ulimits,omitempty"`
+
+ // User AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-user
+ User *types.Value `json:"User,omitempty"`
+
+ // VolumesFrom AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom
+ VolumesFrom []TaskDefinition_VolumeFrom `json:"VolumesFrom,omitempty"`
+
+ // WorkingDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html#cfn-ecs-taskdefinition-containerdefinition-workingdirectory
+ WorkingDirectory *types.Value `json:"WorkingDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_ContainerDefinition) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.ContainerDefinition"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_containerdependency.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_containerdependency.go
new file mode 100644
index 0000000000..fccfa31a46
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_containerdependency.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_ContainerDependency AWS CloudFormation Resource (AWS::ECS::TaskDefinition.ContainerDependency)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html
+type TaskDefinition_ContainerDependency struct {
+
+ // Condition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html#cfn-ecs-taskdefinition-containerdependency-condition
+ Condition *types.Value `json:"Condition,omitempty"`
+
+ // ContainerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html#cfn-ecs-taskdefinition-containerdependency-containername
+ ContainerName *types.Value `json:"ContainerName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_ContainerDependency) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.ContainerDependency"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_device.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_device.go
new file mode 100644
index 0000000000..8d4e6f5ca6
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_device.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_Device AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Device)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html
+type TaskDefinition_Device struct {
+
+ // ContainerPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-containerpath
+ ContainerPath *types.Value `json:"ContainerPath,omitempty"`
+
+ // HostPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-hostpath
+ HostPath *types.Value `json:"HostPath,omitempty"`
+
+ // Permissions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html#cfn-ecs-taskdefinition-device-permissions
+ Permissions *types.Value `json:"Permissions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_Device) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.Device"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_dockervolumeconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_dockervolumeconfiguration.go
new file mode 100644
index 0000000000..2ebcb65545
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_dockervolumeconfiguration.go
@@ -0,0 +1,57 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_DockerVolumeConfiguration AWS CloudFormation Resource (AWS::ECS::TaskDefinition.DockerVolumeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html
+type TaskDefinition_DockerVolumeConfiguration struct {
+
+ // Autoprovision AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-autoprovision
+ Autoprovision *types.Value `json:"Autoprovision,omitempty"`
+
+ // Driver AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-driver
+ Driver *types.Value `json:"Driver,omitempty"`
+
+ // DriverOpts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-driveropts
+ DriverOpts map[string]*types.Value `json:"DriverOpts,omitempty"`
+
+ // Labels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-labels
+ Labels map[string]*types.Value `json:"Labels,omitempty"`
+
+ // Scope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html#cfn-ecs-taskdefinition-dockervolumeconfiguration-scope
+ Scope *types.Value `json:"Scope,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_DockerVolumeConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.DockerVolumeConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_efsvolumeconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_efsvolumeconfiguration.go
new file mode 100644
index 0000000000..5d1e80464b
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_efsvolumeconfiguration.go
@@ -0,0 +1,57 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_EFSVolumeConfiguration AWS CloudFormation Resource (AWS::ECS::TaskDefinition.EFSVolumeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html
+type TaskDefinition_EFSVolumeConfiguration struct {
+
+ // AuthorizationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-authorizationconfig
+ AuthorizationConfig interface{} `json:"AuthorizationConfig,omitempty"`
+
+ // FilesystemId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-filesystemid
+ FilesystemId *types.Value `json:"FilesystemId,omitempty"`
+
+ // RootDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-rootdirectory
+ RootDirectory *types.Value `json:"RootDirectory,omitempty"`
+
+ // TransitEncryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-transitencryption
+ TransitEncryption *types.Value `json:"TransitEncryption,omitempty"`
+
+ // TransitEncryptionPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html#cfn-ecs-taskdefinition-efsvolumeconfiguration-transitencryptionport
+ TransitEncryptionPort *types.Value `json:"TransitEncryptionPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_EFSVolumeConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.EFSVolumeConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_environmentfile.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_environmentfile.go
new file mode 100644
index 0000000000..e9a75d127b
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_environmentfile.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_EnvironmentFile AWS CloudFormation Resource (AWS::ECS::TaskDefinition.EnvironmentFile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-environmentfile.html
+type TaskDefinition_EnvironmentFile struct {
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-environmentfile.html#cfn-ecs-taskdefinition-environmentfile-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-environmentfile.html#cfn-ecs-taskdefinition-environmentfile-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_EnvironmentFile) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.EnvironmentFile"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_ephemeralstorage.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_ephemeralstorage.go
new file mode 100644
index 0000000000..d454aa8727
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_ephemeralstorage.go
@@ -0,0 +1,37 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_EphemeralStorage AWS CloudFormation Resource (AWS::ECS::TaskDefinition.EphemeralStorage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html
+type TaskDefinition_EphemeralStorage struct {
+
+ // SizeInGiB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html#cfn-ecs-taskdefinition-ephemeralstorage-sizeingib
+ SizeInGiB *types.Value `json:"SizeInGiB,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_EphemeralStorage) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.EphemeralStorage"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_firelensconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_firelensconfiguration.go
new file mode 100644
index 0000000000..d03353aa8b
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_firelensconfiguration.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_FirelensConfiguration AWS CloudFormation Resource (AWS::ECS::TaskDefinition.FirelensConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html
+type TaskDefinition_FirelensConfiguration struct {
+
+ // Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html#cfn-ecs-taskdefinition-firelensconfiguration-options
+ Options map[string]*types.Value `json:"Options,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html#cfn-ecs-taskdefinition-firelensconfiguration-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_FirelensConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.FirelensConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_healthcheck.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_healthcheck.go
new file mode 100644
index 0000000000..f8db91a21c
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_healthcheck.go
@@ -0,0 +1,57 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_HealthCheck AWS CloudFormation Resource (AWS::ECS::TaskDefinition.HealthCheck)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html
+type TaskDefinition_HealthCheck struct {
+
+ // Command AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-command
+ Command *types.Value `json:"Command,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // Retries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-retries
+ Retries *types.Value `json:"Retries,omitempty"`
+
+ // StartPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-startperiod
+ StartPeriod *types.Value `json:"StartPeriod,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html#cfn-ecs-taskdefinition-healthcheck-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_HealthCheck) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.HealthCheck"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_hostentry.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_hostentry.go
new file mode 100644
index 0000000000..1d9aa2b2bc
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_hostentry.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_HostEntry AWS CloudFormation Resource (AWS::ECS::TaskDefinition.HostEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html
+type TaskDefinition_HostEntry struct {
+
+ // Hostname AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html#cfn-ecs-taskdefinition-containerdefinition-hostentry-hostname
+ Hostname *types.Value `json:"Hostname,omitempty"`
+
+ // IpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html#cfn-ecs-taskdefinition-containerdefinition-hostentry-ipaddress
+ IpAddress *types.Value `json:"IpAddress,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_HostEntry) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.HostEntry"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_hostvolumeproperties.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_hostvolumeproperties.go
new file mode 100644
index 0000000000..5f734f3e9c
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_hostvolumeproperties.go
@@ -0,0 +1,37 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_HostVolumeProperties AWS CloudFormation Resource (AWS::ECS::TaskDefinition.HostVolumeProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html
+type TaskDefinition_HostVolumeProperties struct {
+
+ // SourcePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html#cfn-ecs-taskdefinition-volumes-host-sourcepath
+ SourcePath *types.Value `json:"SourcePath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_HostVolumeProperties) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.HostVolumeProperties"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_inferenceaccelerator.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_inferenceaccelerator.go
new file mode 100644
index 0000000000..3c84aa2a0a
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_inferenceaccelerator.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_InferenceAccelerator AWS CloudFormation Resource (AWS::ECS::TaskDefinition.InferenceAccelerator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html
+type TaskDefinition_InferenceAccelerator struct {
+
+ // DeviceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html#cfn-ecs-taskdefinition-inferenceaccelerator-devicename
+ DeviceName *types.Value `json:"DeviceName,omitempty"`
+
+ // DeviceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html#cfn-ecs-taskdefinition-inferenceaccelerator-devicetype
+ DeviceType *types.Value `json:"DeviceType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_InferenceAccelerator) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.InferenceAccelerator"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_kernelcapabilities.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_kernelcapabilities.go
new file mode 100644
index 0000000000..43197d5fa7
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_kernelcapabilities.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_KernelCapabilities AWS CloudFormation Resource (AWS::ECS::TaskDefinition.KernelCapabilities)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html
+type TaskDefinition_KernelCapabilities struct {
+
+ // Add AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html#cfn-ecs-taskdefinition-kernelcapabilities-add
+ Add *types.Value `json:"Add,omitempty"`
+
+ // Drop AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html#cfn-ecs-taskdefinition-kernelcapabilities-drop
+ Drop *types.Value `json:"Drop,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_KernelCapabilities) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.KernelCapabilities"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_keyvaluepair.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_keyvaluepair.go
new file mode 100644
index 0000000000..a6e62f0eca
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_keyvaluepair.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_KeyValuePair AWS CloudFormation Resource (AWS::ECS::TaskDefinition.KeyValuePair)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html
+type TaskDefinition_KeyValuePair struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html#cfn-ecs-taskdefinition-containerdefinition-environment-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html#cfn-ecs-taskdefinition-containerdefinition-environment-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_KeyValuePair) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.KeyValuePair"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_linuxparameters.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_linuxparameters.go
new file mode 100644
index 0000000000..1afe053189
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_linuxparameters.go
@@ -0,0 +1,67 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_LinuxParameters AWS CloudFormation Resource (AWS::ECS::TaskDefinition.LinuxParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html
+type TaskDefinition_LinuxParameters struct {
+
+ // Capabilities AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-capabilities
+ Capabilities *TaskDefinition_KernelCapabilities `json:"Capabilities,omitempty"`
+
+ // Devices AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-devices
+ Devices []TaskDefinition_Device `json:"Devices,omitempty"`
+
+ // InitProcessEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-initprocessenabled
+ InitProcessEnabled *types.Value `json:"InitProcessEnabled,omitempty"`
+
+ // MaxSwap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-maxswap
+ MaxSwap *types.Value `json:"MaxSwap,omitempty"`
+
+ // SharedMemorySize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-sharedmemorysize
+ SharedMemorySize *types.Value `json:"SharedMemorySize,omitempty"`
+
+ // Swappiness AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-swappiness
+ Swappiness *types.Value `json:"Swappiness,omitempty"`
+
+ // Tmpfs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html#cfn-ecs-taskdefinition-linuxparameters-tmpfs
+ Tmpfs []TaskDefinition_Tmpfs `json:"Tmpfs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_LinuxParameters) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.LinuxParameters"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_logconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_logconfiguration.go
new file mode 100644
index 0000000000..06843211e3
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_logconfiguration.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_LogConfiguration AWS CloudFormation Resource (AWS::ECS::TaskDefinition.LogConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html
+type TaskDefinition_LogConfiguration struct {
+
+ // LogDriver AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration-logdriver
+ LogDriver *types.Value `json:"LogDriver,omitempty"`
+
+ // Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-containerdefinition-logconfiguration-options
+ Options map[string]*types.Value `json:"Options,omitempty"`
+
+ // SecretOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html#cfn-ecs-taskdefinition-logconfiguration-secretoptions
+ SecretOptions []TaskDefinition_Secret `json:"SecretOptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_LogConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.LogConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_mountpoint.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_mountpoint.go
new file mode 100644
index 0000000000..4bee83d3ef
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_mountpoint.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_MountPoint AWS CloudFormation Resource (AWS::ECS::TaskDefinition.MountPoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html
+type TaskDefinition_MountPoint struct {
+
+ // ContainerPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-containerpath
+ ContainerPath *types.Value `json:"ContainerPath,omitempty"`
+
+ // ReadOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-readonly
+ ReadOnly *types.Value `json:"ReadOnly,omitempty"`
+
+ // SourceVolume AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html#cfn-ecs-taskdefinition-containerdefinition-mountpoints-sourcevolume
+ SourceVolume *types.Value `json:"SourceVolume,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_MountPoint) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.MountPoint"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_portmapping.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_portmapping.go
new file mode 100644
index 0000000000..d5944017a0
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_portmapping.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_PortMapping AWS CloudFormation Resource (AWS::ECS::TaskDefinition.PortMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html
+type TaskDefinition_PortMapping struct {
+
+ // ContainerPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-containerport
+ ContainerPort *types.Value `json:"ContainerPort,omitempty"`
+
+ // HostPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-readonly
+ HostPort *types.Value `json:"HostPort,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html#cfn-ecs-taskdefinition-containerdefinition-portmappings-sourcevolume
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_PortMapping) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.PortMapping"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_proxyconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_proxyconfiguration.go
new file mode 100644
index 0000000000..99111850aa
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_proxyconfiguration.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_ProxyConfiguration AWS CloudFormation Resource (AWS::ECS::TaskDefinition.ProxyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html
+type TaskDefinition_ProxyConfiguration struct {
+
+ // ContainerName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-containername
+ ContainerName *types.Value `json:"ContainerName,omitempty"`
+
+ // ProxyConfigurationProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-proxyconfigurationproperties
+ ProxyConfigurationProperties []TaskDefinition_KeyValuePair `json:"ProxyConfigurationProperties,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html#cfn-ecs-taskdefinition-proxyconfiguration-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_ProxyConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.ProxyConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_repositorycredentials.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_repositorycredentials.go
new file mode 100644
index 0000000000..d3e9b9d21b
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_repositorycredentials.go
@@ -0,0 +1,37 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_RepositoryCredentials AWS CloudFormation Resource (AWS::ECS::TaskDefinition.RepositoryCredentials)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html
+type TaskDefinition_RepositoryCredentials struct {
+
+ // CredentialsParameter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html#cfn-ecs-taskdefinition-repositorycredentials-credentialsparameter
+ CredentialsParameter *types.Value `json:"CredentialsParameter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_RepositoryCredentials) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.RepositoryCredentials"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_resourcerequirement.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_resourcerequirement.go
new file mode 100644
index 0000000000..2ff01978cf
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_resourcerequirement.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_ResourceRequirement AWS CloudFormation Resource (AWS::ECS::TaskDefinition.ResourceRequirement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html
+type TaskDefinition_ResourceRequirement struct {
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html#cfn-ecs-taskdefinition-resourcerequirement-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html#cfn-ecs-taskdefinition-resourcerequirement-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_ResourceRequirement) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.ResourceRequirement"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_runtimeplatform.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_runtimeplatform.go
new file mode 100644
index 0000000000..2e76535e88
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_runtimeplatform.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_RuntimePlatform AWS CloudFormation Resource (AWS::ECS::TaskDefinition.RuntimePlatform)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html
+type TaskDefinition_RuntimePlatform struct {
+
+ // CpuArchitecture AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html#cfn-ecs-taskdefinition-runtimeplatform-cpuarchitecture
+ CpuArchitecture *types.Value `json:"CpuArchitecture,omitempty"`
+
+ // OperatingSystemFamily AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-runtimeplatform.html#cfn-ecs-taskdefinition-runtimeplatform-operatingsystemfamily
+ OperatingSystemFamily *types.Value `json:"OperatingSystemFamily,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_RuntimePlatform) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.RuntimePlatform"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_secret.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_secret.go
new file mode 100644
index 0000000000..db4cc04d51
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_secret.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_Secret AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Secret)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html
+type TaskDefinition_Secret struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html#cfn-ecs-taskdefinition-secret-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ValueFrom AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html#cfn-ecs-taskdefinition-secret-valuefrom
+ ValueFrom *types.Value `json:"ValueFrom,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_Secret) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.Secret"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_systemcontrol.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_systemcontrol.go
new file mode 100644
index 0000000000..06e0c7a645
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_systemcontrol.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_SystemControl AWS CloudFormation Resource (AWS::ECS::TaskDefinition.SystemControl)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html
+type TaskDefinition_SystemControl struct {
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html#cfn-ecs-taskdefinition-systemcontrol-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html#cfn-ecs-taskdefinition-systemcontrol-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_SystemControl) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.SystemControl"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go
new file mode 100644
index 0000000000..efa884285b
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_taskdefinitionplacementconstraint.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_TaskDefinitionPlacementConstraint AWS CloudFormation Resource (AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html
+type TaskDefinition_TaskDefinitionPlacementConstraint struct {
+
+ // Expression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html#cfn-ecs-taskdefinition-taskdefinitionplacementconstraint-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html#cfn-ecs-taskdefinition-taskdefinitionplacementconstraint-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_TaskDefinitionPlacementConstraint) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_tmpfs.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_tmpfs.go
new file mode 100644
index 0000000000..921ca4fe5f
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_tmpfs.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_Tmpfs AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Tmpfs)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html
+type TaskDefinition_Tmpfs struct {
+
+ // ContainerPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html#cfn-ecs-taskdefinition-tmpfs-containerpath
+ ContainerPath *types.Value `json:"ContainerPath,omitempty"`
+
+ // MountOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html#cfn-ecs-taskdefinition-tmpfs-mountoptions
+ MountOptions *types.Value `json:"MountOptions,omitempty"`
+
+ // Size AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html#cfn-ecs-taskdefinition-tmpfs-size
+ Size *types.Value `json:"Size"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_Tmpfs) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.Tmpfs"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_ulimit.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_ulimit.go
new file mode 100644
index 0000000000..0e838ace3d
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_ulimit.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_Ulimit AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Ulimit)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html
+type TaskDefinition_Ulimit struct {
+
+ // HardLimit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-hardlimit
+ HardLimit *types.Value `json:"HardLimit"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SoftLimit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html#cfn-ecs-taskdefinition-containerdefinition-ulimit-softlimit
+ SoftLimit *types.Value `json:"SoftLimit"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_Ulimit) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.Ulimit"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_volume.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_volume.go
new file mode 100644
index 0000000000..0fd69c0933
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_volume.go
@@ -0,0 +1,52 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_Volume AWS CloudFormation Resource (AWS::ECS::TaskDefinition.Volume)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html
+type TaskDefinition_Volume struct {
+
+ // DockerVolumeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volume-dockervolumeconfiguration
+ DockerVolumeConfiguration *TaskDefinition_DockerVolumeConfiguration `json:"DockerVolumeConfiguration,omitempty"`
+
+ // EFSVolumeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volume-efsvolumeconfiguration
+ EFSVolumeConfiguration *TaskDefinition_EFSVolumeConfiguration `json:"EFSVolumeConfiguration,omitempty"`
+
+ // Host AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volumes-host
+ Host *TaskDefinition_HostVolumeProperties `json:"Host,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html#cfn-ecs-taskdefinition-volumes-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_Volume) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.Volume"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskdefinition_volumefrom.go b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_volumefrom.go
new file mode 100644
index 0000000000..83c1698396
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskdefinition_volumefrom.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_VolumeFrom AWS CloudFormation Resource (AWS::ECS::TaskDefinition.VolumeFrom)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html
+type TaskDefinition_VolumeFrom struct {
+
+ // ReadOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom-readonly
+ ReadOnly *types.Value `json:"ReadOnly,omitempty"`
+
+ // SourceContainer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html#cfn-ecs-taskdefinition-containerdefinition-volumesfrom-sourcecontainer
+ SourceContainer *types.Value `json:"SourceContainer,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_VolumeFrom) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskDefinition.VolumeFrom"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskset.go b/goformation/cloudformation/ecs/aws-ecs-taskset.go
new file mode 100644
index 0000000000..148cfd336b
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskset.go
@@ -0,0 +1,153 @@
+package ecs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskSet AWS CloudFormation Resource (AWS::ECS::TaskSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html
+type TaskSet struct {
+
+ // Cluster AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-cluster
+ Cluster *types.Value `json:"Cluster,omitempty"`
+
+ // ExternalId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-externalid
+ ExternalId *types.Value `json:"ExternalId,omitempty"`
+
+ // LaunchType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-launchtype
+ LaunchType *types.Value `json:"LaunchType,omitempty"`
+
+ // LoadBalancers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-loadbalancers
+ LoadBalancers []TaskSet_LoadBalancer `json:"LoadBalancers,omitempty"`
+
+ // NetworkConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-networkconfiguration
+ NetworkConfiguration *TaskSet_NetworkConfiguration `json:"NetworkConfiguration,omitempty"`
+
+ // PlatformVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-platformversion
+ PlatformVersion *types.Value `json:"PlatformVersion,omitempty"`
+
+ // Scale AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-scale
+ Scale *TaskSet_Scale `json:"Scale,omitempty"`
+
+ // Service AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-service
+ Service *types.Value `json:"Service,omitempty"`
+
+ // ServiceRegistries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-serviceregistries
+ ServiceRegistries []TaskSet_ServiceRegistry `json:"ServiceRegistries,omitempty"`
+
+ // TaskDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html#cfn-ecs-taskset-taskdefinition
+ TaskDefinition *types.Value `json:"TaskDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskSet) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskSet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TaskSet) MarshalJSON() ([]byte, error) {
+ type Properties TaskSet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TaskSet) UnmarshalJSON(b []byte) error {
+ type Properties TaskSet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TaskSet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskset_awsvpcconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-taskset_awsvpcconfiguration.go
new file mode 100644
index 0000000000..eb1ca471ca
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskset_awsvpcconfiguration.go
@@ -0,0 +1,47 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskSet_AwsVpcConfiguration AWS CloudFormation Resource (AWS::ECS::TaskSet.AwsVpcConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-awsvpcconfiguration.html
+type TaskSet_AwsVpcConfiguration struct {
+
+ // AssignPublicIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-awsvpcconfiguration.html#cfn-ecs-taskset-awsvpcconfiguration-assignpublicip
+ AssignPublicIp *types.Value `json:"AssignPublicIp,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-awsvpcconfiguration.html#cfn-ecs-taskset-awsvpcconfiguration-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-awsvpcconfiguration.html#cfn-ecs-taskset-awsvpcconfiguration-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskSet_AwsVpcConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskSet.AwsVpcConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskset_loadbalancer.go b/goformation/cloudformation/ecs/aws-ecs-taskset_loadbalancer.go
new file mode 100644
index 0000000000..57e7c30642
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskset_loadbalancer.go
@@ -0,0 +1,52 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskSet_LoadBalancer AWS CloudFormation Resource (AWS::ECS::TaskSet.LoadBalancer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html
+type TaskSet_LoadBalancer struct {
+
+ // ContainerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html#cfn-ecs-taskset-loadbalancer-containername
+ ContainerName *types.Value `json:"ContainerName,omitempty"`
+
+ // ContainerPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html#cfn-ecs-taskset-loadbalancer-containerport
+ ContainerPort *types.Value `json:"ContainerPort,omitempty"`
+
+ // LoadBalancerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html#cfn-ecs-taskset-loadbalancer-loadbalancername
+ LoadBalancerName *types.Value `json:"LoadBalancerName,omitempty"`
+
+ // TargetGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html#cfn-ecs-taskset-loadbalancer-targetgrouparn
+ TargetGroupArn *types.Value `json:"TargetGroupArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskSet_LoadBalancer) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskSet.LoadBalancer"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskset_networkconfiguration.go b/goformation/cloudformation/ecs/aws-ecs-taskset_networkconfiguration.go
new file mode 100644
index 0000000000..f64bc70468
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskset_networkconfiguration.go
@@ -0,0 +1,35 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskSet_NetworkConfiguration AWS CloudFormation Resource (AWS::ECS::TaskSet.NetworkConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-networkconfiguration.html
+type TaskSet_NetworkConfiguration struct {
+
+ // AwsVpcConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-networkconfiguration.html#cfn-ecs-taskset-networkconfiguration-awsvpcconfiguration
+ AwsVpcConfiguration *TaskSet_AwsVpcConfiguration `json:"AwsVpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskSet_NetworkConfiguration) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskSet.NetworkConfiguration"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskset_scale.go b/goformation/cloudformation/ecs/aws-ecs-taskset_scale.go
new file mode 100644
index 0000000000..31f39e0c6c
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskset_scale.go
@@ -0,0 +1,42 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskSet_Scale AWS CloudFormation Resource (AWS::ECS::TaskSet.Scale)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html
+type TaskSet_Scale struct {
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html#cfn-ecs-taskset-scale-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html#cfn-ecs-taskset-scale-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskSet_Scale) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskSet.Scale"
+}
diff --git a/goformation/cloudformation/ecs/aws-ecs-taskset_serviceregistry.go b/goformation/cloudformation/ecs/aws-ecs-taskset_serviceregistry.go
new file mode 100644
index 0000000000..f071232f5e
--- /dev/null
+++ b/goformation/cloudformation/ecs/aws-ecs-taskset_serviceregistry.go
@@ -0,0 +1,52 @@
+package ecs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskSet_ServiceRegistry AWS CloudFormation Resource (AWS::ECS::TaskSet.ServiceRegistry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html
+type TaskSet_ServiceRegistry struct {
+
+ // ContainerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html#cfn-ecs-taskset-serviceregistry-containername
+ ContainerName *types.Value `json:"ContainerName,omitempty"`
+
+ // ContainerPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html#cfn-ecs-taskset-serviceregistry-containerport
+ ContainerPort *types.Value `json:"ContainerPort,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html#cfn-ecs-taskset-serviceregistry-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // RegistryArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html#cfn-ecs-taskset-serviceregistry-registryarn
+ RegistryArn *types.Value `json:"RegistryArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskSet_ServiceRegistry) AWSCloudFormationType() string {
+ return "AWS::ECS::TaskSet.ServiceRegistry"
+}
diff --git a/goformation/cloudformation/efs/aws-efs-accesspoint.go b/goformation/cloudformation/efs/aws-efs-accesspoint.go
new file mode 100644
index 0000000000..a2d55d10c7
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-accesspoint.go
@@ -0,0 +1,128 @@
+package efs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPoint AWS CloudFormation Resource (AWS::EFS::AccessPoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html
+type AccessPoint struct {
+
+ // AccessPointTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-accesspointtags
+ AccessPointTags []AccessPoint_AccessPointTag `json:"AccessPointTags,omitempty"`
+
+ // ClientToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-clienttoken
+ ClientToken *types.Value `json:"ClientToken,omitempty"`
+
+ // FileSystemId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-filesystemid
+ FileSystemId *types.Value `json:"FileSystemId,omitempty"`
+
+ // PosixUser AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-posixuser
+ PosixUser *AccessPoint_PosixUser `json:"PosixUser,omitempty"`
+
+ // RootDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-accesspoint.html#cfn-efs-accesspoint-rootdirectory
+ RootDirectory *AccessPoint_RootDirectory `json:"RootDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPoint) AWSCloudFormationType() string {
+ return "AWS::EFS::AccessPoint"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AccessPoint) MarshalJSON() ([]byte, error) {
+ type Properties AccessPoint
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AccessPoint) UnmarshalJSON(b []byte) error {
+ type Properties AccessPoint
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AccessPoint(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/efs/aws-efs-accesspoint_accesspointtag.go b/goformation/cloudformation/efs/aws-efs-accesspoint_accesspointtag.go
new file mode 100644
index 0000000000..61d19285ad
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-accesspoint_accesspointtag.go
@@ -0,0 +1,42 @@
+package efs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPoint_AccessPointTag AWS CloudFormation Resource (AWS::EFS::AccessPoint.AccessPointTag)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html
+type AccessPoint_AccessPointTag struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html#cfn-efs-accesspoint-accesspointtag-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-accesspointtag.html#cfn-efs-accesspoint-accesspointtag-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPoint_AccessPointTag) AWSCloudFormationType() string {
+ return "AWS::EFS::AccessPoint.AccessPointTag"
+}
diff --git a/goformation/cloudformation/efs/aws-efs-accesspoint_creationinfo.go b/goformation/cloudformation/efs/aws-efs-accesspoint_creationinfo.go
new file mode 100644
index 0000000000..a1795af330
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-accesspoint_creationinfo.go
@@ -0,0 +1,47 @@
+package efs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPoint_CreationInfo AWS CloudFormation Resource (AWS::EFS::AccessPoint.CreationInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html
+type AccessPoint_CreationInfo struct {
+
+ // OwnerGid AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-ownergid
+ OwnerGid *types.Value `json:"OwnerGid,omitempty"`
+
+ // OwnerUid AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-owneruid
+ OwnerUid *types.Value `json:"OwnerUid,omitempty"`
+
+ // Permissions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-creationinfo.html#cfn-efs-accesspoint-creationinfo-permissions
+ Permissions *types.Value `json:"Permissions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPoint_CreationInfo) AWSCloudFormationType() string {
+ return "AWS::EFS::AccessPoint.CreationInfo"
+}
diff --git a/goformation/cloudformation/efs/aws-efs-accesspoint_posixuser.go b/goformation/cloudformation/efs/aws-efs-accesspoint_posixuser.go
new file mode 100644
index 0000000000..69b90c47a1
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-accesspoint_posixuser.go
@@ -0,0 +1,47 @@
+package efs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPoint_PosixUser AWS CloudFormation Resource (AWS::EFS::AccessPoint.PosixUser)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html
+type AccessPoint_PosixUser struct {
+
+ // Gid AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-gid
+ Gid *types.Value `json:"Gid,omitempty"`
+
+ // SecondaryGids AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-secondarygids
+ SecondaryGids *types.Value `json:"SecondaryGids,omitempty"`
+
+ // Uid AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-posixuser.html#cfn-efs-accesspoint-posixuser-uid
+ Uid *types.Value `json:"Uid,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPoint_PosixUser) AWSCloudFormationType() string {
+ return "AWS::EFS::AccessPoint.PosixUser"
+}
diff --git a/goformation/cloudformation/efs/aws-efs-accesspoint_rootdirectory.go b/goformation/cloudformation/efs/aws-efs-accesspoint_rootdirectory.go
new file mode 100644
index 0000000000..119e716756
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-accesspoint_rootdirectory.go
@@ -0,0 +1,42 @@
+package efs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPoint_RootDirectory AWS CloudFormation Resource (AWS::EFS::AccessPoint.RootDirectory)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html
+type AccessPoint_RootDirectory struct {
+
+ // CreationInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html#cfn-efs-accesspoint-rootdirectory-creationinfo
+ CreationInfo *AccessPoint_CreationInfo `json:"CreationInfo,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-accesspoint-rootdirectory.html#cfn-efs-accesspoint-rootdirectory-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPoint_RootDirectory) AWSCloudFormationType() string {
+ return "AWS::EFS::AccessPoint.RootDirectory"
+}
diff --git a/goformation/cloudformation/efs/aws-efs-filesystem.go b/goformation/cloudformation/efs/aws-efs-filesystem.go
new file mode 100644
index 0000000000..42927480dd
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-filesystem.go
@@ -0,0 +1,158 @@
+package efs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem AWS CloudFormation Resource (AWS::EFS::FileSystem)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html
+type FileSystem struct {
+
+ // AvailabilityZoneName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-availabilityzonename
+ AvailabilityZoneName *types.Value `json:"AvailabilityZoneName,omitempty"`
+
+ // BackupPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-backuppolicy
+ BackupPolicy *FileSystem_BackupPolicy `json:"BackupPolicy,omitempty"`
+
+ // BypassPolicyLockoutSafetyCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-bypasspolicylockoutsafetycheck
+ BypassPolicyLockoutSafetyCheck *types.Value `json:"BypassPolicyLockoutSafetyCheck,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-encrypted
+ Encrypted *types.Value `json:"Encrypted,omitempty"`
+
+ // FileSystemPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystempolicy
+ FileSystemPolicy interface{} `json:"FileSystemPolicy,omitempty"`
+
+ // FileSystemTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystemtags
+ FileSystemTags []FileSystem_ElasticFileSystemTag `json:"FileSystemTags,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // LifecyclePolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-lifecyclepolicies
+ LifecyclePolicies []FileSystem_LifecyclePolicy `json:"LifecyclePolicies,omitempty"`
+
+ // PerformanceMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-performancemode
+ PerformanceMode *types.Value `json:"PerformanceMode,omitempty"`
+
+ // ProvisionedThroughputInMibps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-provisionedthroughputinmibps
+ ProvisionedThroughputInMibps *types.Value `json:"ProvisionedThroughputInMibps,omitempty"`
+
+ // ThroughputMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-throughputmode
+ ThroughputMode *types.Value `json:"ThroughputMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem) AWSCloudFormationType() string {
+ return "AWS::EFS::FileSystem"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FileSystem) MarshalJSON() ([]byte, error) {
+ type Properties FileSystem
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FileSystem) UnmarshalJSON(b []byte) error {
+ type Properties FileSystem
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FileSystem(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/efs/aws-efs-filesystem_backuppolicy.go b/goformation/cloudformation/efs/aws-efs-filesystem_backuppolicy.go
new file mode 100644
index 0000000000..420796080c
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-filesystem_backuppolicy.go
@@ -0,0 +1,37 @@
+package efs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_BackupPolicy AWS CloudFormation Resource (AWS::EFS::FileSystem.BackupPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-backuppolicy.html
+type FileSystem_BackupPolicy struct {
+
+ // Status AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-backuppolicy.html#cfn-efs-filesystem-backuppolicy-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_BackupPolicy) AWSCloudFormationType() string {
+ return "AWS::EFS::FileSystem.BackupPolicy"
+}
diff --git a/goformation/cloudformation/efs/aws-efs-filesystem_elasticfilesystemtag.go b/goformation/cloudformation/efs/aws-efs-filesystem_elasticfilesystemtag.go
new file mode 100644
index 0000000000..7478322bfe
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-filesystem_elasticfilesystemtag.go
@@ -0,0 +1,42 @@
+package efs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_ElasticFileSystemTag AWS CloudFormation Resource (AWS::EFS::FileSystem.ElasticFileSystemTag)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html
+type FileSystem_ElasticFileSystemTag struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html#cfn-efs-filesystem-elasticfilesystemtag-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-elasticfilesystemtag.html#cfn-efs-filesystem-elasticfilesystemtag-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_ElasticFileSystemTag) AWSCloudFormationType() string {
+ return "AWS::EFS::FileSystem.ElasticFileSystemTag"
+}
diff --git a/goformation/cloudformation/efs/aws-efs-filesystem_lifecyclepolicy.go b/goformation/cloudformation/efs/aws-efs-filesystem_lifecyclepolicy.go
new file mode 100644
index 0000000000..407bebf03e
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-filesystem_lifecyclepolicy.go
@@ -0,0 +1,42 @@
+package efs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_LifecyclePolicy AWS CloudFormation Resource (AWS::EFS::FileSystem.LifecyclePolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html
+type FileSystem_LifecyclePolicy struct {
+
+ // TransitionToIA AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html#cfn-efs-filesystem-lifecyclepolicy-transitiontoia
+ TransitionToIA *types.Value `json:"TransitionToIA,omitempty"`
+
+ // TransitionToPrimaryStorageClass AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-efs-filesystem-lifecyclepolicy.html#cfn-efs-filesystem-lifecyclepolicy-transitiontoprimarystorageclass
+ TransitionToPrimaryStorageClass *types.Value `json:"TransitionToPrimaryStorageClass,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_LifecyclePolicy) AWSCloudFormationType() string {
+ return "AWS::EFS::FileSystem.LifecyclePolicy"
+}
diff --git a/goformation/cloudformation/efs/aws-efs-mounttarget.go b/goformation/cloudformation/efs/aws-efs-mounttarget.go
new file mode 100644
index 0000000000..825aaa11e9
--- /dev/null
+++ b/goformation/cloudformation/efs/aws-efs-mounttarget.go
@@ -0,0 +1,123 @@
+package efs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MountTarget AWS CloudFormation Resource (AWS::EFS::MountTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html
+type MountTarget struct {
+
+ // FileSystemId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-filesystemid
+ FileSystemId *types.Value `json:"FileSystemId,omitempty"`
+
+ // IpAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-ipaddress
+ IpAddress *types.Value `json:"IpAddress,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html#cfn-efs-mounttarget-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MountTarget) AWSCloudFormationType() string {
+ return "AWS::EFS::MountTarget"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MountTarget) MarshalJSON() ([]byte, error) {
+ type Properties MountTarget
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MountTarget) UnmarshalJSON(b []byte) error {
+ type Properties MountTarget
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MountTarget(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eks/aws-eks-access-config.go b/goformation/cloudformation/eks/aws-eks-access-config.go
new file mode 100644
index 0000000000..91c5dc8c97
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-access-config.go
@@ -0,0 +1,21 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+)
+
+// Cluster_AccessConfig describes the access configuration for the cluster.
+type Cluster_AccessConfig struct {
+
+ // AuthenticationMode specifies the desired authentication mode for the cluster.
+ AuthenticationMode *types.Value
+
+ // BootstrapClusterCreatorAdminPermissions specifies whether the cluster creator IAM principal was set as a cluster
+ // admin access entry during cluster creation time.
+ BootstrapClusterCreatorAdminPermissions *types.Value
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_AccessConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.AccessConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-access-entry.go b/goformation/cloudformation/eks/aws-eks-access-entry.go
new file mode 100644
index 0000000000..e5fee5eb8e
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-access-entry.go
@@ -0,0 +1,119 @@
+package eks
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+type AccessEntry struct {
+ PrincipalArn *types.Value `json:"PrincipalArn,omitempty"`
+
+ // ClusterName AWS CloudFormation Property
+ // Required: true
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ KubernetesGroups *types.Value `json:"KubernetesGroups,omitempty"`
+
+ Username *types.Value `json:"Username,omitempty"`
+
+ AccessPolicies []AccessEntry_AccessPolicy `json:"AccessPolicies,omitempty"`
+
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessEntry) AWSCloudFormationType() string {
+ return "AWS::EKS::AccessEntry"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AccessEntry) MarshalJSON() ([]byte, error) {
+ type Properties AccessEntry
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AccessEntry) UnmarshalJSON(b []byte) error {
+ type Properties AccessEntry
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AccessEntry(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eks/aws-eks-access-entry_access_scope.go b/goformation/cloudformation/eks/aws-eks-access-entry_access_scope.go
new file mode 100644
index 0000000000..dffe48d088
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-access-entry_access_scope.go
@@ -0,0 +1,20 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+)
+
+type AccessEntry_AccessScope struct {
+
+ // Effect AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html#cfn-eks-nodegroup-taint-effect
+ Type *types.Value `json:"Type,omitempty"`
+
+ Namespaces *types.Value `json:"Namespaces,omitempty"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessEntry_AccessScope) AWSCloudFormationType() string {
+ return "AWS::EKS::AccessEntry.AccessScope"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-access-entry_policy.go b/goformation/cloudformation/eks/aws-eks-access-entry_policy.go
new file mode 100644
index 0000000000..59574797d5
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-access-entry_policy.go
@@ -0,0 +1,33 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+type AccessEntry_AccessPolicy struct {
+ PolicyArn *types.Value `json:"PolicyArn,omitempty"`
+
+ AccessScope *AccessEntry_AccessScope `json:"AccessScope,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessEntry_AccessPolicy) AWSCloudFormationType() string {
+ return "AWS::EKS::AccessEntry.AccessPolicy"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-addon.go b/goformation/cloudformation/eks/aws-eks-addon.go
new file mode 100644
index 0000000000..8ad4689933
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-addon.go
@@ -0,0 +1,134 @@
+package eks
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Addon AWS CloudFormation Resource (AWS::EKS::Addon)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html
+type Addon struct {
+
+ // AddonName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-addonname
+ AddonName *types.Value `json:"AddonName,omitempty"`
+
+ // AddonVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-addonversion
+ AddonVersion *types.Value `json:"AddonVersion,omitempty"`
+
+ // ClusterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-clustername
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ // ResolveConflicts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-resolveconflicts
+ ResolveConflicts *types.Value `json:"ResolveConflicts,omitempty"`
+
+ // ServiceAccountRoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-serviceaccountrolearn
+ ServiceAccountRoleArn *types.Value `json:"ServiceAccountRoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Addon) AWSCloudFormationType() string {
+ return "AWS::EKS::Addon"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Addon) MarshalJSON() ([]byte, error) {
+ type Properties Addon
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Addon) UnmarshalJSON(b []byte) error {
+ type Properties Addon
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Addon(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster.go b/goformation/cloudformation/eks/aws-eks-cluster.go
new file mode 100644
index 0000000000..e5be2b193d
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster.go
@@ -0,0 +1,164 @@
+package eks
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster AWS CloudFormation Resource (AWS::EKS::Cluster)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html
+type Cluster struct {
+
+ // EncryptionConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-encryptionconfig
+ EncryptionConfig []Cluster_EncryptionConfig `json:"EncryptionConfig,omitempty"`
+
+ AccessConfig *Cluster_AccessConfig `json:"AccessConfig,omitempty"`
+
+ BootstrapSelfManagedAddons *types.Value `json:"BootstrapSelfManagedAddons,omitempty"`
+
+ // KubernetesNetworkConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-kubernetesnetworkconfig
+ KubernetesNetworkConfig *Cluster_KubernetesNetworkConfig `json:"KubernetesNetworkConfig,omitempty"`
+
+ // Logging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-logging
+ Logging *Cluster_Logging `json:"Logging,omitempty"`
+
+ ComputeConfig *Cluster_ComputeConfig `json:"ComputeConfig,omitempty"`
+
+ StorageConfig *Cluster_StorageConfig `json:"StorageConfig,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OutpostConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-outpostconfig
+ OutpostConfig *Cluster_OutpostConfig `json:"OutpostConfig,omitempty"`
+
+ // ResourcesVpcConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-resourcesvpcconfig
+ ResourcesVpcConfig *Cluster_ResourcesVpcConfig `json:"ResourcesVpcConfig,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // RemoteNetworkConfig AWS CloudFormation Property
+ // Required: false
+ // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html
+ RemoteNetworkConfig *Cluster_RemoteNetworkConfig `json:"RemoteNetworkConfig,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ ZonalShiftConfig *Cluster_ZonalShift `json:"ZonalShiftConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Cluster) MarshalJSON() ([]byte, error) {
+ type Properties Cluster
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Cluster) UnmarshalJSON(b []byte) error {
+ type Properties Cluster
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Cluster(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_clusterlogging.go b/goformation/cloudformation/eks/aws-eks-cluster_clusterlogging.go
new file mode 100644
index 0000000000..f9668df361
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_clusterlogging.go
@@ -0,0 +1,35 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ClusterLogging AWS CloudFormation Resource (AWS::EKS::Cluster.ClusterLogging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html
+type Cluster_ClusterLogging struct {
+
+ // EnabledTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html#cfn-eks-cluster-clusterlogging-enabledtypes
+ EnabledTypes []Cluster_LoggingTypeConfig `json:"EnabledTypes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ClusterLogging) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.ClusterLogging"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_compute_config.go b/goformation/cloudformation/eks/aws-eks-cluster_compute_config.go
new file mode 100644
index 0000000000..d1a3ef6573
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_compute_config.go
@@ -0,0 +1,37 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+type Cluster_ComputeConfig struct {
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ NodeRoleArn *types.Value `json:"NodeRoleArn,omitempty"`
+
+ ControllerRoleARN *types.Value `json:"ControllerRoleArn,omitempty"`
+
+ NodePools *types.Value `json:"NodePools,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ComputeConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.ComputeConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_controlplaneplacement.go b/goformation/cloudformation/eks/aws-eks-cluster_controlplaneplacement.go
new file mode 100644
index 0000000000..cda6da5b34
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_controlplaneplacement.go
@@ -0,0 +1,37 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ControlPlanePlacement AWS CloudFormation Resource (AWS::EKS::Cluster.ControlPlanePlacement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-controlplaneplacement.html
+type Cluster_ControlPlanePlacement struct {
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-controlplaneplacement.html#cfn-eks-cluster-controlplaneplacement-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ControlPlanePlacement) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.ControlPlanePlacement"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_elastic_loadbalancing.go b/goformation/cloudformation/eks/aws-eks-cluster_elastic_loadbalancing.go
new file mode 100644
index 0000000000..fe31c819b6
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_elastic_loadbalancing.go
@@ -0,0 +1,31 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+type Cluster_ElasticLoadBalancing struct {
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ElasticLoadBalancing) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.ElasticLoadBalancing"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_encryptionconfig.go b/goformation/cloudformation/eks/aws-eks-cluster_encryptionconfig.go
new file mode 100644
index 0000000000..5ad1688819
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_encryptionconfig.go
@@ -0,0 +1,42 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_EncryptionConfig AWS CloudFormation Resource (AWS::EKS::Cluster.EncryptionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html
+type Cluster_EncryptionConfig struct {
+
+ // Provider AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html#cfn-eks-cluster-encryptionconfig-provider
+ Provider *Cluster_Provider `json:"Provider,omitempty"`
+
+ // Resources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html#cfn-eks-cluster-encryptionconfig-resources
+ Resources *types.Value `json:"Resources,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_EncryptionConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.EncryptionConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_kubernetesnetworkconfig.go b/goformation/cloudformation/eks/aws-eks-cluster_kubernetesnetworkconfig.go
new file mode 100644
index 0000000000..d65552d92b
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_kubernetesnetworkconfig.go
@@ -0,0 +1,49 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_KubernetesNetworkConfig AWS CloudFormation Resource (AWS::EKS::Cluster.KubernetesNetworkConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html
+type Cluster_KubernetesNetworkConfig struct {
+
+ // IpFamily AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html#cfn-eks-cluster-kubernetesnetworkconfig-ipfamily
+ IpFamily *types.Value `json:"IpFamily,omitempty"`
+
+ // ServiceIpv4Cidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html#cfn-eks-cluster-kubernetesnetworkconfig-serviceipv4cidr
+ ServiceIpv4Cidr *types.Value `json:"ServiceIpv4Cidr,omitempty"`
+
+ // ServiceIpv6Cidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html#cfn-eks-cluster-kubernetesnetworkconfig-serviceipv6cidr
+ ServiceIpv6Cidr *types.Value `json:"ServiceIpv6Cidr,omitempty"`
+
+ ElasticLoadBalancing *Cluster_ElasticLoadBalancing `json:"ElasticLoadBalancing,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_KubernetesNetworkConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.KubernetesNetworkConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_logging.go b/goformation/cloudformation/eks/aws-eks-cluster_logging.go
new file mode 100644
index 0000000000..ae6030c59a
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_logging.go
@@ -0,0 +1,35 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_Logging AWS CloudFormation Resource (AWS::EKS::Cluster.Logging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html
+type Cluster_Logging struct {
+
+ // ClusterLogging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html#cfn-eks-cluster-logging-clusterlogging
+ ClusterLogging *Cluster_ClusterLogging `json:"ClusterLogging,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_Logging) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.Logging"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_loggingtypeconfig.go b/goformation/cloudformation/eks/aws-eks-cluster_loggingtypeconfig.go
new file mode 100644
index 0000000000..0f8c9ba5a0
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_loggingtypeconfig.go
@@ -0,0 +1,37 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_LoggingTypeConfig AWS CloudFormation Resource (AWS::EKS::Cluster.LoggingTypeConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html
+type Cluster_LoggingTypeConfig struct {
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html#cfn-eks-cluster-loggingtypeconfig-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_LoggingTypeConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.LoggingTypeConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_outpostconfig.go b/goformation/cloudformation/eks/aws-eks-cluster_outpostconfig.go
new file mode 100644
index 0000000000..5575687911
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_outpostconfig.go
@@ -0,0 +1,47 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_OutpostConfig AWS CloudFormation Resource (AWS::EKS::Cluster.OutpostConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html
+type Cluster_OutpostConfig struct {
+
+ // ControlPlaneInstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html#cfn-eks-cluster-outpostconfig-controlplaneinstancetype
+ ControlPlaneInstanceType *types.Value `json:"ControlPlaneInstanceType,omitempty"`
+
+ // ControlPlanePlacement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html#cfn-eks-cluster-outpostconfig-controlplaneplacement
+ ControlPlanePlacement *Cluster_ControlPlanePlacement `json:"ControlPlanePlacement,omitempty"`
+
+ // OutpostArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html#cfn-eks-cluster-outpostconfig-outpostarns
+ OutpostArns *types.Value `json:"OutpostArns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_OutpostConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.OutpostConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_provider.go b/goformation/cloudformation/eks/aws-eks-cluster_provider.go
new file mode 100644
index 0000000000..e23dc89074
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_provider.go
@@ -0,0 +1,37 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_Provider AWS CloudFormation Resource (AWS::EKS::Cluster.Provider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-provider.html
+type Cluster_Provider struct {
+
+ // KeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-provider.html#cfn-eks-cluster-provider-keyarn
+ KeyArn *types.Value `json:"KeyArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_Provider) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.Provider"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_remotenetworks.go b/goformation/cloudformation/eks/aws-eks-cluster_remotenetworks.go
new file mode 100644
index 0000000000..731c5960a0
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_remotenetworks.go
@@ -0,0 +1,17 @@
+package eks
+
+import "goformation/v4/cloudformation/types"
+
+type Cluster_RemoteNetworkConfig struct {
+ RemotePodNetworks []RemoteNetworks `json:"RemotePodNetworks,omitempty"`
+ RemoteNodeNetworks []RemoteNetworks `json:"RemoteNodeNetworks,omitempty"`
+}
+
+type RemoteNetworks struct {
+ CIDRs *types.Value `json:"Cidrs"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_RemoteNetworkConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.RemoteNetworkConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_resourcesvpcconfig.go b/goformation/cloudformation/eks/aws-eks-cluster_resourcesvpcconfig.go
new file mode 100644
index 0000000000..1f92d524a4
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_resourcesvpcconfig.go
@@ -0,0 +1,57 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ResourcesVpcConfig AWS CloudFormation Resource (AWS::EKS::Cluster.ResourcesVpcConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html
+type Cluster_ResourcesVpcConfig struct {
+
+ // EndpointPrivateAccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointprivateaccess
+ EndpointPrivateAccess *types.Value `json:"EndpointPrivateAccess,omitempty"`
+
+ // EndpointPublicAccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointpublicaccess
+ EndpointPublicAccess *types.Value `json:"EndpointPublicAccess,omitempty"`
+
+ // PublicAccessCidrs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-publicaccesscidrs
+ PublicAccessCidrs *types.Value `json:"PublicAccessCidrs,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ResourcesVpcConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.ResourcesVpcConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_storage_config.go b/goformation/cloudformation/eks/aws-eks-cluster_storage_config.go
new file mode 100644
index 0000000000..788e987559
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_storage_config.go
@@ -0,0 +1,55 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+type Cluster_StorageConfig struct {
+ BlockStorage *Cluster_BlockStorage `json:"BlockStorage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_StorageConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.StorageConfig"
+}
+
+type Cluster_BlockStorage struct {
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_BlockStorage) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.BlockStorage"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-cluster_zonal-shift.go b/goformation/cloudformation/eks/aws-eks-cluster_zonal-shift.go
new file mode 100644
index 0000000000..94b64c4b1a
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-cluster_zonal-shift.go
@@ -0,0 +1,31 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+type Cluster_ZonalShift struct {
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (*Cluster_ZonalShift) AWSCloudFormationType() string {
+ return "AWS::EKS::Cluster.ZonalShift"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-fargateprofile.go b/goformation/cloudformation/eks/aws-eks-fargateprofile.go
new file mode 100644
index 0000000000..80faeda88e
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-fargateprofile.go
@@ -0,0 +1,134 @@
+package eks
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// FargateProfile AWS CloudFormation Resource (AWS::EKS::FargateProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html
+type FargateProfile struct {
+
+ // ClusterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-clustername
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ // FargateProfileName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-fargateprofilename
+ FargateProfileName *types.Value `json:"FargateProfileName,omitempty"`
+
+ // PodExecutionRoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-podexecutionrolearn
+ PodExecutionRoleArn *types.Value `json:"PodExecutionRoleArn,omitempty"`
+
+ // Selectors AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-selectors
+ Selectors []FargateProfile_Selector `json:"Selectors,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FargateProfile) AWSCloudFormationType() string {
+ return "AWS::EKS::FargateProfile"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FargateProfile) MarshalJSON() ([]byte, error) {
+ type Properties FargateProfile
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FargateProfile) UnmarshalJSON(b []byte) error {
+ type Properties FargateProfile
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FargateProfile(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eks/aws-eks-fargateprofile_label.go b/goformation/cloudformation/eks/aws-eks-fargateprofile_label.go
new file mode 100644
index 0000000000..4d5e7c78dc
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-fargateprofile_label.go
@@ -0,0 +1,42 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FargateProfile_Label AWS CloudFormation Resource (AWS::EKS::FargateProfile.Label)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html
+type FargateProfile_Label struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html#cfn-eks-fargateprofile-label-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html#cfn-eks-fargateprofile-label-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FargateProfile_Label) AWSCloudFormationType() string {
+ return "AWS::EKS::FargateProfile.Label"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-fargateprofile_selector.go b/goformation/cloudformation/eks/aws-eks-fargateprofile_selector.go
new file mode 100644
index 0000000000..38a347da08
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-fargateprofile_selector.go
@@ -0,0 +1,42 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FargateProfile_Selector AWS CloudFormation Resource (AWS::EKS::FargateProfile.Selector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html
+type FargateProfile_Selector struct {
+
+ // Labels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html#cfn-eks-fargateprofile-selector-labels
+ Labels []FargateProfile_Label `json:"Labels,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html#cfn-eks-fargateprofile-selector-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FargateProfile_Selector) AWSCloudFormationType() string {
+ return "AWS::EKS::FargateProfile.Selector"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-identityproviderconfig.go b/goformation/cloudformation/eks/aws-eks-identityproviderconfig.go
new file mode 100644
index 0000000000..d9306cf585
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-identityproviderconfig.go
@@ -0,0 +1,129 @@
+package eks
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityProviderConfig AWS CloudFormation Resource (AWS::EKS::IdentityProviderConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html
+type IdentityProviderConfig struct {
+
+ // ClusterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-clustername
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ // IdentityProviderConfigName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-identityproviderconfigname
+ IdentityProviderConfigName *types.Value `json:"IdentityProviderConfigName,omitempty"`
+
+ // Oidc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-oidc
+ Oidc *IdentityProviderConfig_OidcIdentityProviderConfig `json:"Oidc,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityProviderConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::IdentityProviderConfig"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IdentityProviderConfig) MarshalJSON() ([]byte, error) {
+ type Properties IdentityProviderConfig
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IdentityProviderConfig) UnmarshalJSON(b []byte) error {
+ type Properties IdentityProviderConfig
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IdentityProviderConfig(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eks/aws-eks-identityproviderconfig_oidcidentityproviderconfig.go b/goformation/cloudformation/eks/aws-eks-identityproviderconfig_oidcidentityproviderconfig.go
new file mode 100644
index 0000000000..b73426b155
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-identityproviderconfig_oidcidentityproviderconfig.go
@@ -0,0 +1,67 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityProviderConfig_OidcIdentityProviderConfig AWS CloudFormation Resource (AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html
+type IdentityProviderConfig_OidcIdentityProviderConfig struct {
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // GroupsClaim AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-groupsclaim
+ GroupsClaim *types.Value `json:"GroupsClaim,omitempty"`
+
+ // GroupsPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-groupsprefix
+ GroupsPrefix *types.Value `json:"GroupsPrefix,omitempty"`
+
+ // IssuerUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-issuerurl
+ IssuerUrl *types.Value `json:"IssuerUrl,omitempty"`
+
+ // RequiredClaims AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-requiredclaims
+ RequiredClaims []IdentityProviderConfig_RequiredClaim `json:"RequiredClaims,omitempty"`
+
+ // UsernameClaim AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-usernameclaim
+ UsernameClaim *types.Value `json:"UsernameClaim,omitempty"`
+
+ // UsernamePrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-usernameprefix
+ UsernamePrefix *types.Value `json:"UsernamePrefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityProviderConfig_OidcIdentityProviderConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-identityproviderconfig_requiredclaim.go b/goformation/cloudformation/eks/aws-eks-identityproviderconfig_requiredclaim.go
new file mode 100644
index 0000000000..aef9fa055e
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-identityproviderconfig_requiredclaim.go
@@ -0,0 +1,42 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IdentityProviderConfig_RequiredClaim AWS CloudFormation Resource (AWS::EKS::IdentityProviderConfig.RequiredClaim)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html
+type IdentityProviderConfig_RequiredClaim struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html#cfn-eks-identityproviderconfig-requiredclaim-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html#cfn-eks-identityproviderconfig-requiredclaim-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IdentityProviderConfig_RequiredClaim) AWSCloudFormationType() string {
+ return "AWS::EKS::IdentityProviderConfig.RequiredClaim"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-nodegroup.go b/goformation/cloudformation/eks/aws-eks-nodegroup.go
new file mode 100644
index 0000000000..4e06e8349f
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-nodegroup.go
@@ -0,0 +1,193 @@
+package eks
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Nodegroup AWS CloudFormation Resource (AWS::EKS::Nodegroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html
+type Nodegroup struct {
+
+ // AmiType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-amitype
+ AmiType *types.Value `json:"AmiType,omitempty"`
+
+ // CapacityType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-capacitytype
+ CapacityType *types.Value `json:"CapacityType,omitempty"`
+
+ // ClusterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-clustername
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ // DiskSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-disksize
+ DiskSize *types.Value `json:"DiskSize,omitempty"`
+
+ // ForceUpdateEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-forceupdateenabled
+ ForceUpdateEnabled *types.Value `json:"ForceUpdateEnabled,omitempty"`
+
+ // InstanceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes
+ InstanceTypes *types.Value `json:"InstanceTypes,omitempty"`
+
+ // Labels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-labels
+ Labels interface{} `json:"Labels,omitempty"`
+
+ // LaunchTemplate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate
+ LaunchTemplate *Nodegroup_LaunchTemplateSpecification `json:"LaunchTemplate,omitempty"`
+
+ // NodeRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-noderole
+ NodeRole *types.Value `json:"NodeRole,omitempty"`
+
+ // NodegroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-nodegroupname
+ NodegroupName *types.Value `json:"NodegroupName,omitempty"`
+
+ // ReleaseVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-releaseversion
+ ReleaseVersion *types.Value `json:"ReleaseVersion,omitempty"`
+
+ // RemoteAccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess
+ RemoteAccess *Nodegroup_RemoteAccess `json:"RemoteAccess,omitempty"`
+
+ // ScalingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-scalingconfig
+ ScalingConfig *Nodegroup_ScalingConfig `json:"ScalingConfig,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Taints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-taints
+ Taints []Nodegroup_Taint `json:"Taints,omitempty"`
+
+ // UpdateConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-updateconfig
+ UpdateConfig *Nodegroup_UpdateConfig `json:"UpdateConfig,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Nodegroup) AWSCloudFormationType() string {
+ return "AWS::EKS::Nodegroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Nodegroup) MarshalJSON() ([]byte, error) {
+ type Properties Nodegroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Nodegroup) UnmarshalJSON(b []byte) error {
+ type Properties Nodegroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Nodegroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eks/aws-eks-nodegroup_launchtemplatespecification.go b/goformation/cloudformation/eks/aws-eks-nodegroup_launchtemplatespecification.go
new file mode 100644
index 0000000000..cff957239b
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-nodegroup_launchtemplatespecification.go
@@ -0,0 +1,47 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Nodegroup_LaunchTemplateSpecification AWS CloudFormation Resource (AWS::EKS::Nodegroup.LaunchTemplateSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html
+type Nodegroup_LaunchTemplateSpecification struct {
+
+ // Id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html#cfn-eks-nodegroup-launchtemplatespecification-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html#cfn-eks-nodegroup-launchtemplatespecification-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html#cfn-eks-nodegroup-launchtemplatespecification-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Nodegroup_LaunchTemplateSpecification) AWSCloudFormationType() string {
+ return "AWS::EKS::Nodegroup.LaunchTemplateSpecification"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-nodegroup_remoteaccess.go b/goformation/cloudformation/eks/aws-eks-nodegroup_remoteaccess.go
new file mode 100644
index 0000000000..da451d2bb3
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-nodegroup_remoteaccess.go
@@ -0,0 +1,42 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Nodegroup_RemoteAccess AWS CloudFormation Resource (AWS::EKS::Nodegroup.RemoteAccess)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html
+type Nodegroup_RemoteAccess struct {
+
+ // Ec2SshKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html#cfn-eks-nodegroup-remoteaccess-ec2sshkey
+ Ec2SshKey *types.Value `json:"Ec2SshKey,omitempty"`
+
+ // SourceSecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html#cfn-eks-nodegroup-remoteaccess-sourcesecuritygroups
+ SourceSecurityGroups *types.Value `json:"SourceSecurityGroups,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Nodegroup_RemoteAccess) AWSCloudFormationType() string {
+ return "AWS::EKS::Nodegroup.RemoteAccess"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-nodegroup_scalingconfig.go b/goformation/cloudformation/eks/aws-eks-nodegroup_scalingconfig.go
new file mode 100644
index 0000000000..c1443b7c18
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-nodegroup_scalingconfig.go
@@ -0,0 +1,47 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Nodegroup_ScalingConfig AWS CloudFormation Resource (AWS::EKS::Nodegroup.ScalingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html
+type Nodegroup_ScalingConfig struct {
+
+ // DesiredSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-desiredsize
+ DesiredSize *types.Value `json:"DesiredSize,omitempty"`
+
+ // MaxSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-maxsize
+ MaxSize *types.Value `json:"MaxSize,omitempty"`
+
+ // MinSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-minsize
+ MinSize *types.Value `json:"MinSize,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Nodegroup_ScalingConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Nodegroup.ScalingConfig"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-nodegroup_taint.go b/goformation/cloudformation/eks/aws-eks-nodegroup_taint.go
new file mode 100644
index 0000000000..c296d5e2e9
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-nodegroup_taint.go
@@ -0,0 +1,47 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Nodegroup_Taint AWS CloudFormation Resource (AWS::EKS::Nodegroup.Taint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html
+type Nodegroup_Taint struct {
+
+ // Effect AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html#cfn-eks-nodegroup-taint-effect
+ Effect *types.Value `json:"Effect,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html#cfn-eks-nodegroup-taint-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html#cfn-eks-nodegroup-taint-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Nodegroup_Taint) AWSCloudFormationType() string {
+ return "AWS::EKS::Nodegroup.Taint"
+}
diff --git a/goformation/cloudformation/eks/aws-eks-nodegroup_taints.go b/goformation/cloudformation/eks/aws-eks-nodegroup_taints.go
new file mode 100644
index 0000000000..eb79342026
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-nodegroup_taints.go
@@ -0,0 +1,12 @@
+package eks
+
+import "goformation/v4/cloudformation/types"
+
+// Nodegroup_Taints AWS CloudFormation Resource (AWS::EKS::Nodegroup.Taints)
+// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html
+type Nodegroup_Taints struct {
+ // TODO documentation
+ Key *types.Value `json:"Key,omitempty"`
+ Value *types.Value `json:"Value,omitempty"`
+ Effect *types.Value `json:"Effect,omitempty"`
+}
diff --git a/goformation/cloudformation/eks/aws-eks-nodegroup_updateconfig.go b/goformation/cloudformation/eks/aws-eks-nodegroup_updateconfig.go
new file mode 100644
index 0000000000..ef6244875c
--- /dev/null
+++ b/goformation/cloudformation/eks/aws-eks-nodegroup_updateconfig.go
@@ -0,0 +1,42 @@
+package eks
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Nodegroup_UpdateConfig AWS CloudFormation Resource (AWS::EKS::Nodegroup.UpdateConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html
+type Nodegroup_UpdateConfig struct {
+
+ // MaxUnavailable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html#cfn-eks-nodegroup-updateconfig-maxunavailable
+ MaxUnavailable *types.Value `json:"MaxUnavailable,omitempty"`
+
+ // MaxUnavailablePercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html#cfn-eks-nodegroup-updateconfig-maxunavailablepercentage
+ MaxUnavailablePercentage *types.Value `json:"MaxUnavailablePercentage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Nodegroup_UpdateConfig) AWSCloudFormationType() string {
+ return "AWS::EKS::Nodegroup.UpdateConfig"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-cachecluster.go b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster.go
new file mode 100644
index 0000000000..a9cd717d57
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster.go
@@ -0,0 +1,214 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CacheCluster AWS CloudFormation Resource (AWS::ElastiCache::CacheCluster)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html
+type CacheCluster struct {
+
+ // AZMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-azmode
+ AZMode *types.Value `json:"AZMode,omitempty"`
+
+ // AutoMinorVersionUpgrade AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-autominorversionupgrade
+ AutoMinorVersionUpgrade *types.Value `json:"AutoMinorVersionUpgrade,omitempty"`
+
+ // CacheNodeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachenodetype
+ CacheNodeType *types.Value `json:"CacheNodeType,omitempty"`
+
+ // CacheParameterGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cacheparametergroupname
+ CacheParameterGroupName *types.Value `json:"CacheParameterGroupName,omitempty"`
+
+ // CacheSecurityGroupNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachesecuritygroupnames
+ CacheSecurityGroupNames *types.Value `json:"CacheSecurityGroupNames,omitempty"`
+
+ // CacheSubnetGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-cachesubnetgroupname
+ CacheSubnetGroupName *types.Value `json:"CacheSubnetGroupName,omitempty"`
+
+ // ClusterName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-clustername
+ ClusterName *types.Value `json:"ClusterName,omitempty"`
+
+ // Engine AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-engine
+ Engine *types.Value `json:"Engine,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-engineversion
+ EngineVersion *types.Value `json:"EngineVersion,omitempty"`
+
+ // LogDeliveryConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-logdeliveryconfigurations
+ LogDeliveryConfigurations []CacheCluster_LogDeliveryConfigurationRequest `json:"LogDeliveryConfigurations,omitempty"`
+
+ // NotificationTopicArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-notificationtopicarn
+ NotificationTopicArn *types.Value `json:"NotificationTopicArn,omitempty"`
+
+ // NumCacheNodes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-numcachenodes
+ NumCacheNodes *types.Value `json:"NumCacheNodes"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // PreferredAvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredavailabilityzone
+ PreferredAvailabilityZone *types.Value `json:"PreferredAvailabilityZone,omitempty"`
+
+ // PreferredAvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredavailabilityzones
+ PreferredAvailabilityZones *types.Value `json:"PreferredAvailabilityZones,omitempty"`
+
+ // PreferredMaintenanceWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-preferredmaintenancewindow
+ PreferredMaintenanceWindow *types.Value `json:"PreferredMaintenanceWindow,omitempty"`
+
+ // SnapshotArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotarns
+ SnapshotArns *types.Value `json:"SnapshotArns,omitempty"`
+
+ // SnapshotName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotname
+ SnapshotName *types.Value `json:"SnapshotName,omitempty"`
+
+ // SnapshotRetentionLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotretentionlimit
+ SnapshotRetentionLimit *types.Value `json:"SnapshotRetentionLimit,omitempty"`
+
+ // SnapshotWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-snapshotwindow
+ SnapshotWindow *types.Value `json:"SnapshotWindow,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcSecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html#cfn-elasticache-cachecluster-vpcsecuritygroupids
+ VpcSecurityGroupIds *types.Value `json:"VpcSecurityGroupIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CacheCluster) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::CacheCluster"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CacheCluster) MarshalJSON() ([]byte, error) {
+ type Properties CacheCluster
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CacheCluster) UnmarshalJSON(b []byte) error {
+ type Properties CacheCluster
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CacheCluster(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_cloudwatchlogsdestinationdetails.go b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_cloudwatchlogsdestinationdetails.go
new file mode 100644
index 0000000000..51aa7c78a2
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_cloudwatchlogsdestinationdetails.go
@@ -0,0 +1,37 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CacheCluster_CloudWatchLogsDestinationDetails AWS CloudFormation Resource (AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-cloudwatchlogsdestinationdetails.html
+type CacheCluster_CloudWatchLogsDestinationDetails struct {
+
+ // LogGroup AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-cloudwatchlogsdestinationdetails.html#cfn-elasticache-cachecluster-cloudwatchlogsdestinationdetails-loggroup
+ LogGroup *types.Value `json:"LogGroup,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CacheCluster_CloudWatchLogsDestinationDetails) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_destinationdetails.go b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_destinationdetails.go
new file mode 100644
index 0000000000..8384278cfc
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_destinationdetails.go
@@ -0,0 +1,40 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// CacheCluster_DestinationDetails AWS CloudFormation Resource (AWS::ElastiCache::CacheCluster.DestinationDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html
+type CacheCluster_DestinationDetails struct {
+
+ // CloudWatchLogsDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html#cfn-elasticache-cachecluster-destinationdetails-cloudwatchlogsdetails
+ CloudWatchLogsDetails *CacheCluster_CloudWatchLogsDestinationDetails `json:"CloudWatchLogsDetails,omitempty"`
+
+ // KinesisFirehoseDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-destinationdetails.html#cfn-elasticache-cachecluster-destinationdetails-kinesisfirehosedetails
+ KinesisFirehoseDetails *CacheCluster_KinesisFirehoseDestinationDetails `json:"KinesisFirehoseDetails,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CacheCluster_DestinationDetails) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::CacheCluster.DestinationDetails"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_kinesisfirehosedestinationdetails.go b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_kinesisfirehosedestinationdetails.go
new file mode 100644
index 0000000000..8ea3428139
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_kinesisfirehosedestinationdetails.go
@@ -0,0 +1,37 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CacheCluster_KinesisFirehoseDestinationDetails AWS CloudFormation Resource (AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-kinesisfirehosedestinationdetails.html
+type CacheCluster_KinesisFirehoseDestinationDetails struct {
+
+ // DeliveryStream AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-kinesisfirehosedestinationdetails.html#cfn-elasticache-cachecluster-kinesisfirehosedestinationdetails-deliverystream
+ DeliveryStream *types.Value `json:"DeliveryStream,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CacheCluster_KinesisFirehoseDestinationDetails) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_logdeliveryconfigurationrequest.go b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_logdeliveryconfigurationrequest.go
new file mode 100644
index 0000000000..a819934f65
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-cachecluster_logdeliveryconfigurationrequest.go
@@ -0,0 +1,52 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CacheCluster_LogDeliveryConfigurationRequest AWS CloudFormation Resource (AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html
+type CacheCluster_LogDeliveryConfigurationRequest struct {
+
+ // DestinationDetails AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html#cfn-elasticache-cachecluster-logdeliveryconfigurationrequest-destinationdetails
+ DestinationDetails *CacheCluster_DestinationDetails `json:"DestinationDetails,omitempty"`
+
+ // DestinationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html#cfn-elasticache-cachecluster-logdeliveryconfigurationrequest-destinationtype
+ DestinationType *types.Value `json:"DestinationType,omitempty"`
+
+ // LogFormat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html#cfn-elasticache-cachecluster-logdeliveryconfigurationrequest-logformat
+ LogFormat *types.Value `json:"LogFormat,omitempty"`
+
+ // LogType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cachecluster-logdeliveryconfigurationrequest.html#cfn-elasticache-cachecluster-logdeliveryconfigurationrequest-logtype
+ LogType *types.Value `json:"LogType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CacheCluster_LogDeliveryConfigurationRequest) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup.go b/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup.go
new file mode 100644
index 0000000000..5780f040de
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup.go
@@ -0,0 +1,148 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalReplicationGroup AWS CloudFormation Resource (AWS::ElastiCache::GlobalReplicationGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html
+type GlobalReplicationGroup struct {
+
+ // AutomaticFailoverEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-automaticfailoverenabled
+ AutomaticFailoverEnabled *types.Value `json:"AutomaticFailoverEnabled,omitempty"`
+
+ // CacheNodeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-cachenodetype
+ CacheNodeType *types.Value `json:"CacheNodeType,omitempty"`
+
+ // CacheParameterGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-cacheparametergroupname
+ CacheParameterGroupName *types.Value `json:"CacheParameterGroupName,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-engineversion
+ EngineVersion *types.Value `json:"EngineVersion,omitempty"`
+
+ // GlobalNodeGroupCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-globalnodegroupcount
+ GlobalNodeGroupCount *types.Value `json:"GlobalNodeGroupCount,omitempty"`
+
+ // GlobalReplicationGroupDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupdescription
+ GlobalReplicationGroupDescription *types.Value `json:"GlobalReplicationGroupDescription,omitempty"`
+
+ // GlobalReplicationGroupIdSuffix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupidsuffix
+ GlobalReplicationGroupIdSuffix *types.Value `json:"GlobalReplicationGroupIdSuffix,omitempty"`
+
+ // Members AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-members
+ Members []GlobalReplicationGroup_GlobalReplicationGroupMember `json:"Members,omitempty"`
+
+ // RegionalConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-globalreplicationgroup.html#cfn-elasticache-globalreplicationgroup-regionalconfigurations
+ RegionalConfigurations []GlobalReplicationGroup_RegionalConfiguration `json:"RegionalConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalReplicationGroup) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::GlobalReplicationGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GlobalReplicationGroup) MarshalJSON() ([]byte, error) {
+ type Properties GlobalReplicationGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GlobalReplicationGroup) UnmarshalJSON(b []byte) error {
+ type Properties GlobalReplicationGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GlobalReplicationGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_globalreplicationgroupmember.go b/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_globalreplicationgroupmember.go
new file mode 100644
index 0000000000..de3aab0f4d
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_globalreplicationgroupmember.go
@@ -0,0 +1,47 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalReplicationGroup_GlobalReplicationGroupMember AWS CloudFormation Resource (AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html
+type GlobalReplicationGroup_GlobalReplicationGroupMember struct {
+
+ // ReplicationGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupmember-replicationgroupid
+ ReplicationGroupId *types.Value `json:"ReplicationGroupId,omitempty"`
+
+ // ReplicationGroupRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupmember-replicationgroupregion
+ ReplicationGroupRegion *types.Value `json:"ReplicationGroupRegion,omitempty"`
+
+ // Role AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-globalreplicationgroupmember.html#cfn-elasticache-globalreplicationgroup-globalreplicationgroupmember-role
+ Role *types.Value `json:"Role,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalReplicationGroup_GlobalReplicationGroupMember) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_regionalconfiguration.go b/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_regionalconfiguration.go
new file mode 100644
index 0000000000..a4bb2129c4
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_regionalconfiguration.go
@@ -0,0 +1,47 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalReplicationGroup_RegionalConfiguration AWS CloudFormation Resource (AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html
+type GlobalReplicationGroup_RegionalConfiguration struct {
+
+ // ReplicationGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-replicationgroupid
+ ReplicationGroupId *types.Value `json:"ReplicationGroupId,omitempty"`
+
+ // ReplicationGroupRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-replicationgroupregion
+ ReplicationGroupRegion *types.Value `json:"ReplicationGroupRegion,omitempty"`
+
+ // ReshardingConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-regionalconfiguration.html#cfn-elasticache-globalreplicationgroup-regionalconfiguration-reshardingconfigurations
+ ReshardingConfigurations []GlobalReplicationGroup_ReshardingConfiguration `json:"ReshardingConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalReplicationGroup_RegionalConfiguration) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_reshardingconfiguration.go b/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_reshardingconfiguration.go
new file mode 100644
index 0000000000..7ed7bf2e90
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-globalreplicationgroup_reshardingconfiguration.go
@@ -0,0 +1,42 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GlobalReplicationGroup_ReshardingConfiguration AWS CloudFormation Resource (AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html
+type GlobalReplicationGroup_ReshardingConfiguration struct {
+
+ // NodeGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html#cfn-elasticache-globalreplicationgroup-reshardingconfiguration-nodegroupid
+ NodeGroupId *types.Value `json:"NodeGroupId,omitempty"`
+
+ // PreferredAvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-globalreplicationgroup-reshardingconfiguration.html#cfn-elasticache-globalreplicationgroup-reshardingconfiguration-preferredavailabilityzones
+ PreferredAvailabilityZones *types.Value `json:"PreferredAvailabilityZones,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GlobalReplicationGroup_ReshardingConfiguration) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-parametergroup.go b/goformation/cloudformation/elasticache/aws-elasticache-parametergroup.go
new file mode 100644
index 0000000000..66d47549d3
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-parametergroup.go
@@ -0,0 +1,124 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ParameterGroup AWS CloudFormation Resource (AWS::ElastiCache::ParameterGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html
+type ParameterGroup struct {
+
+ // CacheParameterGroupFamily AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-cacheparametergroupfamily
+ CacheParameterGroupFamily *types.Value `json:"CacheParameterGroupFamily,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Properties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-properties
+ Properties map[string]*types.Value `json:"Properties,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-parameter-group.html#cfn-elasticache-parametergroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ParameterGroup) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::ParameterGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ParameterGroup) MarshalJSON() ([]byte, error) {
+ type Properties ParameterGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ParameterGroup) UnmarshalJSON(b []byte) error {
+ type Properties ParameterGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ParameterGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup.go b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup.go
new file mode 100644
index 0000000000..df8ffa140f
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup.go
@@ -0,0 +1,279 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationGroup AWS CloudFormation Resource (AWS::ElastiCache::ReplicationGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html
+type ReplicationGroup struct {
+
+ // AtRestEncryptionEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-atrestencryptionenabled
+ AtRestEncryptionEnabled *types.Value `json:"AtRestEncryptionEnabled,omitempty"`
+
+ // AuthToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-authtoken
+ AuthToken *types.Value `json:"AuthToken,omitempty"`
+
+ // AutoMinorVersionUpgrade AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-autominorversionupgrade
+ AutoMinorVersionUpgrade *types.Value `json:"AutoMinorVersionUpgrade,omitempty"`
+
+ // AutomaticFailoverEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-automaticfailoverenabled
+ AutomaticFailoverEnabled *types.Value `json:"AutomaticFailoverEnabled,omitempty"`
+
+ // CacheNodeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachenodetype
+ CacheNodeType *types.Value `json:"CacheNodeType,omitempty"`
+
+ // CacheParameterGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cacheparametergroupname
+ CacheParameterGroupName *types.Value `json:"CacheParameterGroupName,omitempty"`
+
+ // CacheSecurityGroupNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachesecuritygroupnames
+ CacheSecurityGroupNames *types.Value `json:"CacheSecurityGroupNames,omitempty"`
+
+ // CacheSubnetGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-cachesubnetgroupname
+ CacheSubnetGroupName *types.Value `json:"CacheSubnetGroupName,omitempty"`
+
+ // DataTieringEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-datatieringenabled
+ DataTieringEnabled *types.Value `json:"DataTieringEnabled,omitempty"`
+
+ // Engine AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-engine
+ Engine *types.Value `json:"Engine,omitempty"`
+
+ // EngineVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-engineversion
+ EngineVersion *types.Value `json:"EngineVersion,omitempty"`
+
+ // GlobalReplicationGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-globalreplicationgroupid
+ GlobalReplicationGroupId *types.Value `json:"GlobalReplicationGroupId,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // LogDeliveryConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-logdeliveryconfigurations
+ LogDeliveryConfigurations []ReplicationGroup_LogDeliveryConfigurationRequest `json:"LogDeliveryConfigurations,omitempty"`
+
+ // MultiAZEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-multiazenabled
+ MultiAZEnabled *types.Value `json:"MultiAZEnabled,omitempty"`
+
+ // NodeGroupConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-nodegroupconfiguration
+ NodeGroupConfiguration []ReplicationGroup_NodeGroupConfiguration `json:"NodeGroupConfiguration,omitempty"`
+
+ // NotificationTopicArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-notificationtopicarn
+ NotificationTopicArn *types.Value `json:"NotificationTopicArn,omitempty"`
+
+ // NumCacheClusters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-numcacheclusters
+ NumCacheClusters *types.Value `json:"NumCacheClusters,omitempty"`
+
+ // NumNodeGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-numnodegroups
+ NumNodeGroups *types.Value `json:"NumNodeGroups,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // PreferredCacheClusterAZs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-preferredcacheclusterazs
+ PreferredCacheClusterAZs *types.Value `json:"PreferredCacheClusterAZs,omitempty"`
+
+ // PreferredMaintenanceWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-preferredmaintenancewindow
+ PreferredMaintenanceWindow *types.Value `json:"PreferredMaintenanceWindow,omitempty"`
+
+ // PrimaryClusterId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-primaryclusterid
+ PrimaryClusterId *types.Value `json:"PrimaryClusterId,omitempty"`
+
+ // ReplicasPerNodeGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicaspernodegroup
+ ReplicasPerNodeGroup *types.Value `json:"ReplicasPerNodeGroup,omitempty"`
+
+ // ReplicationGroupDescription AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicationgroupdescription
+ ReplicationGroupDescription *types.Value `json:"ReplicationGroupDescription,omitempty"`
+
+ // ReplicationGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-replicationgroupid
+ ReplicationGroupId *types.Value `json:"ReplicationGroupId,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SnapshotArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotarns
+ SnapshotArns *types.Value `json:"SnapshotArns,omitempty"`
+
+ // SnapshotName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotname
+ SnapshotName *types.Value `json:"SnapshotName,omitempty"`
+
+ // SnapshotRetentionLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotretentionlimit
+ SnapshotRetentionLimit *types.Value `json:"SnapshotRetentionLimit,omitempty"`
+
+ // SnapshotWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshotwindow
+ SnapshotWindow *types.Value `json:"SnapshotWindow,omitempty"`
+
+ // SnapshottingClusterId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-snapshottingclusterid
+ SnapshottingClusterId *types.Value `json:"SnapshottingClusterId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TransitEncryptionEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-transitencryptionenabled
+ TransitEncryptionEnabled *types.Value `json:"TransitEncryptionEnabled,omitempty"`
+
+ // UserGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html#cfn-elasticache-replicationgroup-usergroupids
+ UserGroupIds *types.Value `json:"UserGroupIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationGroup) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::ReplicationGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReplicationGroup) MarshalJSON() ([]byte, error) {
+ type Properties ReplicationGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReplicationGroup) UnmarshalJSON(b []byte) error {
+ type Properties ReplicationGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReplicationGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_cloudwatchlogsdestinationdetails.go b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_cloudwatchlogsdestinationdetails.go
new file mode 100644
index 0000000000..be96aab9bf
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_cloudwatchlogsdestinationdetails.go
@@ -0,0 +1,37 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationGroup_CloudWatchLogsDestinationDetails AWS CloudFormation Resource (AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-cloudwatchlogsdestinationdetails.html
+type ReplicationGroup_CloudWatchLogsDestinationDetails struct {
+
+ // LogGroup AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-cloudwatchlogsdestinationdetails.html#cfn-elasticache-replicationgroup-cloudwatchlogsdestinationdetails-loggroup
+ LogGroup *types.Value `json:"LogGroup,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationGroup_CloudWatchLogsDestinationDetails) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_destinationdetails.go b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_destinationdetails.go
new file mode 100644
index 0000000000..78bf0e5930
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_destinationdetails.go
@@ -0,0 +1,40 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationGroup_DestinationDetails AWS CloudFormation Resource (AWS::ElastiCache::ReplicationGroup.DestinationDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html
+type ReplicationGroup_DestinationDetails struct {
+
+ // CloudWatchLogsDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html#cfn-elasticache-replicationgroup-destinationdetails-cloudwatchlogsdetails
+ CloudWatchLogsDetails *ReplicationGroup_CloudWatchLogsDestinationDetails `json:"CloudWatchLogsDetails,omitempty"`
+
+ // KinesisFirehoseDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-destinationdetails.html#cfn-elasticache-replicationgroup-destinationdetails-kinesisfirehosedetails
+ KinesisFirehoseDetails *ReplicationGroup_KinesisFirehoseDestinationDetails `json:"KinesisFirehoseDetails,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationGroup_DestinationDetails) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::ReplicationGroup.DestinationDetails"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_kinesisfirehosedestinationdetails.go b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_kinesisfirehosedestinationdetails.go
new file mode 100644
index 0000000000..60c2fcecfc
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_kinesisfirehosedestinationdetails.go
@@ -0,0 +1,37 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationGroup_KinesisFirehoseDestinationDetails AWS CloudFormation Resource (AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-kinesisfirehosedestinationdetails.html
+type ReplicationGroup_KinesisFirehoseDestinationDetails struct {
+
+ // DeliveryStream AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-kinesisfirehosedestinationdetails.html#cfn-elasticache-replicationgroup-kinesisfirehosedestinationdetails-deliverystream
+ DeliveryStream *types.Value `json:"DeliveryStream,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationGroup_KinesisFirehoseDestinationDetails) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_logdeliveryconfigurationrequest.go b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_logdeliveryconfigurationrequest.go
new file mode 100644
index 0000000000..af4ed5e1fa
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_logdeliveryconfigurationrequest.go
@@ -0,0 +1,52 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationGroup_LogDeliveryConfigurationRequest AWS CloudFormation Resource (AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html
+type ReplicationGroup_LogDeliveryConfigurationRequest struct {
+
+ // DestinationDetails AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html#cfn-elasticache-replicationgroup-logdeliveryconfigurationrequest-destinationdetails
+ DestinationDetails *ReplicationGroup_DestinationDetails `json:"DestinationDetails,omitempty"`
+
+ // DestinationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html#cfn-elasticache-replicationgroup-logdeliveryconfigurationrequest-destinationtype
+ DestinationType *types.Value `json:"DestinationType,omitempty"`
+
+ // LogFormat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html#cfn-elasticache-replicationgroup-logdeliveryconfigurationrequest-logformat
+ LogFormat *types.Value `json:"LogFormat,omitempty"`
+
+ // LogType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-logdeliveryconfigurationrequest.html#cfn-elasticache-replicationgroup-logdeliveryconfigurationrequest-logtype
+ LogType *types.Value `json:"LogType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationGroup_LogDeliveryConfigurationRequest) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_nodegroupconfiguration.go b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_nodegroupconfiguration.go
new file mode 100644
index 0000000000..5f2ca7907a
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-replicationgroup_nodegroupconfiguration.go
@@ -0,0 +1,57 @@
+package elasticache
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicationGroup_NodeGroupConfiguration AWS CloudFormation Resource (AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html
+type ReplicationGroup_NodeGroupConfiguration struct {
+
+ // NodeGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-nodegroupid
+ NodeGroupId *types.Value `json:"NodeGroupId,omitempty"`
+
+ // PrimaryAvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-primaryavailabilityzone
+ PrimaryAvailabilityZone *types.Value `json:"PrimaryAvailabilityZone,omitempty"`
+
+ // ReplicaAvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-replicaavailabilityzones
+ ReplicaAvailabilityZones *types.Value `json:"ReplicaAvailabilityZones,omitempty"`
+
+ // ReplicaCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-replicacount
+ ReplicaCount *types.Value `json:"ReplicaCount,omitempty"`
+
+ // Slots AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-replicationgroup-nodegroupconfiguration.html#cfn-elasticache-replicationgroup-nodegroupconfiguration-slots
+ Slots *types.Value `json:"Slots,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicationGroup_NodeGroupConfiguration) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration"
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-securitygroup.go b/goformation/cloudformation/elasticache/aws-elasticache-securitygroup.go
new file mode 100644
index 0000000000..24bf79611b
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-securitygroup.go
@@ -0,0 +1,114 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityGroup AWS CloudFormation Resource (AWS::ElastiCache::SecurityGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html
+type SecurityGroup struct {
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html#cfn-elasticache-securitygroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group.html#cfn-elasticache-securitygroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityGroup) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::SecurityGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SecurityGroup) MarshalJSON() ([]byte, error) {
+ type Properties SecurityGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SecurityGroup) UnmarshalJSON(b []byte) error {
+ type Properties SecurityGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SecurityGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-securitygroupingress.go b/goformation/cloudformation/elasticache/aws-elasticache-securitygroupingress.go
new file mode 100644
index 0000000000..b3146dd774
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-securitygroupingress.go
@@ -0,0 +1,118 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityGroupIngress AWS CloudFormation Resource (AWS::ElastiCache::SecurityGroupIngress)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html
+type SecurityGroupIngress struct {
+
+ // CacheSecurityGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-cachesecuritygroupname
+ CacheSecurityGroupName *types.Value `json:"CacheSecurityGroupName,omitempty"`
+
+ // EC2SecurityGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-ec2securitygroupname
+ EC2SecurityGroupName *types.Value `json:"EC2SecurityGroupName,omitempty"`
+
+ // EC2SecurityGroupOwnerId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-security-group-ingress.html#cfn-elasticache-securitygroupingress-ec2securitygroupownerid
+ EC2SecurityGroupOwnerId *types.Value `json:"EC2SecurityGroupOwnerId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityGroupIngress) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::SecurityGroupIngress"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SecurityGroupIngress) MarshalJSON() ([]byte, error) {
+ type Properties SecurityGroupIngress
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SecurityGroupIngress) UnmarshalJSON(b []byte) error {
+ type Properties SecurityGroupIngress
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SecurityGroupIngress(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-subnetgroup.go b/goformation/cloudformation/elasticache/aws-elasticache-subnetgroup.go
new file mode 100644
index 0000000000..4a796a8808
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-subnetgroup.go
@@ -0,0 +1,124 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubnetGroup AWS CloudFormation Resource (AWS::ElastiCache::SubnetGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html
+type SubnetGroup struct {
+
+ // CacheSubnetGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-cachesubnetgroupname
+ CacheSubnetGroupName *types.Value `json:"CacheSubnetGroupName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-subnetgroup.html#cfn-elasticache-subnetgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubnetGroup) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::SubnetGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SubnetGroup) MarshalJSON() ([]byte, error) {
+ type Properties SubnetGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SubnetGroup) UnmarshalJSON(b []byte) error {
+ type Properties SubnetGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SubnetGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-user.go b/goformation/cloudformation/elasticache/aws-elasticache-user.go
new file mode 100644
index 0000000000..d822ed300d
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-user.go
@@ -0,0 +1,133 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// User AWS CloudFormation Resource (AWS::ElastiCache::User)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html
+type User struct {
+
+ // AccessString AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-accessstring
+ AccessString *types.Value `json:"AccessString,omitempty"`
+
+ // Engine AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-engine
+ Engine *types.Value `json:"Engine,omitempty"`
+
+ // NoPasswordRequired AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-nopasswordrequired
+ NoPasswordRequired *types.Value `json:"NoPasswordRequired,omitempty"`
+
+ // Passwords AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-passwords
+ Passwords *types.Value `json:"Passwords,omitempty"`
+
+ // UserId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-userid
+ UserId *types.Value `json:"UserId,omitempty"`
+
+ // UserName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-user.html#cfn-elasticache-user-username
+ UserName *types.Value `json:"UserName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *User) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::User"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r User) MarshalJSON() ([]byte, error) {
+ type Properties User
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *User) UnmarshalJSON(b []byte) error {
+ type Properties User
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = User(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticache/aws-elasticache-usergroup.go b/goformation/cloudformation/elasticache/aws-elasticache-usergroup.go
new file mode 100644
index 0000000000..ecd5fe117f
--- /dev/null
+++ b/goformation/cloudformation/elasticache/aws-elasticache-usergroup.go
@@ -0,0 +1,118 @@
+package elasticache
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserGroup AWS CloudFormation Resource (AWS::ElastiCache::UserGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html
+type UserGroup struct {
+
+ // Engine AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html#cfn-elasticache-usergroup-engine
+ Engine *types.Value `json:"Engine,omitempty"`
+
+ // UserGroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html#cfn-elasticache-usergroup-usergroupid
+ UserGroupId *types.Value `json:"UserGroupId,omitempty"`
+
+ // UserIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-usergroup.html#cfn-elasticache-usergroup-userids
+ UserIds *types.Value `json:"UserIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserGroup) AWSCloudFormationType() string {
+ return "AWS::ElastiCache::UserGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserGroup) MarshalJSON() ([]byte, error) {
+ type Properties UserGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserGroup) UnmarshalJSON(b []byte) error {
+ type Properties UserGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application.go
new file mode 100644
index 0000000000..b969590dcb
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application.go
@@ -0,0 +1,118 @@
+package elasticbeanstalk
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html
+type Application struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html#cfn-elasticbeanstalk-application-name
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html#cfn-elasticbeanstalk-application-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // ResourceLifecycleConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk.html#cfn-elasticbeanstalk-application-resourcelifecycleconfig
+ ResourceLifecycleConfig *Application_ApplicationResourceLifecycleConfig `json:"ResourceLifecycleConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::Application"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Application) MarshalJSON() ([]byte, error) {
+ type Properties Application
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Application) UnmarshalJSON(b []byte) error {
+ type Properties Application
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Application(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go
new file mode 100644
index 0000000000..de43c7c21f
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_applicationresourcelifecycleconfig.go
@@ -0,0 +1,42 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ApplicationResourceLifecycleConfig AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html
+type Application_ApplicationResourceLifecycleConfig struct {
+
+ // ServiceRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html#cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-servicerole
+ ServiceRole *types.Value `json:"ServiceRole,omitempty"`
+
+ // VersionLifecycleConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationresourcelifecycleconfig.html#cfn-elasticbeanstalk-application-applicationresourcelifecycleconfig-versionlifecycleconfig
+ VersionLifecycleConfig *Application_ApplicationVersionLifecycleConfig `json:"VersionLifecycleConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ApplicationResourceLifecycleConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig"
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go
new file mode 100644
index 0000000000..7f8f55ed7f
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_applicationversionlifecycleconfig.go
@@ -0,0 +1,40 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ApplicationVersionLifecycleConfig AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html
+type Application_ApplicationVersionLifecycleConfig struct {
+
+ // MaxAgeRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html#cfn-elasticbeanstalk-application-applicationversionlifecycleconfig-maxagerule
+ MaxAgeRule *Application_MaxAgeRule `json:"MaxAgeRule,omitempty"`
+
+ // MaxCountRule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-applicationversionlifecycleconfig.html#cfn-elasticbeanstalk-application-applicationversionlifecycleconfig-maxcountrule
+ MaxCountRule *Application_MaxCountRule `json:"MaxCountRule,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ApplicationVersionLifecycleConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig"
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_maxagerule.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_maxagerule.go
new file mode 100644
index 0000000000..d0c8a2432c
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_maxagerule.go
@@ -0,0 +1,47 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_MaxAgeRule AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application.MaxAgeRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html
+type Application_MaxAgeRule struct {
+
+ // DeleteSourceFromS3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-deletesourcefroms3
+ DeleteSourceFromS3 *types.Value `json:"DeleteSourceFromS3,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // MaxAgeInDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-maxageindays
+ MaxAgeInDays *types.Value `json:"MaxAgeInDays,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_MaxAgeRule) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::Application.MaxAgeRule"
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_maxcountrule.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_maxcountrule.go
new file mode 100644
index 0000000000..62d36c32a6
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-application_maxcountrule.go
@@ -0,0 +1,47 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_MaxCountRule AWS CloudFormation Resource (AWS::ElasticBeanstalk::Application.MaxCountRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html
+type Application_MaxCountRule struct {
+
+ // DeleteSourceFromS3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-deletesourcefroms3
+ DeleteSourceFromS3 *types.Value `json:"DeleteSourceFromS3,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // MaxCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxcountrule.html#cfn-elasticbeanstalk-application-maxcountrule-maxcount
+ MaxCount *types.Value `json:"MaxCount,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_MaxCountRule) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::Application.MaxCountRule"
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-applicationversion.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-applicationversion.go
new file mode 100644
index 0000000000..742a5c19a9
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-applicationversion.go
@@ -0,0 +1,118 @@
+package elasticbeanstalk
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationVersion AWS CloudFormation Resource (AWS::ElasticBeanstalk::ApplicationVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html
+type ApplicationVersion struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html#cfn-elasticbeanstalk-applicationversion-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html#cfn-elasticbeanstalk-applicationversion-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // SourceBundle AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-version.html#cfn-elasticbeanstalk-applicationversion-sourcebundle
+ SourceBundle *ApplicationVersion_SourceBundle `json:"SourceBundle,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationVersion) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::ApplicationVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApplicationVersion) MarshalJSON() ([]byte, error) {
+ type Properties ApplicationVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApplicationVersion) UnmarshalJSON(b []byte) error {
+ type Properties ApplicationVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApplicationVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-applicationversion_sourcebundle.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-applicationversion_sourcebundle.go
new file mode 100644
index 0000000000..461c617700
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-applicationversion_sourcebundle.go
@@ -0,0 +1,42 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationVersion_SourceBundle AWS CloudFormation Resource (AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html
+type ApplicationVersion_SourceBundle struct {
+
+ // S3Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html#cfn-beanstalk-sourcebundle-s3bucket
+ S3Bucket *types.Value `json:"S3Bucket,omitempty"`
+
+ // S3Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-sourcebundle.html#cfn-beanstalk-sourcebundle-s3key
+ S3Key *types.Value `json:"S3Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationVersion_SourceBundle) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle"
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate.go
new file mode 100644
index 0000000000..ac24b0d0d5
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate.go
@@ -0,0 +1,138 @@
+package elasticbeanstalk
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationTemplate AWS CloudFormation Resource (AWS::ElasticBeanstalk::ConfigurationTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html
+type ConfigurationTemplate struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EnvironmentId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-environmentid
+ EnvironmentId *types.Value `json:"EnvironmentId,omitempty"`
+
+ // OptionSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-optionsettings
+ OptionSettings []ConfigurationTemplate_ConfigurationOptionSetting `json:"OptionSettings,omitempty"`
+
+ // PlatformArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-platformarn
+ PlatformArn *types.Value `json:"PlatformArn,omitempty"`
+
+ // SolutionStackName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-solutionstackname
+ SolutionStackName *types.Value `json:"SolutionStackName,omitempty"`
+
+ // SourceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticbeanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration
+ SourceConfiguration *ConfigurationTemplate_SourceConfiguration `json:"SourceConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationTemplate) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::ConfigurationTemplate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConfigurationTemplate) MarshalJSON() ([]byte, error) {
+ type Properties ConfigurationTemplate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConfigurationTemplate) UnmarshalJSON(b []byte) error {
+ type Properties ConfigurationTemplate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConfigurationTemplate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go
new file mode 100644
index 0000000000..43eb6b96aa
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate_configurationoptionsetting.go
@@ -0,0 +1,52 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationTemplate_ConfigurationOptionSetting AWS CloudFormation Resource (AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html
+type ConfigurationTemplate_ConfigurationOptionSetting struct {
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // OptionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-optionname
+ OptionName *types.Value `json:"OptionName,omitempty"`
+
+ // ResourceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-resourcename
+ ResourceName *types.Value `json:"ResourceName,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-configurationoptionsetting.html#cfn-elasticbeanstalk-configurationtemplate-configurationoptionsetting-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationTemplate_ConfigurationOptionSetting) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting"
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go
new file mode 100644
index 0000000000..fe880215e2
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-configurationtemplate_sourceconfiguration.go
@@ -0,0 +1,42 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConfigurationTemplate_SourceConfiguration AWS CloudFormation Resource (AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html
+type ConfigurationTemplate_SourceConfiguration struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // TemplateName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-configurationtemplate-sourceconfiguration.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration-templatename
+ TemplateName *types.Value `json:"TemplateName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConfigurationTemplate_SourceConfiguration) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration"
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment.go
new file mode 100644
index 0000000000..82f37e4bc5
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment.go
@@ -0,0 +1,164 @@
+package elasticbeanstalk
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment AWS CloudFormation Resource (AWS::ElasticBeanstalk::Environment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html
+type Environment struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // CNAMEPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-cnameprefix
+ CNAMEPrefix *types.Value `json:"CNAMEPrefix,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EnvironmentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-name
+ EnvironmentName *types.Value `json:"EnvironmentName,omitempty"`
+
+ // OperationsRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-operations-role
+ OperationsRole *types.Value `json:"OperationsRole,omitempty"`
+
+ // OptionSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-optionsettings
+ OptionSettings []Environment_OptionSetting `json:"OptionSettings,omitempty"`
+
+ // PlatformArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-platformarn
+ PlatformArn *types.Value `json:"PlatformArn,omitempty"`
+
+ // SolutionStackName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-solutionstackname
+ SolutionStackName *types.Value `json:"SolutionStackName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-elasticbeanstalk-environment-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-templatename
+ TemplateName *types.Value `json:"TemplateName,omitempty"`
+
+ // Tier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-tier
+ Tier *Environment_Tier `json:"Tier,omitempty"`
+
+ // VersionLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html#cfn-beanstalk-environment-versionlabel
+ VersionLabel *types.Value `json:"VersionLabel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::Environment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Environment) MarshalJSON() ([]byte, error) {
+ type Properties Environment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Environment) UnmarshalJSON(b []byte) error {
+ type Properties Environment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Environment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment_optionsetting.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment_optionsetting.go
new file mode 100644
index 0000000000..d6f8dbb20b
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment_optionsetting.go
@@ -0,0 +1,52 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment_OptionSetting AWS CloudFormation Resource (AWS::ElasticBeanstalk::Environment.OptionSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html
+type Environment_OptionSetting struct {
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html#cfn-beanstalk-optionsettings-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // OptionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html#cfn-beanstalk-optionsettings-optionname
+ OptionName *types.Value `json:"OptionName,omitempty"`
+
+ // ResourceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html#cfn-elasticbeanstalk-environment-optionsetting-resourcename
+ ResourceName *types.Value `json:"ResourceName,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-option-settings.html#cfn-beanstalk-optionsettings-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment_OptionSetting) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::Environment.OptionSetting"
+}
diff --git a/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment_tier.go b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment_tier.go
new file mode 100644
index 0000000000..660b64786f
--- /dev/null
+++ b/goformation/cloudformation/elasticbeanstalk/aws-elasticbeanstalk-environment_tier.go
@@ -0,0 +1,47 @@
+package elasticbeanstalk
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment_Tier AWS CloudFormation Resource (AWS::ElasticBeanstalk::Environment.Tier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html
+type Environment_Tier struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html#cfn-beanstalk-env-tier-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html#cfn-beanstalk-env-tier-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment-tier.html#cfn-beanstalk-env-tier-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment_Tier) AWSCloudFormationType() string {
+ return "AWS::ElasticBeanstalk::Environment.Tier"
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer.go
new file mode 100644
index 0000000000..69fc23f496
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer.go
@@ -0,0 +1,184 @@
+package elasticloadbalancing
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html
+type LoadBalancer struct {
+
+ // AccessLoggingPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-accessloggingpolicy
+ AccessLoggingPolicy *LoadBalancer_AccessLoggingPolicy `json:"AccessLoggingPolicy,omitempty"`
+
+ // AppCookieStickinessPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-appcookiestickinesspolicy
+ AppCookieStickinessPolicy []LoadBalancer_AppCookieStickinessPolicy `json:"AppCookieStickinessPolicy,omitempty"`
+
+ // AvailabilityZones AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-availabilityzones
+ AvailabilityZones *types.Value `json:"AvailabilityZones,omitempty"`
+
+ // ConnectionDrainingPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-connectiondrainingpolicy
+ ConnectionDrainingPolicy *LoadBalancer_ConnectionDrainingPolicy `json:"ConnectionDrainingPolicy,omitempty"`
+
+ // ConnectionSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-connectionsettings
+ ConnectionSettings *LoadBalancer_ConnectionSettings `json:"ConnectionSettings,omitempty"`
+
+ // CrossZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-crosszone
+ CrossZone *types.Value `json:"CrossZone,omitempty"`
+
+ // HealthCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-healthcheck
+ HealthCheck *LoadBalancer_HealthCheck `json:"HealthCheck,omitempty"`
+
+ // Instances AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-instances
+ Instances *types.Value `json:"Instances,omitempty"`
+
+ // LBCookieStickinessPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-lbcookiestickinesspolicy
+ LBCookieStickinessPolicy []LoadBalancer_LBCookieStickinessPolicy `json:"LBCookieStickinessPolicy,omitempty"`
+
+ // Listeners AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-listeners
+ Listeners []LoadBalancer_Listeners `json:"Listeners,omitempty"`
+
+ // LoadBalancerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-elbname
+ LoadBalancerName *types.Value `json:"LoadBalancerName,omitempty"`
+
+ // Policies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-policies
+ Policies []LoadBalancer_Policies `json:"Policies,omitempty"`
+
+ // Scheme AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-scheme
+ Scheme *types.Value `json:"Scheme,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-elasticloadbalancing-loadbalancer-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LoadBalancer) MarshalJSON() ([]byte, error) {
+ type Properties LoadBalancer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LoadBalancer) UnmarshalJSON(b []byte) error {
+ type Properties LoadBalancer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LoadBalancer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go
new file mode 100644
index 0000000000..060048b774
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_accessloggingpolicy.go
@@ -0,0 +1,52 @@
+package elasticloadbalancing
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_AccessLoggingPolicy AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html
+type LoadBalancer_AccessLoggingPolicy struct {
+
+ // EmitInterval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html#cfn-elb-accessloggingpolicy-emitinterval
+ EmitInterval *types.Value `json:"EmitInterval,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html#cfn-elb-accessloggingpolicy-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // S3BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html#cfn-elb-accessloggingpolicy-s3bucketname
+ S3BucketName *types.Value `json:"S3BucketName,omitempty"`
+
+ // S3BucketPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html#cfn-elb-accessloggingpolicy-s3bucketprefix
+ S3BucketPrefix *types.Value `json:"S3BucketPrefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_AccessLoggingPolicy) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy"
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go
new file mode 100644
index 0000000000..2e0efcacbd
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_appcookiestickinesspolicy.go
@@ -0,0 +1,42 @@
+package elasticloadbalancing
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_AppCookieStickinessPolicy AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html
+type LoadBalancer_AppCookieStickinessPolicy struct {
+
+ // CookieName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html#cfn-elb-appcookiestickinesspolicy-cookiename
+ CookieName *types.Value `json:"CookieName,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-AppCookieStickinessPolicy.html#cfn-elb-appcookiestickinesspolicy-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_AppCookieStickinessPolicy) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy"
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go
new file mode 100644
index 0000000000..cc00f0aff3
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_connectiondrainingpolicy.go
@@ -0,0 +1,42 @@
+package elasticloadbalancing
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_ConnectionDrainingPolicy AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html
+type LoadBalancer_ConnectionDrainingPolicy struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html#cfn-elb-connectiondrainingpolicy-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html#cfn-elb-connectiondrainingpolicy-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_ConnectionDrainingPolicy) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy"
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_connectionsettings.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_connectionsettings.go
new file mode 100644
index 0000000000..7809415efa
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_connectionsettings.go
@@ -0,0 +1,37 @@
+package elasticloadbalancing
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_ConnectionSettings AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html
+type LoadBalancer_ConnectionSettings struct {
+
+ // IdleTimeout AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html#cfn-elb-connectionsettings-idletimeout
+ IdleTimeout *types.Value `json:"IdleTimeout"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_ConnectionSettings) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings"
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_healthcheck.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_healthcheck.go
new file mode 100644
index 0000000000..49a9cf2e55
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_healthcheck.go
@@ -0,0 +1,57 @@
+package elasticloadbalancing
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_HealthCheck AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html
+type LoadBalancer_HealthCheck struct {
+
+ // HealthyThreshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-healthythreshold
+ HealthyThreshold *types.Value `json:"HealthyThreshold,omitempty"`
+
+ // Interval AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // UnhealthyThreshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html#cfn-elb-healthcheck-unhealthythreshold
+ UnhealthyThreshold *types.Value `json:"UnhealthyThreshold,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_HealthCheck) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck"
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go
new file mode 100644
index 0000000000..bb09b81703
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_lbcookiestickinesspolicy.go
@@ -0,0 +1,42 @@
+package elasticloadbalancing
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_LBCookieStickinessPolicy AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html
+type LoadBalancer_LBCookieStickinessPolicy struct {
+
+ // CookieExpirationPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html#cfn-elb-lbcookiestickinesspolicy-cookieexpirationperiod
+ CookieExpirationPeriod *types.Value `json:"CookieExpirationPeriod,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-LBCookieStickinessPolicy.html#cfn-elb-lbcookiestickinesspolicy-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_LBCookieStickinessPolicy) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy"
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_listeners.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_listeners.go
new file mode 100644
index 0000000000..7ae1e59e70
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_listeners.go
@@ -0,0 +1,62 @@
+package elasticloadbalancing
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_Listeners AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.Listeners)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html
+type LoadBalancer_Listeners struct {
+
+ // InstancePort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-instanceport
+ InstancePort *types.Value `json:"InstancePort,omitempty"`
+
+ // InstanceProtocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-instanceprotocol
+ InstanceProtocol *types.Value `json:"InstanceProtocol,omitempty"`
+
+ // LoadBalancerPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-loadbalancerport
+ LoadBalancerPort *types.Value `json:"LoadBalancerPort,omitempty"`
+
+ // PolicyNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-policynames
+ PolicyNames *types.Value `json:"PolicyNames,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // SSLCertificateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-listener.html#cfn-ec2-elb-listener-sslcertificateid
+ SSLCertificateId *types.Value `json:"SSLCertificateId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_Listeners) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer.Listeners"
+}
diff --git a/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_policies.go b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_policies.go
new file mode 100644
index 0000000000..fd9cb549ed
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancing/aws-elasticloadbalancing-loadbalancer_policies.go
@@ -0,0 +1,57 @@
+package elasticloadbalancing
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_Policies AWS CloudFormation Resource (AWS::ElasticLoadBalancing::LoadBalancer.Policies)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html
+type LoadBalancer_Policies struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-attributes
+ Attributes []interface{} `json:"Attributes,omitempty"`
+
+ // InstancePorts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-instanceports
+ InstancePorts *types.Value `json:"InstancePorts,omitempty"`
+
+ // LoadBalancerPorts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-loadbalancerports
+ LoadBalancerPorts *types.Value `json:"LoadBalancerPorts,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // PolicyType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-policy.html#cfn-ec2-elb-policy-policytype
+ PolicyType *types.Value `json:"PolicyType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_Policies) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancing::LoadBalancer.Policies"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener.go
new file mode 100644
index 0000000000..35e129143e
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener.go
@@ -0,0 +1,138 @@
+package elasticloadbalancingv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html
+type Listener struct {
+
+ // AlpnPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-alpnpolicy
+ AlpnPolicy *types.Value `json:"AlpnPolicy,omitempty"`
+
+ // Certificates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-certificates
+ Certificates []Listener_Certificate `json:"Certificates,omitempty"`
+
+ // DefaultActions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-defaultactions
+ DefaultActions []Listener_Action `json:"DefaultActions,omitempty"`
+
+ // LoadBalancerArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-loadbalancerarn
+ LoadBalancerArn *types.Value `json:"LoadBalancerArn,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // SslPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-sslpolicy
+ SslPolicy *types.Value `json:"SslPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Listener) MarshalJSON() ([]byte, error) {
+ type Properties Listener
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Listener) UnmarshalJSON(b []byte) error {
+ type Properties Listener
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Listener(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_action.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_action.go
new file mode 100644
index 0000000000..db94dba6a5
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_action.go
@@ -0,0 +1,72 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_Action AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html
+type Listener_Action struct {
+
+ // AuthenticateCognitoConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-authenticatecognitoconfig
+ AuthenticateCognitoConfig *Listener_AuthenticateCognitoConfig `json:"AuthenticateCognitoConfig,omitempty"`
+
+ // AuthenticateOidcConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-authenticateoidcconfig
+ AuthenticateOidcConfig *Listener_AuthenticateOidcConfig `json:"AuthenticateOidcConfig,omitempty"`
+
+ // FixedResponseConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-fixedresponseconfig
+ FixedResponseConfig *Listener_FixedResponseConfig `json:"FixedResponseConfig,omitempty"`
+
+ // ForwardConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-forwardconfig
+ ForwardConfig *Listener_ForwardConfig `json:"ForwardConfig,omitempty"`
+
+ // Order AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-order
+ Order *types.Value `json:"Order,omitempty"`
+
+ // RedirectConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-redirectconfig
+ RedirectConfig *Listener_RedirectConfig `json:"RedirectConfig,omitempty"`
+
+ // TargetGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-targetgrouparn
+ TargetGroupArn *types.Value `json:"TargetGroupArn,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-action.html#cfn-elasticloadbalancingv2-listener-action-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_Action) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.Action"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go
new file mode 100644
index 0000000000..5a1cbb3c24
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticatecognitoconfig.go
@@ -0,0 +1,72 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_AuthenticateCognitoConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html
+type Listener_AuthenticateCognitoConfig struct {
+
+ // AuthenticationRequestExtraParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-authenticationrequestextraparams
+ AuthenticationRequestExtraParams map[string]*types.Value `json:"AuthenticationRequestExtraParams,omitempty"`
+
+ // OnUnauthenticatedRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-onunauthenticatedrequest
+ OnUnauthenticatedRequest *types.Value `json:"OnUnauthenticatedRequest,omitempty"`
+
+ // Scope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-scope
+ Scope *types.Value `json:"Scope,omitempty"`
+
+ // SessionCookieName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-sessioncookiename
+ SessionCookieName *types.Value `json:"SessionCookieName,omitempty"`
+
+ // SessionTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-sessiontimeout
+ SessionTimeout *types.Value `json:"SessionTimeout,omitempty"`
+
+ // UserPoolArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-userpoolarn
+ UserPoolArn *types.Value `json:"UserPoolArn,omitempty"`
+
+ // UserPoolClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-userpoolclientid
+ UserPoolClientId *types.Value `json:"UserPoolClientId,omitempty"`
+
+ // UserPoolDomain AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listener-authenticatecognitoconfig-userpooldomain
+ UserPoolDomain *types.Value `json:"UserPoolDomain,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_AuthenticateCognitoConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go
new file mode 100644
index 0000000000..7c0364a635
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_authenticateoidcconfig.go
@@ -0,0 +1,87 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_AuthenticateOidcConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html
+type Listener_AuthenticateOidcConfig struct {
+
+ // AuthenticationRequestExtraParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-authenticationrequestextraparams
+ AuthenticationRequestExtraParams map[string]*types.Value `json:"AuthenticationRequestExtraParams,omitempty"`
+
+ // AuthorizationEndpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-authorizationendpoint
+ AuthorizationEndpoint *types.Value `json:"AuthorizationEndpoint,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // ClientSecret AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-clientsecret
+ ClientSecret *types.Value `json:"ClientSecret,omitempty"`
+
+ // Issuer AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-issuer
+ Issuer *types.Value `json:"Issuer,omitempty"`
+
+ // OnUnauthenticatedRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-onunauthenticatedrequest
+ OnUnauthenticatedRequest *types.Value `json:"OnUnauthenticatedRequest,omitempty"`
+
+ // Scope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-scope
+ Scope *types.Value `json:"Scope,omitempty"`
+
+ // SessionCookieName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-sessioncookiename
+ SessionCookieName *types.Value `json:"SessionCookieName,omitempty"`
+
+ // SessionTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-sessiontimeout
+ SessionTimeout *types.Value `json:"SessionTimeout,omitempty"`
+
+ // TokenEndpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-tokenendpoint
+ TokenEndpoint *types.Value `json:"TokenEndpoint,omitempty"`
+
+ // UserInfoEndpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listener-authenticateoidcconfig-userinfoendpoint
+ UserInfoEndpoint *types.Value `json:"UserInfoEndpoint,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_AuthenticateOidcConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_certificate.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_certificate.go
new file mode 100644
index 0000000000..3d4cbeebf2
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_certificate.go
@@ -0,0 +1,37 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_Certificate AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.Certificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificate.html
+type Listener_Certificate struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificate.html#cfn-elasticloadbalancingv2-listener-certificate-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_Certificate) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.Certificate"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go
new file mode 100644
index 0000000000..9a8d84ac6a
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_fixedresponseconfig.go
@@ -0,0 +1,47 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_FixedResponseConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-fixedresponseconfig.html
+type Listener_FixedResponseConfig struct {
+
+ // ContentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-fixedresponseconfig.html#cfn-elasticloadbalancingv2-listener-fixedresponseconfig-contenttype
+ ContentType *types.Value `json:"ContentType,omitempty"`
+
+ // MessageBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-fixedresponseconfig.html#cfn-elasticloadbalancingv2-listener-fixedresponseconfig-messagebody
+ MessageBody *types.Value `json:"MessageBody,omitempty"`
+
+ // StatusCode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-fixedresponseconfig.html#cfn-elasticloadbalancingv2-listener-fixedresponseconfig-statuscode
+ StatusCode *types.Value `json:"StatusCode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_FixedResponseConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_forwardconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_forwardconfig.go
new file mode 100644
index 0000000000..0fae0b040b
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_forwardconfig.go
@@ -0,0 +1,40 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_ForwardConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.ForwardConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-forwardconfig.html
+type Listener_ForwardConfig struct {
+
+ // TargetGroupStickinessConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-forwardconfig.html#cfn-elasticloadbalancingv2-listener-forwardconfig-targetgroupstickinessconfig
+ TargetGroupStickinessConfig *Listener_TargetGroupStickinessConfig `json:"TargetGroupStickinessConfig,omitempty"`
+
+ // TargetGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-forwardconfig.html#cfn-elasticloadbalancingv2-listener-forwardconfig-targetgroups
+ TargetGroups []Listener_TargetGroupTuple `json:"TargetGroups,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_ForwardConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.ForwardConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_redirectconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_redirectconfig.go
new file mode 100644
index 0000000000..a5f723b2b8
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_redirectconfig.go
@@ -0,0 +1,62 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_RedirectConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.RedirectConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html
+type Listener_RedirectConfig struct {
+
+ // Host AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html#cfn-elasticloadbalancingv2-listener-redirectconfig-host
+ Host *types.Value `json:"Host,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html#cfn-elasticloadbalancingv2-listener-redirectconfig-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html#cfn-elasticloadbalancingv2-listener-redirectconfig-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html#cfn-elasticloadbalancingv2-listener-redirectconfig-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // Query AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html#cfn-elasticloadbalancingv2-listener-redirectconfig-query
+ Query *types.Value `json:"Query,omitempty"`
+
+ // StatusCode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-redirectconfig.html#cfn-elasticloadbalancingv2-listener-redirectconfig-statuscode
+ StatusCode *types.Value `json:"StatusCode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_RedirectConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_targetgroupstickinessconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_targetgroupstickinessconfig.go
new file mode 100644
index 0000000000..848a2cc400
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_targetgroupstickinessconfig.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_TargetGroupStickinessConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgroupstickinessconfig.html
+type Listener_TargetGroupStickinessConfig struct {
+
+ // DurationSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgroupstickinessconfig.html#cfn-elasticloadbalancingv2-listener-targetgroupstickinessconfig-durationseconds
+ DurationSeconds *types.Value `json:"DurationSeconds,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgroupstickinessconfig.html#cfn-elasticloadbalancingv2-listener-targetgroupstickinessconfig-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_TargetGroupStickinessConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_targetgrouptuple.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_targetgrouptuple.go
new file mode 100644
index 0000000000..83988d355c
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listener_targetgrouptuple.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_TargetGroupTuple AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgrouptuple.html
+type Listener_TargetGroupTuple struct {
+
+ // TargetGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgrouptuple.html#cfn-elasticloadbalancingv2-listener-targetgrouptuple-targetgrouparn
+ TargetGroupArn *types.Value `json:"TargetGroupArn,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgrouptuple.html#cfn-elasticloadbalancingv2-listener-targetgrouptuple-weight
+ Weight *types.Value `json:"Weight,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_TargetGroupTuple) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenercertificate.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenercertificate.go
new file mode 100644
index 0000000000..75d556c70c
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenercertificate.go
@@ -0,0 +1,113 @@
+package elasticloadbalancingv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerCertificate AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html
+type ListenerCertificate struct {
+
+ // Certificates AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html#cfn-elasticloadbalancingv2-listenercertificate-certificates
+ Certificates []ListenerCertificate_Certificate `json:"Certificates,omitempty"`
+
+ // ListenerArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html#cfn-elasticloadbalancingv2-listenercertificate-listenerarn
+ ListenerArn *types.Value `json:"ListenerArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerCertificate) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerCertificate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ListenerCertificate) MarshalJSON() ([]byte, error) {
+ type Properties ListenerCertificate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ListenerCertificate) UnmarshalJSON(b []byte) error {
+ type Properties ListenerCertificate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ListenerCertificate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenercertificate_certificate.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenercertificate_certificate.go
new file mode 100644
index 0000000000..4a15d6b3e7
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenercertificate_certificate.go
@@ -0,0 +1,37 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerCertificate_Certificate AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html
+type ListenerCertificate_Certificate struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-certificates.html#cfn-elasticloadbalancingv2-listener-certificates-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerCertificate_Certificate) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule.go
new file mode 100644
index 0000000000..9dced982ec
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule.go
@@ -0,0 +1,123 @@
+package elasticloadbalancingv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html
+type ListenerRule struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html#cfn-elasticloadbalancingv2-listenerrule-actions
+ Actions []ListenerRule_Action `json:"Actions,omitempty"`
+
+ // Conditions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html#cfn-elasticloadbalancingv2-listenerrule-conditions
+ Conditions []ListenerRule_RuleCondition `json:"Conditions,omitempty"`
+
+ // ListenerArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html#cfn-elasticloadbalancingv2-listenerrule-listenerarn
+ ListenerArn *types.Value `json:"ListenerArn,omitempty"`
+
+ // Priority AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenerrule.html#cfn-elasticloadbalancingv2-listenerrule-priority
+ Priority *types.Value `json:"Priority"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ListenerRule) MarshalJSON() ([]byte, error) {
+ type Properties ListenerRule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ListenerRule) UnmarshalJSON(b []byte) error {
+ type Properties ListenerRule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ListenerRule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_action.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_action.go
new file mode 100644
index 0000000000..136d62498d
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_action.go
@@ -0,0 +1,72 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_Action AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html
+type ListenerRule_Action struct {
+
+ // AuthenticateCognitoConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html#cfn-elasticloadbalancingv2-listenerrule-action-authenticatecognitoconfig
+ AuthenticateCognitoConfig *ListenerRule_AuthenticateCognitoConfig `json:"AuthenticateCognitoConfig,omitempty"`
+
+ // AuthenticateOidcConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html#cfn-elasticloadbalancingv2-listenerrule-action-authenticateoidcconfig
+ AuthenticateOidcConfig *ListenerRule_AuthenticateOidcConfig `json:"AuthenticateOidcConfig,omitempty"`
+
+ // FixedResponseConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html#cfn-elasticloadbalancingv2-listenerrule-action-fixedresponseconfig
+ FixedResponseConfig *ListenerRule_FixedResponseConfig `json:"FixedResponseConfig,omitempty"`
+
+ // ForwardConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html#cfn-elasticloadbalancingv2-listenerrule-action-forwardconfig
+ ForwardConfig *ListenerRule_ForwardConfig `json:"ForwardConfig,omitempty"`
+
+ // Order AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html#cfn-elasticloadbalancingv2-listenerrule-action-order
+ Order *types.Value `json:"Order,omitempty"`
+
+ // RedirectConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html#cfn-elasticloadbalancingv2-listenerrule-action-redirectconfig
+ RedirectConfig *ListenerRule_RedirectConfig `json:"RedirectConfig,omitempty"`
+
+ // TargetGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html#cfn-elasticloadbalancingv2-listenerrule-action-targetgrouparn
+ TargetGroupArn *types.Value `json:"TargetGroupArn,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-action.html#cfn-elasticloadbalancingv2-listenerrule-action-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_Action) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.Action"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go
new file mode 100644
index 0000000000..f9cb2cd358
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_authenticatecognitoconfig.go
@@ -0,0 +1,72 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_AuthenticateCognitoConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html
+type ListenerRule_AuthenticateCognitoConfig struct {
+
+ // AuthenticationRequestExtraParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig-authenticationrequestextraparams
+ AuthenticationRequestExtraParams map[string]*types.Value `json:"AuthenticationRequestExtraParams,omitempty"`
+
+ // OnUnauthenticatedRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig-onunauthenticatedrequest
+ OnUnauthenticatedRequest *types.Value `json:"OnUnauthenticatedRequest,omitempty"`
+
+ // Scope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig-scope
+ Scope *types.Value `json:"Scope,omitempty"`
+
+ // SessionCookieName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig-sessioncookiename
+ SessionCookieName *types.Value `json:"SessionCookieName,omitempty"`
+
+ // SessionTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig-sessiontimeout
+ SessionTimeout *types.Value `json:"SessionTimeout,omitempty"`
+
+ // UserPoolArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig-userpoolarn
+ UserPoolArn *types.Value `json:"UserPoolArn,omitempty"`
+
+ // UserPoolClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig-userpoolclientid
+ UserPoolClientId *types.Value `json:"UserPoolClientId,omitempty"`
+
+ // UserPoolDomain AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticatecognitoconfig-userpooldomain
+ UserPoolDomain *types.Value `json:"UserPoolDomain,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_AuthenticateCognitoConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go
new file mode 100644
index 0000000000..7bd99a7b7d
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_authenticateoidcconfig.go
@@ -0,0 +1,92 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_AuthenticateOidcConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html
+type ListenerRule_AuthenticateOidcConfig struct {
+
+ // AuthenticationRequestExtraParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-authenticationrequestextraparams
+ AuthenticationRequestExtraParams map[string]*types.Value `json:"AuthenticationRequestExtraParams,omitempty"`
+
+ // AuthorizationEndpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-authorizationendpoint
+ AuthorizationEndpoint *types.Value `json:"AuthorizationEndpoint,omitempty"`
+
+ // ClientId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-clientid
+ ClientId *types.Value `json:"ClientId,omitempty"`
+
+ // ClientSecret AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-clientsecret
+ ClientSecret *types.Value `json:"ClientSecret,omitempty"`
+
+ // Issuer AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-issuer
+ Issuer *types.Value `json:"Issuer,omitempty"`
+
+ // OnUnauthenticatedRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-onunauthenticatedrequest
+ OnUnauthenticatedRequest *types.Value `json:"OnUnauthenticatedRequest,omitempty"`
+
+ // Scope AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-scope
+ Scope *types.Value `json:"Scope,omitempty"`
+
+ // SessionCookieName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-sessioncookiename
+ SessionCookieName *types.Value `json:"SessionCookieName,omitempty"`
+
+ // SessionTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-sessiontimeout
+ SessionTimeout *types.Value `json:"SessionTimeout,omitempty"`
+
+ // TokenEndpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-tokenendpoint
+ TokenEndpoint *types.Value `json:"TokenEndpoint,omitempty"`
+
+ // UseExistingClientSecret AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-useexistingclientsecret
+ UseExistingClientSecret *types.Value `json:"UseExistingClientSecret,omitempty"`
+
+ // UserInfoEndpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-authenticateoidcconfig.html#cfn-elasticloadbalancingv2-listenerrule-authenticateoidcconfig-userinfoendpoint
+ UserInfoEndpoint *types.Value `json:"UserInfoEndpoint,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_AuthenticateOidcConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go
new file mode 100644
index 0000000000..56790d7d10
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_fixedresponseconfig.go
@@ -0,0 +1,47 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_FixedResponseConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-fixedresponseconfig.html
+type ListenerRule_FixedResponseConfig struct {
+
+ // ContentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-fixedresponseconfig.html#cfn-elasticloadbalancingv2-listenerrule-fixedresponseconfig-contenttype
+ ContentType *types.Value `json:"ContentType,omitempty"`
+
+ // MessageBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-fixedresponseconfig.html#cfn-elasticloadbalancingv2-listenerrule-fixedresponseconfig-messagebody
+ MessageBody *types.Value `json:"MessageBody,omitempty"`
+
+ // StatusCode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-fixedresponseconfig.html#cfn-elasticloadbalancingv2-listenerrule-fixedresponseconfig-statuscode
+ StatusCode *types.Value `json:"StatusCode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_FixedResponseConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_forwardconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_forwardconfig.go
new file mode 100644
index 0000000000..91f8fe4374
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_forwardconfig.go
@@ -0,0 +1,40 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_ForwardConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-forwardconfig.html
+type ListenerRule_ForwardConfig struct {
+
+ // TargetGroupStickinessConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-forwardconfig.html#cfn-elasticloadbalancingv2-listenerrule-forwardconfig-targetgroupstickinessconfig
+ TargetGroupStickinessConfig *ListenerRule_TargetGroupStickinessConfig `json:"TargetGroupStickinessConfig,omitempty"`
+
+ // TargetGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-forwardconfig.html#cfn-elasticloadbalancingv2-listenerrule-forwardconfig-targetgroups
+ TargetGroups []ListenerRule_TargetGroupTuple `json:"TargetGroups,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_ForwardConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_hostheaderconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_hostheaderconfig.go
new file mode 100644
index 0000000000..515f13991e
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_hostheaderconfig.go
@@ -0,0 +1,37 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_HostHeaderConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-hostheaderconfig.html
+type ListenerRule_HostHeaderConfig struct {
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-hostheaderconfig.html#cfn-elasticloadbalancingv2-listenerrule-hostheaderconfig-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_HostHeaderConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_httpheaderconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_httpheaderconfig.go
new file mode 100644
index 0000000000..c23d1a87da
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_httpheaderconfig.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_HttpHeaderConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httpheaderconfig.html
+type ListenerRule_HttpHeaderConfig struct {
+
+ // HttpHeaderName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httpheaderconfig.html#cfn-elasticloadbalancingv2-listenerrule-httpheaderconfig-httpheadername
+ HttpHeaderName *types.Value `json:"HttpHeaderName,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httpheaderconfig.html#cfn-elasticloadbalancingv2-listenerrule-httpheaderconfig-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_HttpHeaderConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_httprequestmethodconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_httprequestmethodconfig.go
new file mode 100644
index 0000000000..3e20e41867
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_httprequestmethodconfig.go
@@ -0,0 +1,37 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_HttpRequestMethodConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httprequestmethodconfig.html
+type ListenerRule_HttpRequestMethodConfig struct {
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-httprequestmethodconfig.html#cfn-elasticloadbalancingv2-listenerrule-httprequestmethodconfig-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_HttpRequestMethodConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_pathpatternconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_pathpatternconfig.go
new file mode 100644
index 0000000000..951167101d
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_pathpatternconfig.go
@@ -0,0 +1,37 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_PathPatternConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-pathpatternconfig.html
+type ListenerRule_PathPatternConfig struct {
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-pathpatternconfig.html#cfn-elasticloadbalancingv2-listenerrule-pathpatternconfig-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_PathPatternConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_querystringconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_querystringconfig.go
new file mode 100644
index 0000000000..be254de56f
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_querystringconfig.go
@@ -0,0 +1,35 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_QueryStringConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringconfig.html
+type ListenerRule_QueryStringConfig struct {
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringconfig.html#cfn-elasticloadbalancingv2-listenerrule-querystringconfig-values
+ Values []ListenerRule_QueryStringKeyValue `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_QueryStringConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_querystringkeyvalue.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_querystringkeyvalue.go
new file mode 100644
index 0000000000..21cd260328
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_querystringkeyvalue.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_QueryStringKeyValue AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringkeyvalue.html
+type ListenerRule_QueryStringKeyValue struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringkeyvalue.html#cfn-elasticloadbalancingv2-listenerrule-querystringkeyvalue-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-querystringkeyvalue.html#cfn-elasticloadbalancingv2-listenerrule-querystringkeyvalue-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_QueryStringKeyValue) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go
new file mode 100644
index 0000000000..faae073a66
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_redirectconfig.go
@@ -0,0 +1,62 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_RedirectConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html
+type ListenerRule_RedirectConfig struct {
+
+ // Host AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html#cfn-elasticloadbalancingv2-listenerrule-redirectconfig-host
+ Host *types.Value `json:"Host,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html#cfn-elasticloadbalancingv2-listenerrule-redirectconfig-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html#cfn-elasticloadbalancingv2-listenerrule-redirectconfig-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html#cfn-elasticloadbalancingv2-listenerrule-redirectconfig-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // Query AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html#cfn-elasticloadbalancingv2-listenerrule-redirectconfig-query
+ Query *types.Value `json:"Query,omitempty"`
+
+ // StatusCode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-redirectconfig.html#cfn-elasticloadbalancingv2-listenerrule-redirectconfig-statuscode
+ StatusCode *types.Value `json:"StatusCode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_RedirectConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_rulecondition.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_rulecondition.go
new file mode 100644
index 0000000000..711fd75111
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_rulecondition.go
@@ -0,0 +1,72 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_RuleCondition AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html
+type ListenerRule_RuleCondition struct {
+
+ // Field AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html#cfn-elasticloadbalancingv2-listenerrule-rulecondition-field
+ Field *types.Value `json:"Field,omitempty"`
+
+ // HostHeaderConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html#cfn-elasticloadbalancingv2-listenerrule-rulecondition-hostheaderconfig
+ HostHeaderConfig *ListenerRule_HostHeaderConfig `json:"HostHeaderConfig,omitempty"`
+
+ // HttpHeaderConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html#cfn-elasticloadbalancingv2-listenerrule-rulecondition-httpheaderconfig
+ HttpHeaderConfig *ListenerRule_HttpHeaderConfig `json:"HttpHeaderConfig,omitempty"`
+
+ // HttpRequestMethodConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html#cfn-elasticloadbalancingv2-listenerrule-rulecondition-httprequestmethodconfig
+ HttpRequestMethodConfig *ListenerRule_HttpRequestMethodConfig `json:"HttpRequestMethodConfig,omitempty"`
+
+ // PathPatternConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html#cfn-elasticloadbalancingv2-listenerrule-rulecondition-pathpatternconfig
+ PathPatternConfig *ListenerRule_PathPatternConfig `json:"PathPatternConfig,omitempty"`
+
+ // QueryStringConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html#cfn-elasticloadbalancingv2-listenerrule-rulecondition-querystringconfig
+ QueryStringConfig *ListenerRule_QueryStringConfig `json:"QueryStringConfig,omitempty"`
+
+ // SourceIpConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html#cfn-elasticloadbalancingv2-listenerrule-rulecondition-sourceipconfig
+ SourceIpConfig *ListenerRule_SourceIpConfig `json:"SourceIpConfig,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-rulecondition.html#cfn-elasticloadbalancingv2-listenerrule-rulecondition-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_RuleCondition) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_sourceipconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_sourceipconfig.go
new file mode 100644
index 0000000000..ad69ea380d
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_sourceipconfig.go
@@ -0,0 +1,37 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_SourceIpConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-sourceipconfig.html
+type ListenerRule_SourceIpConfig struct {
+
+ // Values AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-sourceipconfig.html#cfn-elasticloadbalancingv2-listenerrule-sourceipconfig-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_SourceIpConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_targetgroupstickinessconfig.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_targetgroupstickinessconfig.go
new file mode 100644
index 0000000000..0c586f1152
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_targetgroupstickinessconfig.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_TargetGroupStickinessConfig AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig.html
+type ListenerRule_TargetGroupStickinessConfig struct {
+
+ // DurationSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig.html#cfn-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig-durationseconds
+ DurationSeconds *types.Value `json:"DurationSeconds,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig.html#cfn-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_TargetGroupStickinessConfig) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_targetgrouptuple.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_targetgrouptuple.go
new file mode 100644
index 0000000000..d6cf5548a4
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-listenerrule_targetgrouptuple.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ListenerRule_TargetGroupTuple AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgrouptuple.html
+type ListenerRule_TargetGroupTuple struct {
+
+ // TargetGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgrouptuple.html#cfn-elasticloadbalancingv2-listenerrule-targetgrouptuple-targetgrouparn
+ TargetGroupArn *types.Value `json:"TargetGroupArn,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgrouptuple.html#cfn-elasticloadbalancingv2-listenerrule-targetgrouptuple-weight
+ Weight *types.Value `json:"Weight,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ListenerRule_TargetGroupTuple) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer.go
new file mode 100644
index 0000000000..d5eb075c4b
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer.go
@@ -0,0 +1,149 @@
+package elasticloadbalancingv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::LoadBalancer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html
+type LoadBalancer struct {
+
+ // IpAddressType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-ipaddresstype
+ IpAddressType *types.Value `json:"IpAddressType,omitempty"`
+
+ // LoadBalancerAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-loadbalancerattributes
+ LoadBalancerAttributes []LoadBalancer_LoadBalancerAttribute `json:"LoadBalancerAttributes,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Scheme AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-scheme
+ Scheme *types.Value `json:"Scheme,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // SubnetMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmappings
+ SubnetMappings []LoadBalancer_SubnetMapping `json:"SubnetMappings,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#cfn-elasticloadbalancingv2-loadbalancer-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::LoadBalancer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LoadBalancer) MarshalJSON() ([]byte, error) {
+ type Properties LoadBalancer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LoadBalancer) UnmarshalJSON(b []byte) error {
+ type Properties LoadBalancer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LoadBalancer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go
new file mode 100644
index 0000000000..e82ba4ac12
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_loadbalancerattribute.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_LoadBalancerAttribute AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html
+type LoadBalancer_LoadBalancerAttribute struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html#cfn-elasticloadbalancingv2-loadbalancer-loadbalancerattributes-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-loadbalancerattributes.html#cfn-elasticloadbalancingv2-loadbalancer-loadbalancerattributes-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_LoadBalancerAttribute) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go
new file mode 100644
index 0000000000..11cd085a50
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-loadbalancer_subnetmapping.go
@@ -0,0 +1,52 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoadBalancer_SubnetMapping AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html
+type LoadBalancer_SubnetMapping struct {
+
+ // AllocationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-allocationid
+ AllocationId *types.Value `json:"AllocationId,omitempty"`
+
+ // IPv6Address AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-ipv6address
+ IPv6Address *types.Value `json:"IPv6Address,omitempty"`
+
+ // PrivateIPv4Address AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-privateipv4address
+ PrivateIPv4Address *types.Value `json:"PrivateIPv4Address,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-loadbalancer-subnetmapping.html#cfn-elasticloadbalancingv2-loadbalancer-subnetmapping-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoadBalancer_SubnetMapping) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup.go
new file mode 100644
index 0000000000..f34868a201
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup.go
@@ -0,0 +1,199 @@
+package elasticloadbalancingv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TargetGroup AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::TargetGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html
+type TargetGroup struct {
+
+ // HealthCheckEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckenabled
+ HealthCheckEnabled *types.Value `json:"HealthCheckEnabled,omitempty"`
+
+ // HealthCheckIntervalSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckintervalseconds
+ HealthCheckIntervalSeconds *types.Value `json:"HealthCheckIntervalSeconds,omitempty"`
+
+ // HealthCheckPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckpath
+ HealthCheckPath *types.Value `json:"HealthCheckPath,omitempty"`
+
+ // HealthCheckPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckport
+ HealthCheckPort *types.Value `json:"HealthCheckPort,omitempty"`
+
+ // HealthCheckProtocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthcheckprotocol
+ HealthCheckProtocol *types.Value `json:"HealthCheckProtocol,omitempty"`
+
+ // HealthCheckTimeoutSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthchecktimeoutseconds
+ HealthCheckTimeoutSeconds *types.Value `json:"HealthCheckTimeoutSeconds,omitempty"`
+
+ // HealthyThresholdCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-healthythresholdcount
+ HealthyThresholdCount *types.Value `json:"HealthyThresholdCount,omitempty"`
+
+ // IpAddressType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-ipaddresstype
+ IpAddressType *types.Value `json:"IpAddressType,omitempty"`
+
+ // Matcher AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-matcher
+ Matcher *TargetGroup_Matcher `json:"Matcher,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // ProtocolVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-protocolversion
+ ProtocolVersion *types.Value `json:"ProtocolVersion,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TargetGroupAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattributes
+ TargetGroupAttributes []TargetGroup_TargetGroupAttribute `json:"TargetGroupAttributes,omitempty"`
+
+ // TargetType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targettype
+ TargetType *types.Value `json:"TargetType,omitempty"`
+
+ // Targets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-targets
+ Targets []TargetGroup_TargetDescription `json:"Targets,omitempty"`
+
+ // UnhealthyThresholdCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-unhealthythresholdcount
+ UnhealthyThresholdCount *types.Value `json:"UnhealthyThresholdCount,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#cfn-elasticloadbalancingv2-targetgroup-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TargetGroup) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::TargetGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TargetGroup) MarshalJSON() ([]byte, error) {
+ type Properties TargetGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TargetGroup) UnmarshalJSON(b []byte) error {
+ type Properties TargetGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TargetGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_matcher.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_matcher.go
new file mode 100644
index 0000000000..a8eb391738
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_matcher.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TargetGroup_Matcher AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::TargetGroup.Matcher)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html
+type TargetGroup_Matcher struct {
+
+ // GrpcCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html#cfn-elasticloadbalancingv2-targetgroup-matcher-grpccode
+ GrpcCode *types.Value `json:"GrpcCode,omitempty"`
+
+ // HttpCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-matcher.html#cfn-elasticloadbalancingv2-targetgroup-matcher-httpcode
+ HttpCode *types.Value `json:"HttpCode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TargetGroup_Matcher) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_targetdescription.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_targetdescription.go
new file mode 100644
index 0000000000..4fa654a7fe
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_targetdescription.go
@@ -0,0 +1,47 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TargetGroup_TargetDescription AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html
+type TargetGroup_TargetDescription struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html#cfn-elasticloadbalancingv2-targetgroup-targetdescription-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html#cfn-elasticloadbalancingv2-targetgroup-targetdescription-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetdescription.html#cfn-elasticloadbalancingv2-targetgroup-targetdescription-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TargetGroup_TargetDescription) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription"
+}
diff --git a/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go
new file mode 100644
index 0000000000..2059b9d171
--- /dev/null
+++ b/goformation/cloudformation/elasticloadbalancingv2/aws-elasticloadbalancingv2-targetgroup_targetgroupattribute.go
@@ -0,0 +1,42 @@
+package elasticloadbalancingv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TargetGroup_TargetGroupAttribute AWS CloudFormation Resource (AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html
+type TargetGroup_TargetGroupAttribute struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattribute-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-targetgroup-targetgroupattribute.html#cfn-elasticloadbalancingv2-targetgroup-targetgroupattribute-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TargetGroup_TargetGroupAttribute) AWSCloudFormationType() string {
+ return "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain.go
new file mode 100644
index 0000000000..e9e29dd5ae
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain.go
@@ -0,0 +1,179 @@
+package elasticsearch
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain AWS CloudFormation Resource (AWS::Elasticsearch::Domain)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html
+type Domain struct {
+
+ // AccessPolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-accesspolicies
+ AccessPolicies interface{} `json:"AccessPolicies,omitempty"`
+
+ // AdvancedOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedoptions
+ AdvancedOptions map[string]*types.Value `json:"AdvancedOptions,omitempty"`
+
+ // AdvancedSecurityOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedsecurityoptions
+ AdvancedSecurityOptions *Domain_AdvancedSecurityOptionsInput `json:"AdvancedSecurityOptions,omitempty"`
+
+ // CognitoOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-cognitooptions
+ CognitoOptions *Domain_CognitoOptions `json:"CognitoOptions,omitempty"`
+
+ // DomainEndpointOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainendpointoptions
+ DomainEndpointOptions *Domain_DomainEndpointOptions `json:"DomainEndpointOptions,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // EBSOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-ebsoptions
+ EBSOptions *Domain_EBSOptions `json:"EBSOptions,omitempty"`
+
+ // ElasticsearchClusterConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchclusterconfig
+ ElasticsearchClusterConfig *Domain_ElasticsearchClusterConfig `json:"ElasticsearchClusterConfig,omitempty"`
+
+ // ElasticsearchVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchversion
+ ElasticsearchVersion *types.Value `json:"ElasticsearchVersion,omitempty"`
+
+ // EncryptionAtRestOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-encryptionatrestoptions
+ EncryptionAtRestOptions *Domain_EncryptionAtRestOptions `json:"EncryptionAtRestOptions,omitempty"`
+
+ // LogPublishingOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-logpublishingoptions
+ LogPublishingOptions map[string]Domain_LogPublishingOption `json:"LogPublishingOptions,omitempty"`
+
+ // NodeToNodeEncryptionOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-nodetonodeencryptionoptions
+ NodeToNodeEncryptionOptions *Domain_NodeToNodeEncryptionOptions `json:"NodeToNodeEncryptionOptions,omitempty"`
+
+ // SnapshotOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-snapshotoptions
+ SnapshotOptions *Domain_SnapshotOptions `json:"SnapshotOptions,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VPCOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-vpcoptions
+ VPCOptions *Domain_VPCOptions `json:"VPCOptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Domain) MarshalJSON() ([]byte, error) {
+ type Properties Domain
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Domain) UnmarshalJSON(b []byte) error {
+ type Properties Domain
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Domain(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_advancedsecurityoptionsinput.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_advancedsecurityoptionsinput.go
new file mode 100644
index 0000000000..d2c7c34800
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_advancedsecurityoptionsinput.go
@@ -0,0 +1,47 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_AdvancedSecurityOptionsInput AWS CloudFormation Resource (AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html
+type Domain_AdvancedSecurityOptionsInput struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html#cfn-elasticsearch-domain-advancedsecurityoptionsinput-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // InternalUserDatabaseEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html#cfn-elasticsearch-domain-advancedsecurityoptionsinput-internaluserdatabaseenabled
+ InternalUserDatabaseEnabled *types.Value `json:"InternalUserDatabaseEnabled,omitempty"`
+
+ // MasterUserOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-advancedsecurityoptionsinput.html#cfn-elasticsearch-domain-advancedsecurityoptionsinput-masteruseroptions
+ MasterUserOptions *Domain_MasterUserOptions `json:"MasterUserOptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_AdvancedSecurityOptionsInput) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_cognitooptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_cognitooptions.go
new file mode 100644
index 0000000000..be64a7e1fc
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_cognitooptions.go
@@ -0,0 +1,52 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_CognitoOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.CognitoOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html
+type Domain_CognitoOptions struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html#cfn-elasticsearch-domain-cognitooptions-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // IdentityPoolId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html#cfn-elasticsearch-domain-cognitooptions-identitypoolid
+ IdentityPoolId *types.Value `json:"IdentityPoolId,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html#cfn-elasticsearch-domain-cognitooptions-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // UserPoolId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html#cfn-elasticsearch-domain-cognitooptions-userpoolid
+ UserPoolId *types.Value `json:"UserPoolId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_CognitoOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.CognitoOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_coldstorageoptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_coldstorageoptions.go
new file mode 100644
index 0000000000..94e0da930c
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_coldstorageoptions.go
@@ -0,0 +1,37 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_ColdStorageOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.ColdStorageOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-coldstorageoptions.html
+type Domain_ColdStorageOptions struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-coldstorageoptions.html#cfn-elasticsearch-domain-coldstorageoptions-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_ColdStorageOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.ColdStorageOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_domainendpointoptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_domainendpointoptions.go
new file mode 100644
index 0000000000..9a3636d80a
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_domainendpointoptions.go
@@ -0,0 +1,57 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_DomainEndpointOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.DomainEndpointOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html
+type Domain_DomainEndpointOptions struct {
+
+ // CustomEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-customendpoint
+ CustomEndpoint *types.Value `json:"CustomEndpoint,omitempty"`
+
+ // CustomEndpointCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-customendpointcertificatearn
+ CustomEndpointCertificateArn *types.Value `json:"CustomEndpointCertificateArn,omitempty"`
+
+ // CustomEndpointEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-customendpointenabled
+ CustomEndpointEnabled *types.Value `json:"CustomEndpointEnabled,omitempty"`
+
+ // EnforceHTTPS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-enforcehttps
+ EnforceHTTPS *types.Value `json:"EnforceHTTPS,omitempty"`
+
+ // TLSSecurityPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-domainendpointoptions.html#cfn-elasticsearch-domain-domainendpointoptions-tlssecuritypolicy
+ TLSSecurityPolicy *types.Value `json:"TLSSecurityPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_DomainEndpointOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.DomainEndpointOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_ebsoptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_ebsoptions.go
new file mode 100644
index 0000000000..f539d16193
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_ebsoptions.go
@@ -0,0 +1,52 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_EBSOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.EBSOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html
+type Domain_EBSOptions struct {
+
+ // EBSEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-ebsenabled
+ EBSEnabled *types.Value `json:"EBSEnabled,omitempty"`
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // VolumeSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-volumesize
+ VolumeSize *types.Value `json:"VolumeSize,omitempty"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html#cfn-elasticsearch-domain-ebsoptions-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_EBSOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.EBSOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_elasticsearchclusterconfig.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_elasticsearchclusterconfig.go
new file mode 100644
index 0000000000..a372d0bca1
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_elasticsearchclusterconfig.go
@@ -0,0 +1,87 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_ElasticsearchClusterConfig AWS CloudFormation Resource (AWS::Elasticsearch::Domain.ElasticsearchClusterConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html
+type Domain_ElasticsearchClusterConfig struct {
+
+ // ColdStorageOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-coldstorageoptions
+ ColdStorageOptions *Domain_ColdStorageOptions `json:"ColdStorageOptions,omitempty"`
+
+ // DedicatedMasterCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmastercount
+ DedicatedMasterCount *types.Value `json:"DedicatedMasterCount,omitempty"`
+
+ // DedicatedMasterEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmasterenabled
+ DedicatedMasterEnabled *types.Value `json:"DedicatedMasterEnabled,omitempty"`
+
+ // DedicatedMasterType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-dedicatedmastertype
+ DedicatedMasterType *types.Value `json:"DedicatedMasterType,omitempty"`
+
+ // InstanceCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-instancecount
+ InstanceCount *types.Value `json:"InstanceCount,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-instnacetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // WarmCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmcount
+ WarmCount *types.Value `json:"WarmCount,omitempty"`
+
+ // WarmEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmenabled
+ WarmEnabled *types.Value `json:"WarmEnabled,omitempty"`
+
+ // WarmType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-warmtype
+ WarmType *types.Value `json:"WarmType,omitempty"`
+
+ // ZoneAwarenessConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticsearchclusterconfig-zoneawarenessconfig
+ ZoneAwarenessConfig *Domain_ZoneAwarenessConfig `json:"ZoneAwarenessConfig,omitempty"`
+
+ // ZoneAwarenessEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html#cfn-elasticsearch-domain-elasticseachclusterconfig-zoneawarenessenabled
+ ZoneAwarenessEnabled *types.Value `json:"ZoneAwarenessEnabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_ElasticsearchClusterConfig) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_encryptionatrestoptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_encryptionatrestoptions.go
new file mode 100644
index 0000000000..bcc052afeb
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_encryptionatrestoptions.go
@@ -0,0 +1,42 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_EncryptionAtRestOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.EncryptionAtRestOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html
+type Domain_EncryptionAtRestOptions struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html#cfn-elasticsearch-domain-encryptionatrestoptions-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html#cfn-elasticsearch-domain-encryptionatrestoptions-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_EncryptionAtRestOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.EncryptionAtRestOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_logpublishingoption.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_logpublishingoption.go
new file mode 100644
index 0000000000..46ca0d39dd
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_logpublishingoption.go
@@ -0,0 +1,42 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_LogPublishingOption AWS CloudFormation Resource (AWS::Elasticsearch::Domain.LogPublishingOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-logpublishingoption.html
+type Domain_LogPublishingOption struct {
+
+ // CloudWatchLogsLogGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-logpublishingoption.html#cfn-elasticsearch-domain-logpublishingoption-cloudwatchlogsloggrouparn
+ CloudWatchLogsLogGroupArn *types.Value `json:"CloudWatchLogsLogGroupArn,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-logpublishingoption.html#cfn-elasticsearch-domain-logpublishingoption-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_LogPublishingOption) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.LogPublishingOption"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_masteruseroptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_masteruseroptions.go
new file mode 100644
index 0000000000..d98bd0c499
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_masteruseroptions.go
@@ -0,0 +1,47 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_MasterUserOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.MasterUserOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html
+type Domain_MasterUserOptions struct {
+
+ // MasterUserARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html#cfn-elasticsearch-domain-masteruseroptions-masteruserarn
+ MasterUserARN *types.Value `json:"MasterUserARN,omitempty"`
+
+ // MasterUserName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html#cfn-elasticsearch-domain-masteruseroptions-masterusername
+ MasterUserName *types.Value `json:"MasterUserName,omitempty"`
+
+ // MasterUserPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-masteruseroptions.html#cfn-elasticsearch-domain-masteruseroptions-masteruserpassword
+ MasterUserPassword *types.Value `json:"MasterUserPassword,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_MasterUserOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.MasterUserOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_nodetonodeencryptionoptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_nodetonodeencryptionoptions.go
new file mode 100644
index 0000000000..baa8239b11
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_nodetonodeencryptionoptions.go
@@ -0,0 +1,37 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_NodeToNodeEncryptionOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html
+type Domain_NodeToNodeEncryptionOptions struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html#cfn-elasticsearch-domain-nodetonodeencryptionoptions-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_NodeToNodeEncryptionOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_snapshotoptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_snapshotoptions.go
new file mode 100644
index 0000000000..eac32ce0bf
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_snapshotoptions.go
@@ -0,0 +1,37 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_SnapshotOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.SnapshotOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html
+type Domain_SnapshotOptions struct {
+
+ // AutomatedSnapshotStartHour AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html#cfn-elasticsearch-domain-snapshotoptions-automatedsnapshotstarthour
+ AutomatedSnapshotStartHour *types.Value `json:"AutomatedSnapshotStartHour,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_SnapshotOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.SnapshotOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_vpcoptions.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_vpcoptions.go
new file mode 100644
index 0000000000..dd65319f9c
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_vpcoptions.go
@@ -0,0 +1,42 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_VPCOptions AWS CloudFormation Resource (AWS::Elasticsearch::Domain.VPCOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html
+type Domain_VPCOptions struct {
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html#cfn-elasticsearch-domain-vpcoptions-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html#cfn-elasticsearch-domain-vpcoptions-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_VPCOptions) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.VPCOptions"
+}
diff --git a/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_zoneawarenessconfig.go b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_zoneawarenessconfig.go
new file mode 100644
index 0000000000..68604a1c85
--- /dev/null
+++ b/goformation/cloudformation/elasticsearch/aws-elasticsearch-domain_zoneawarenessconfig.go
@@ -0,0 +1,37 @@
+package elasticsearch
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Domain_ZoneAwarenessConfig AWS CloudFormation Resource (AWS::Elasticsearch::Domain.ZoneAwarenessConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-zoneawarenessconfig.html
+type Domain_ZoneAwarenessConfig struct {
+
+ // AvailabilityZoneCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-zoneawarenessconfig.html#cfn-elasticsearch-domain-zoneawarenessconfig-availabilityzonecount
+ AvailabilityZoneCount *types.Value `json:"AvailabilityZoneCount,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Domain_ZoneAwarenessConfig) AWSCloudFormationType() string {
+ return "AWS::Elasticsearch::Domain.ZoneAwarenessConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster.go b/goformation/cloudformation/emr/aws-emr-cluster.go
new file mode 100644
index 0000000000..bc1384d12e
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster.go
@@ -0,0 +1,214 @@
+package emr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster AWS CloudFormation Resource (AWS::EMR::Cluster)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html
+type Cluster struct {
+
+ // AdditionalInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-additionalinfo
+ AdditionalInfo interface{} `json:"AdditionalInfo,omitempty"`
+
+ // Applications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-applications
+ Applications []Cluster_Application `json:"Applications,omitempty"`
+
+ // AutoScalingRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-autoscalingrole
+ AutoScalingRole *types.Value `json:"AutoScalingRole,omitempty"`
+
+ // BootstrapActions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-bootstrapactions
+ BootstrapActions []Cluster_BootstrapActionConfig `json:"BootstrapActions,omitempty"`
+
+ // Configurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-configurations
+ Configurations []Cluster_Configuration `json:"Configurations,omitempty"`
+
+ // CustomAmiId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-customamiid
+ CustomAmiId *types.Value `json:"CustomAmiId,omitempty"`
+
+ // EbsRootVolumeSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-ebsrootvolumesize
+ EbsRootVolumeSize *types.Value `json:"EbsRootVolumeSize,omitempty"`
+
+ // Instances AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-instances
+ Instances *Cluster_JobFlowInstancesConfig `json:"Instances,omitempty"`
+
+ // JobFlowRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-jobflowrole
+ JobFlowRole *types.Value `json:"JobFlowRole,omitempty"`
+
+ // KerberosAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-kerberosattributes
+ KerberosAttributes *Cluster_KerberosAttributes `json:"KerberosAttributes,omitempty"`
+
+ // LogEncryptionKmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-logencryptionkmskeyid
+ LogEncryptionKmsKeyId *types.Value `json:"LogEncryptionKmsKeyId,omitempty"`
+
+ // LogUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-loguri
+ LogUri *types.Value `json:"LogUri,omitempty"`
+
+ // ManagedScalingPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-managedscalingpolicy
+ ManagedScalingPolicy *Cluster_ManagedScalingPolicy `json:"ManagedScalingPolicy,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ReleaseLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-releaselabel
+ ReleaseLabel *types.Value `json:"ReleaseLabel,omitempty"`
+
+ // ScaleDownBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-scaledownbehavior
+ ScaleDownBehavior *types.Value `json:"ScaleDownBehavior,omitempty"`
+
+ // SecurityConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-securityconfiguration
+ SecurityConfiguration *types.Value `json:"SecurityConfiguration,omitempty"`
+
+ // ServiceRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-servicerole
+ ServiceRole *types.Value `json:"ServiceRole,omitempty"`
+
+ // StepConcurrencyLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-stepconcurrencylevel
+ StepConcurrencyLevel *types.Value `json:"StepConcurrencyLevel,omitempty"`
+
+ // Steps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-steps
+ Steps []Cluster_StepConfig `json:"Steps,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VisibleToAllUsers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-cluster.html#cfn-elasticmapreduce-cluster-visibletoallusers
+ VisibleToAllUsers *types.Value `json:"VisibleToAllUsers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Cluster) MarshalJSON() ([]byte, error) {
+ type Properties Cluster
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Cluster) UnmarshalJSON(b []byte) error {
+ type Properties Cluster
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Cluster(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_application.go b/goformation/cloudformation/emr/aws-emr-cluster_application.go
new file mode 100644
index 0000000000..a154e4fa6a
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_application.go
@@ -0,0 +1,52 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_Application AWS CloudFormation Resource (AWS::EMR::Cluster.Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html
+type Cluster_Application struct {
+
+ // AdditionalInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html#cfn-elasticmapreduce-cluster-application-additionalinfo
+ AdditionalInfo map[string]*types.Value `json:"AdditionalInfo,omitempty"`
+
+ // Args AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html#cfn-elasticmapreduce-cluster-application-args
+ Args *types.Value `json:"Args,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html#cfn-elasticmapreduce-cluster-application-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-application.html#cfn-elasticmapreduce-cluster-application-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_Application) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.Application"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_autoscalingpolicy.go b/goformation/cloudformation/emr/aws-emr-cluster_autoscalingpolicy.go
new file mode 100644
index 0000000000..44db300c70
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_autoscalingpolicy.go
@@ -0,0 +1,40 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_AutoScalingPolicy AWS CloudFormation Resource (AWS::EMR::Cluster.AutoScalingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html
+type Cluster_AutoScalingPolicy struct {
+
+ // Constraints AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html#cfn-elasticmapreduce-cluster-autoscalingpolicy-constraints
+ Constraints *Cluster_ScalingConstraints `json:"Constraints,omitempty"`
+
+ // Rules AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-autoscalingpolicy.html#cfn-elasticmapreduce-cluster-autoscalingpolicy-rules
+ Rules []Cluster_ScalingRule `json:"Rules,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_AutoScalingPolicy) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.AutoScalingPolicy"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_bootstrapactionconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_bootstrapactionconfig.go
new file mode 100644
index 0000000000..afcebea459
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_bootstrapactionconfig.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_BootstrapActionConfig AWS CloudFormation Resource (AWS::EMR::Cluster.BootstrapActionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html
+type Cluster_BootstrapActionConfig struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html#cfn-elasticmapreduce-cluster-bootstrapactionconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ScriptBootstrapAction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-bootstrapactionconfig.html#cfn-elasticmapreduce-cluster-bootstrapactionconfig-scriptbootstrapaction
+ ScriptBootstrapAction *Cluster_ScriptBootstrapActionConfig `json:"ScriptBootstrapAction,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_BootstrapActionConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.BootstrapActionConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_cloudwatchalarmdefinition.go b/goformation/cloudformation/emr/aws-emr-cluster_cloudwatchalarmdefinition.go
new file mode 100644
index 0000000000..ea600e502f
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_cloudwatchalarmdefinition.go
@@ -0,0 +1,77 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_CloudWatchAlarmDefinition AWS CloudFormation Resource (AWS::EMR::Cluster.CloudWatchAlarmDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html
+type Cluster_CloudWatchAlarmDefinition struct {
+
+ // ComparisonOperator AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-comparisonoperator
+ ComparisonOperator *types.Value `json:"ComparisonOperator,omitempty"`
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-dimensions
+ Dimensions []Cluster_MetricDimension `json:"Dimensions,omitempty"`
+
+ // EvaluationPeriods AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-evaluationperiods
+ EvaluationPeriods *types.Value `json:"EvaluationPeriods,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-period
+ Period *types.Value `json:"Period"`
+
+ // Statistic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // Threshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-threshold
+ Threshold *types.Value `json:"Threshold"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-cluster-cloudwatchalarmdefinition-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_CloudWatchAlarmDefinition) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.CloudWatchAlarmDefinition"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_computelimits.go b/goformation/cloudformation/emr/aws-emr-cluster_computelimits.go
new file mode 100644
index 0000000000..82236daf58
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_computelimits.go
@@ -0,0 +1,57 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ComputeLimits AWS CloudFormation Resource (AWS::EMR::Cluster.ComputeLimits)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html
+type Cluster_ComputeLimits struct {
+
+ // MaximumCapacityUnits AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumcapacityunits
+ MaximumCapacityUnits *types.Value `json:"MaximumCapacityUnits"`
+
+ // MaximumCoreCapacityUnits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumcorecapacityunits
+ MaximumCoreCapacityUnits *types.Value `json:"MaximumCoreCapacityUnits,omitempty"`
+
+ // MaximumOnDemandCapacityUnits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-maximumondemandcapacityunits
+ MaximumOnDemandCapacityUnits *types.Value `json:"MaximumOnDemandCapacityUnits,omitempty"`
+
+ // MinimumCapacityUnits AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-minimumcapacityunits
+ MinimumCapacityUnits *types.Value `json:"MinimumCapacityUnits"`
+
+ // UnitType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-computelimits.html#cfn-elasticmapreduce-cluster-computelimits-unittype
+ UnitType *types.Value `json:"UnitType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ComputeLimits) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.ComputeLimits"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_configuration.go b/goformation/cloudformation/emr/aws-emr-cluster_configuration.go
new file mode 100644
index 0000000000..a1522cb80b
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_configuration.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_Configuration AWS CloudFormation Resource (AWS::EMR::Cluster.Configuration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html
+type Cluster_Configuration struct {
+
+ // Classification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html#cfn-elasticmapreduce-cluster-configuration-classification
+ Classification *types.Value `json:"Classification,omitempty"`
+
+ // ConfigurationProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html#cfn-elasticmapreduce-cluster-configuration-configurationproperties
+ ConfigurationProperties map[string]*types.Value `json:"ConfigurationProperties,omitempty"`
+
+ // Configurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-configuration.html#cfn-elasticmapreduce-cluster-configuration-configurations
+ Configurations []Cluster_Configuration `json:"Configurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_Configuration) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.Configuration"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_ebsblockdeviceconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_ebsblockdeviceconfig.go
new file mode 100644
index 0000000000..9cb9ca38fa
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_ebsblockdeviceconfig.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_EbsBlockDeviceConfig AWS CloudFormation Resource (AWS::EMR::Cluster.EbsBlockDeviceConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html
+type Cluster_EbsBlockDeviceConfig struct {
+
+ // VolumeSpecification AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html#cfn-elasticmapreduce-cluster-ebsblockdeviceconfig-volumespecification
+ VolumeSpecification *Cluster_VolumeSpecification `json:"VolumeSpecification,omitempty"`
+
+ // VolumesPerInstance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsblockdeviceconfig.html#cfn-elasticmapreduce-cluster-ebsblockdeviceconfig-volumesperinstance
+ VolumesPerInstance *types.Value `json:"VolumesPerInstance,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_EbsBlockDeviceConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.EbsBlockDeviceConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_ebsconfiguration.go b/goformation/cloudformation/emr/aws-emr-cluster_ebsconfiguration.go
new file mode 100644
index 0000000000..040fae8047
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_ebsconfiguration.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_EbsConfiguration AWS CloudFormation Resource (AWS::EMR::Cluster.EbsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html
+type Cluster_EbsConfiguration struct {
+
+ // EbsBlockDeviceConfigs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html#cfn-elasticmapreduce-cluster-ebsconfiguration-ebsblockdeviceconfigs
+ EbsBlockDeviceConfigs []Cluster_EbsBlockDeviceConfig `json:"EbsBlockDeviceConfigs,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ebsconfiguration.html#cfn-elasticmapreduce-cluster-ebsconfiguration-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_EbsConfiguration) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.EbsConfiguration"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_hadoopjarstepconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_hadoopjarstepconfig.go
new file mode 100644
index 0000000000..5bc4df44d0
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_hadoopjarstepconfig.go
@@ -0,0 +1,52 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_HadoopJarStepConfig AWS CloudFormation Resource (AWS::EMR::Cluster.HadoopJarStepConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html
+type Cluster_HadoopJarStepConfig struct {
+
+ // Args AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html#cfn-elasticmapreduce-cluster-hadoopjarstepconfig-args
+ Args *types.Value `json:"Args,omitempty"`
+
+ // Jar AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html#cfn-elasticmapreduce-cluster-hadoopjarstepconfig-jar
+ Jar *types.Value `json:"Jar,omitempty"`
+
+ // MainClass AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html#cfn-elasticmapreduce-cluster-hadoopjarstepconfig-mainclass
+ MainClass *types.Value `json:"MainClass,omitempty"`
+
+ // StepProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-hadoopjarstepconfig.html#cfn-elasticmapreduce-cluster-hadoopjarstepconfig-stepproperties
+ StepProperties []Cluster_KeyValue `json:"StepProperties,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_HadoopJarStepConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.HadoopJarStepConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_instancefleetconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_instancefleetconfig.go
new file mode 100644
index 0000000000..56003bcb76
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_instancefleetconfig.go
@@ -0,0 +1,57 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_InstanceFleetConfig AWS CloudFormation Resource (AWS::EMR::Cluster.InstanceFleetConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html
+type Cluster_InstanceFleetConfig struct {
+
+ // InstanceTypeConfigs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-instancetypeconfigs
+ InstanceTypeConfigs []Cluster_InstanceTypeConfig `json:"InstanceTypeConfigs,omitempty"`
+
+ // LaunchSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-launchspecifications
+ LaunchSpecifications *Cluster_InstanceFleetProvisioningSpecifications `json:"LaunchSpecifications,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // TargetOnDemandCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-targetondemandcapacity
+ TargetOnDemandCapacity *types.Value `json:"TargetOnDemandCapacity,omitempty"`
+
+ // TargetSpotCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetconfig.html#cfn-elasticmapreduce-cluster-instancefleetconfig-targetspotcapacity
+ TargetSpotCapacity *types.Value `json:"TargetSpotCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_InstanceFleetConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.InstanceFleetConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_instancefleetprovisioningspecifications.go b/goformation/cloudformation/emr/aws-emr-cluster_instancefleetprovisioningspecifications.go
new file mode 100644
index 0000000000..2dd628e828
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_instancefleetprovisioningspecifications.go
@@ -0,0 +1,40 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_InstanceFleetProvisioningSpecifications AWS CloudFormation Resource (AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html
+type Cluster_InstanceFleetProvisioningSpecifications struct {
+
+ // OnDemandSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-cluster-instancefleetprovisioningspecifications-ondemandspecification
+ OnDemandSpecification *Cluster_OnDemandProvisioningSpecification `json:"OnDemandSpecification,omitempty"`
+
+ // SpotSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-cluster-instancefleetprovisioningspecifications-spotspecification
+ SpotSpecification *Cluster_SpotProvisioningSpecification `json:"SpotSpecification,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_InstanceFleetProvisioningSpecifications) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_instancegroupconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_instancegroupconfig.go
new file mode 100644
index 0000000000..1b84114b0d
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_instancegroupconfig.go
@@ -0,0 +1,77 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_InstanceGroupConfig AWS CloudFormation Resource (AWS::EMR::Cluster.InstanceGroupConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html
+type Cluster_InstanceGroupConfig struct {
+
+ // AutoScalingPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-autoscalingpolicy
+ AutoScalingPolicy *Cluster_AutoScalingPolicy `json:"AutoScalingPolicy,omitempty"`
+
+ // BidPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-bidprice
+ BidPrice *types.Value `json:"BidPrice,omitempty"`
+
+ // Configurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-configurations
+ Configurations []Cluster_Configuration `json:"Configurations,omitempty"`
+
+ // CustomAmiId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-customamiid
+ CustomAmiId *types.Value `json:"CustomAmiId,omitempty"`
+
+ // EbsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-ebsconfiguration
+ EbsConfiguration *Cluster_EbsConfiguration `json:"EbsConfiguration,omitempty"`
+
+ // InstanceCount AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-instancecount
+ InstanceCount *types.Value `json:"InstanceCount"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // Market AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-market
+ Market *types.Value `json:"Market,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html#cfn-elasticmapreduce-cluster-instancegroupconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_InstanceGroupConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.InstanceGroupConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_instancetypeconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_instancetypeconfig.go
new file mode 100644
index 0000000000..393767ad4d
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_instancetypeconfig.go
@@ -0,0 +1,67 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_InstanceTypeConfig AWS CloudFormation Resource (AWS::EMR::Cluster.InstanceTypeConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html
+type Cluster_InstanceTypeConfig struct {
+
+ // BidPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-bidprice
+ BidPrice *types.Value `json:"BidPrice,omitempty"`
+
+ // BidPriceAsPercentageOfOnDemandPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-bidpriceaspercentageofondemandprice
+ BidPriceAsPercentageOfOnDemandPrice *types.Value `json:"BidPriceAsPercentageOfOnDemandPrice,omitempty"`
+
+ // Configurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-configurations
+ Configurations []Cluster_Configuration `json:"Configurations,omitempty"`
+
+ // CustomAmiId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-customamiid
+ CustomAmiId *types.Value `json:"CustomAmiId,omitempty"`
+
+ // EbsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-ebsconfiguration
+ EbsConfiguration *Cluster_EbsConfiguration `json:"EbsConfiguration,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // WeightedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html#cfn-elasticmapreduce-cluster-instancetypeconfig-weightedcapacity
+ WeightedCapacity *types.Value `json:"WeightedCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_InstanceTypeConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.InstanceTypeConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_jobflowinstancesconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_jobflowinstancesconfig.go
new file mode 100644
index 0000000000..bdde7f4b35
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_jobflowinstancesconfig.go
@@ -0,0 +1,112 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_JobFlowInstancesConfig AWS CloudFormation Resource (AWS::EMR::Cluster.JobFlowInstancesConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html
+type Cluster_JobFlowInstancesConfig struct {
+
+ // AdditionalMasterSecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-additionalmastersecuritygroups
+ AdditionalMasterSecurityGroups *types.Value `json:"AdditionalMasterSecurityGroups,omitempty"`
+
+ // AdditionalSlaveSecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-additionalslavesecuritygroups
+ AdditionalSlaveSecurityGroups *types.Value `json:"AdditionalSlaveSecurityGroups,omitempty"`
+
+ // CoreInstanceFleet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-coreinstancefleet
+ CoreInstanceFleet *Cluster_InstanceFleetConfig `json:"CoreInstanceFleet,omitempty"`
+
+ // CoreInstanceGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-coreinstancegroup
+ CoreInstanceGroup *Cluster_InstanceGroupConfig `json:"CoreInstanceGroup,omitempty"`
+
+ // Ec2KeyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-ec2keyname
+ Ec2KeyName *types.Value `json:"Ec2KeyName,omitempty"`
+
+ // Ec2SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-ec2subnetid
+ Ec2SubnetId *types.Value `json:"Ec2SubnetId,omitempty"`
+
+ // Ec2SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-ec2subnetids
+ Ec2SubnetIds *types.Value `json:"Ec2SubnetIds,omitempty"`
+
+ // EmrManagedMasterSecurityGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-emrmanagedmastersecuritygroup
+ EmrManagedMasterSecurityGroup *types.Value `json:"EmrManagedMasterSecurityGroup,omitempty"`
+
+ // EmrManagedSlaveSecurityGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-emrmanagedslavesecuritygroup
+ EmrManagedSlaveSecurityGroup *types.Value `json:"EmrManagedSlaveSecurityGroup,omitempty"`
+
+ // HadoopVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-hadoopversion
+ HadoopVersion *types.Value `json:"HadoopVersion,omitempty"`
+
+ // KeepJobFlowAliveWhenNoSteps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-keepjobflowalivewhennosteps
+ KeepJobFlowAliveWhenNoSteps *types.Value `json:"KeepJobFlowAliveWhenNoSteps,omitempty"`
+
+ // MasterInstanceFleet AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-masterinstancefleet
+ MasterInstanceFleet *Cluster_InstanceFleetConfig `json:"MasterInstanceFleet,omitempty"`
+
+ // MasterInstanceGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-masterinstancegroup
+ MasterInstanceGroup *Cluster_InstanceGroupConfig `json:"MasterInstanceGroup,omitempty"`
+
+ // Placement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-placement
+ Placement *Cluster_PlacementType `json:"Placement,omitempty"`
+
+ // ServiceAccessSecurityGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-serviceaccesssecuritygroup
+ ServiceAccessSecurityGroup *types.Value `json:"ServiceAccessSecurityGroup,omitempty"`
+
+ // TerminationProtected AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-jobflowinstancesconfig.html#cfn-elasticmapreduce-cluster-jobflowinstancesconfig-terminationprotected
+ TerminationProtected *types.Value `json:"TerminationProtected,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_JobFlowInstancesConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.JobFlowInstancesConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_kerberosattributes.go b/goformation/cloudformation/emr/aws-emr-cluster_kerberosattributes.go
new file mode 100644
index 0000000000..ecd5e2238c
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_kerberosattributes.go
@@ -0,0 +1,57 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_KerberosAttributes AWS CloudFormation Resource (AWS::EMR::Cluster.KerberosAttributes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html
+type Cluster_KerberosAttributes struct {
+
+ // ADDomainJoinPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html#cfn-elasticmapreduce-cluster-kerberosattributes-addomainjoinpassword
+ ADDomainJoinPassword *types.Value `json:"ADDomainJoinPassword,omitempty"`
+
+ // ADDomainJoinUser AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html#cfn-elasticmapreduce-cluster-kerberosattributes-addomainjoinuser
+ ADDomainJoinUser *types.Value `json:"ADDomainJoinUser,omitempty"`
+
+ // CrossRealmTrustPrincipalPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html#cfn-elasticmapreduce-cluster-kerberosattributes-crossrealmtrustprincipalpassword
+ CrossRealmTrustPrincipalPassword *types.Value `json:"CrossRealmTrustPrincipalPassword,omitempty"`
+
+ // KdcAdminPassword AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html#cfn-elasticmapreduce-cluster-kerberosattributes-kdcadminpassword
+ KdcAdminPassword *types.Value `json:"KdcAdminPassword,omitempty"`
+
+ // Realm AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-kerberosattributes.html#cfn-elasticmapreduce-cluster-kerberosattributes-realm
+ Realm *types.Value `json:"Realm,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_KerberosAttributes) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.KerberosAttributes"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_keyvalue.go b/goformation/cloudformation/emr/aws-emr-cluster_keyvalue.go
new file mode 100644
index 0000000000..3fb0540c8a
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_keyvalue.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_KeyValue AWS CloudFormation Resource (AWS::EMR::Cluster.KeyValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-keyvalue.html
+type Cluster_KeyValue struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-keyvalue.html#cfn-elasticmapreduce-cluster-keyvalue-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-keyvalue.html#cfn-elasticmapreduce-cluster-keyvalue-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_KeyValue) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.KeyValue"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_managedscalingpolicy.go b/goformation/cloudformation/emr/aws-emr-cluster_managedscalingpolicy.go
new file mode 100644
index 0000000000..4e6363864f
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_managedscalingpolicy.go
@@ -0,0 +1,35 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ManagedScalingPolicy AWS CloudFormation Resource (AWS::EMR::Cluster.ManagedScalingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html
+type Cluster_ManagedScalingPolicy struct {
+
+ // ComputeLimits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-managedscalingpolicy.html#cfn-elasticmapreduce-cluster-managedscalingpolicy-computelimits
+ ComputeLimits *Cluster_ComputeLimits `json:"ComputeLimits,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ManagedScalingPolicy) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.ManagedScalingPolicy"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_metricdimension.go b/goformation/cloudformation/emr/aws-emr-cluster_metricdimension.go
new file mode 100644
index 0000000000..7f4eff120c
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_metricdimension.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_MetricDimension AWS CloudFormation Resource (AWS::EMR::Cluster.MetricDimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html
+type Cluster_MetricDimension struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html#cfn-elasticmapreduce-cluster-metricdimension-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-metricdimension.html#cfn-elasticmapreduce-cluster-metricdimension-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_MetricDimension) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.MetricDimension"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_ondemandprovisioningspecification.go b/goformation/cloudformation/emr/aws-emr-cluster_ondemandprovisioningspecification.go
new file mode 100644
index 0000000000..ca72832344
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_ondemandprovisioningspecification.go
@@ -0,0 +1,37 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_OnDemandProvisioningSpecification AWS CloudFormation Resource (AWS::EMR::Cluster.OnDemandProvisioningSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html
+type Cluster_OnDemandProvisioningSpecification struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-ondemandprovisioningspecification.html#cfn-elasticmapreduce-cluster-ondemandprovisioningspecification-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_OnDemandProvisioningSpecification) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.OnDemandProvisioningSpecification"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_placementtype.go b/goformation/cloudformation/emr/aws-emr-cluster_placementtype.go
new file mode 100644
index 0000000000..08e2e4bcfa
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_placementtype.go
@@ -0,0 +1,37 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_PlacementType AWS CloudFormation Resource (AWS::EMR::Cluster.PlacementType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html
+type Cluster_PlacementType struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-placementtype.html#cfn-elasticmapreduce-cluster-placementtype-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_PlacementType) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.PlacementType"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_scalingaction.go b/goformation/cloudformation/emr/aws-emr-cluster_scalingaction.go
new file mode 100644
index 0000000000..729086991f
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_scalingaction.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ScalingAction AWS CloudFormation Resource (AWS::EMR::Cluster.ScalingAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html
+type Cluster_ScalingAction struct {
+
+ // Market AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html#cfn-elasticmapreduce-cluster-scalingaction-market
+ Market *types.Value `json:"Market,omitempty"`
+
+ // SimpleScalingPolicyConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingaction.html#cfn-elasticmapreduce-cluster-scalingaction-simplescalingpolicyconfiguration
+ SimpleScalingPolicyConfiguration *Cluster_SimpleScalingPolicyConfiguration `json:"SimpleScalingPolicyConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ScalingAction) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.ScalingAction"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_scalingconstraints.go b/goformation/cloudformation/emr/aws-emr-cluster_scalingconstraints.go
new file mode 100644
index 0000000000..a8400f9edb
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_scalingconstraints.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ScalingConstraints AWS CloudFormation Resource (AWS::EMR::Cluster.ScalingConstraints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html
+type Cluster_ScalingConstraints struct {
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html#cfn-elasticmapreduce-cluster-scalingconstraints-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity"`
+
+ // MinCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingconstraints.html#cfn-elasticmapreduce-cluster-scalingconstraints-mincapacity
+ MinCapacity *types.Value `json:"MinCapacity"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ScalingConstraints) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.ScalingConstraints"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_scalingrule.go b/goformation/cloudformation/emr/aws-emr-cluster_scalingrule.go
new file mode 100644
index 0000000000..7600a81208
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_scalingrule.go
@@ -0,0 +1,52 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ScalingRule AWS CloudFormation Resource (AWS::EMR::Cluster.ScalingRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html
+type Cluster_ScalingRule struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html#cfn-elasticmapreduce-cluster-scalingrule-action
+ Action *Cluster_ScalingAction `json:"Action,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html#cfn-elasticmapreduce-cluster-scalingrule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html#cfn-elasticmapreduce-cluster-scalingrule-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Trigger AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingrule.html#cfn-elasticmapreduce-cluster-scalingrule-trigger
+ Trigger *Cluster_ScalingTrigger `json:"Trigger,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ScalingRule) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.ScalingRule"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_scalingtrigger.go b/goformation/cloudformation/emr/aws-emr-cluster_scalingtrigger.go
new file mode 100644
index 0000000000..cb090f8322
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_scalingtrigger.go
@@ -0,0 +1,35 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ScalingTrigger AWS CloudFormation Resource (AWS::EMR::Cluster.ScalingTrigger)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingtrigger.html
+type Cluster_ScalingTrigger struct {
+
+ // CloudWatchAlarmDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scalingtrigger.html#cfn-elasticmapreduce-cluster-scalingtrigger-cloudwatchalarmdefinition
+ CloudWatchAlarmDefinition *Cluster_CloudWatchAlarmDefinition `json:"CloudWatchAlarmDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ScalingTrigger) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.ScalingTrigger"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_scriptbootstrapactionconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_scriptbootstrapactionconfig.go
new file mode 100644
index 0000000000..952d84ad20
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_scriptbootstrapactionconfig.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_ScriptBootstrapActionConfig AWS CloudFormation Resource (AWS::EMR::Cluster.ScriptBootstrapActionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html
+type Cluster_ScriptBootstrapActionConfig struct {
+
+ // Args AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html#cfn-elasticmapreduce-cluster-scriptbootstrapactionconfig-args
+ Args *types.Value `json:"Args,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-scriptbootstrapactionconfig.html#cfn-elasticmapreduce-cluster-scriptbootstrapactionconfig-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_ScriptBootstrapActionConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.ScriptBootstrapActionConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_simplescalingpolicyconfiguration.go b/goformation/cloudformation/emr/aws-emr-cluster_simplescalingpolicyconfiguration.go
new file mode 100644
index 0000000000..4c3dc42b2b
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_simplescalingpolicyconfiguration.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_SimpleScalingPolicyConfiguration AWS CloudFormation Resource (AWS::EMR::Cluster.SimpleScalingPolicyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html
+type Cluster_SimpleScalingPolicyConfiguration struct {
+
+ // AdjustmentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-cluster-simplescalingpolicyconfiguration-adjustmenttype
+ AdjustmentType *types.Value `json:"AdjustmentType,omitempty"`
+
+ // CoolDown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-cluster-simplescalingpolicyconfiguration-cooldown
+ CoolDown *types.Value `json:"CoolDown,omitempty"`
+
+ // ScalingAdjustment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-cluster-simplescalingpolicyconfiguration-scalingadjustment
+ ScalingAdjustment *types.Value `json:"ScalingAdjustment"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_SimpleScalingPolicyConfiguration) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_spotprovisioningspecification.go b/goformation/cloudformation/emr/aws-emr-cluster_spotprovisioningspecification.go
new file mode 100644
index 0000000000..9816f897ef
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_spotprovisioningspecification.go
@@ -0,0 +1,52 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_SpotProvisioningSpecification AWS CloudFormation Resource (AWS::EMR::Cluster.SpotProvisioningSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html
+type Cluster_SpotProvisioningSpecification struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // BlockDurationMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-blockdurationminutes
+ BlockDurationMinutes *types.Value `json:"BlockDurationMinutes,omitempty"`
+
+ // TimeoutAction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-timeoutaction
+ TimeoutAction *types.Value `json:"TimeoutAction,omitempty"`
+
+ // TimeoutDurationMinutes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-spotprovisioningspecification.html#cfn-elasticmapreduce-cluster-spotprovisioningspecification-timeoutdurationminutes
+ TimeoutDurationMinutes *types.Value `json:"TimeoutDurationMinutes"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_SpotProvisioningSpecification) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.SpotProvisioningSpecification"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_stepconfig.go b/goformation/cloudformation/emr/aws-emr-cluster_stepconfig.go
new file mode 100644
index 0000000000..6e1bb58c77
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_stepconfig.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_StepConfig AWS CloudFormation Resource (AWS::EMR::Cluster.StepConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-stepconfig.html
+type Cluster_StepConfig struct {
+
+ // ActionOnFailure AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-stepconfig.html#cfn-elasticmapreduce-cluster-stepconfig-actiononfailure
+ ActionOnFailure *types.Value `json:"ActionOnFailure,omitempty"`
+
+ // HadoopJarStep AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-stepconfig.html#cfn-elasticmapreduce-cluster-stepconfig-hadoopjarstep
+ HadoopJarStep *Cluster_HadoopJarStepConfig `json:"HadoopJarStep,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-stepconfig.html#cfn-elasticmapreduce-cluster-stepconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_StepConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.StepConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-cluster_volumespecification.go b/goformation/cloudformation/emr/aws-emr-cluster_volumespecification.go
new file mode 100644
index 0000000000..9c9c66d12d
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-cluster_volumespecification.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Cluster_VolumeSpecification AWS CloudFormation Resource (AWS::EMR::Cluster.VolumeSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html
+type Cluster_VolumeSpecification struct {
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html#cfn-elasticmapreduce-cluster-volumespecification-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // SizeInGB AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html#cfn-elasticmapreduce-cluster-volumespecification-sizeingb
+ SizeInGB *types.Value `json:"SizeInGB"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-volumespecification.html#cfn-elasticmapreduce-cluster-volumespecification-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Cluster_VolumeSpecification) AWSCloudFormationType() string {
+ return "AWS::EMR::Cluster.VolumeSpecification"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig.go
new file mode 100644
index 0000000000..bea1779768
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig.go
@@ -0,0 +1,138 @@
+package emr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html
+type InstanceFleetConfig struct {
+
+ // ClusterId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-clusterid
+ ClusterId *types.Value `json:"ClusterId,omitempty"`
+
+ // InstanceFleetType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancefleettype
+ InstanceFleetType *types.Value `json:"InstanceFleetType,omitempty"`
+
+ // InstanceTypeConfigs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfigs
+ InstanceTypeConfigs []InstanceFleetConfig_InstanceTypeConfig `json:"InstanceTypeConfigs,omitempty"`
+
+ // LaunchSpecifications AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-launchspecifications
+ LaunchSpecifications *InstanceFleetConfig_InstanceFleetProvisioningSpecifications `json:"LaunchSpecifications,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // TargetOnDemandCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-targetondemandcapacity
+ TargetOnDemandCapacity *types.Value `json:"TargetOnDemandCapacity,omitempty"`
+
+ // TargetSpotCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticmapreduce-instancefleetconfig.html#cfn-elasticmapreduce-instancefleetconfig-targetspotcapacity
+ TargetSpotCapacity *types.Value `json:"TargetSpotCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r InstanceFleetConfig) MarshalJSON() ([]byte, error) {
+ type Properties InstanceFleetConfig
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *InstanceFleetConfig) UnmarshalJSON(b []byte) error {
+ type Properties InstanceFleetConfig
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = InstanceFleetConfig(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig_configuration.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_configuration.go
new file mode 100644
index 0000000000..523c36ca68
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_configuration.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig_Configuration AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.Configuration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html
+type InstanceFleetConfig_Configuration struct {
+
+ // Classification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#cfn-elasticmapreduce-instancefleetconfig-configuration-classification
+ Classification *types.Value `json:"Classification,omitempty"`
+
+ // ConfigurationProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#cfn-elasticmapreduce-instancefleetconfig-configuration-configurationproperties
+ ConfigurationProperties map[string]*types.Value `json:"ConfigurationProperties,omitempty"`
+
+ // Configurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-configuration.html#cfn-elasticmapreduce-instancefleetconfig-configuration-configurations
+ Configurations []InstanceFleetConfig_Configuration `json:"Configurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig_Configuration) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig.Configuration"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go
new file mode 100644
index 0000000000..1cdb93c569
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ebsblockdeviceconfig.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig_EbsBlockDeviceConfig AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html
+type InstanceFleetConfig_EbsBlockDeviceConfig struct {
+
+ // VolumeSpecification AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html#cfn-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig-volumespecification
+ VolumeSpecification *InstanceFleetConfig_VolumeSpecification `json:"VolumeSpecification,omitempty"`
+
+ // VolumesPerInstance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig.html#cfn-elasticmapreduce-instancefleetconfig-ebsblockdeviceconfig-volumesperinstance
+ VolumesPerInstance *types.Value `json:"VolumesPerInstance,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig_EbsBlockDeviceConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ebsconfiguration.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ebsconfiguration.go
new file mode 100644
index 0000000000..3dceaf3e31
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ebsconfiguration.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig_EbsConfiguration AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.EbsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html
+type InstanceFleetConfig_EbsConfiguration struct {
+
+ // EbsBlockDeviceConfigs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html#cfn-elasticmapreduce-instancefleetconfig-ebsconfiguration-ebsblockdeviceconfigs
+ EbsBlockDeviceConfigs []InstanceFleetConfig_EbsBlockDeviceConfig `json:"EbsBlockDeviceConfigs,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ebsconfiguration.html#cfn-elasticmapreduce-instancefleetconfig-ebsconfiguration-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig_EbsConfiguration) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig.EbsConfiguration"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go
new file mode 100644
index 0000000000..9e52ad0fce
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_instancefleetprovisioningspecifications.go
@@ -0,0 +1,40 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig_InstanceFleetProvisioningSpecifications AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html
+type InstanceFleetConfig_InstanceFleetProvisioningSpecifications struct {
+
+ // OnDemandSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications-ondemandspecification
+ OnDemandSpecification *InstanceFleetConfig_OnDemandProvisioningSpecification `json:"OnDemandSpecification,omitempty"`
+
+ // SpotSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications.html#cfn-elasticmapreduce-instancefleetconfig-instancefleetprovisioningspecifications-spotspecification
+ SpotSpecification *InstanceFleetConfig_SpotProvisioningSpecification `json:"SpotSpecification,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig_InstanceFleetProvisioningSpecifications) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig_instancetypeconfig.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_instancetypeconfig.go
new file mode 100644
index 0000000000..698c0b4825
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_instancetypeconfig.go
@@ -0,0 +1,67 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig_InstanceTypeConfig AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.InstanceTypeConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html
+type InstanceFleetConfig_InstanceTypeConfig struct {
+
+ // BidPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-bidprice
+ BidPrice *types.Value `json:"BidPrice,omitempty"`
+
+ // BidPriceAsPercentageOfOnDemandPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-bidpriceaspercentageofondemandprice
+ BidPriceAsPercentageOfOnDemandPrice *types.Value `json:"BidPriceAsPercentageOfOnDemandPrice,omitempty"`
+
+ // Configurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-configurations
+ Configurations []InstanceFleetConfig_Configuration `json:"Configurations,omitempty"`
+
+ // CustomAmiId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-customamiid
+ CustomAmiId *types.Value `json:"CustomAmiId,omitempty"`
+
+ // EbsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-ebsconfiguration
+ EbsConfiguration *InstanceFleetConfig_EbsConfiguration `json:"EbsConfiguration,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // WeightedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html#cfn-elasticmapreduce-instancefleetconfig-instancetypeconfig-weightedcapacity
+ WeightedCapacity *types.Value `json:"WeightedCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig_InstanceTypeConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ondemandprovisioningspecification.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ondemandprovisioningspecification.go
new file mode 100644
index 0000000000..2e678f5a8a
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_ondemandprovisioningspecification.go
@@ -0,0 +1,37 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig_OnDemandProvisioningSpecification AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html
+type InstanceFleetConfig_OnDemandProvisioningSpecification struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-ondemandprovisioningspecification-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig_OnDemandProvisioningSpecification) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig_spotprovisioningspecification.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_spotprovisioningspecification.go
new file mode 100644
index 0000000000..00a71741f8
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_spotprovisioningspecification.go
@@ -0,0 +1,52 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig_SpotProvisioningSpecification AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html
+type InstanceFleetConfig_SpotProvisioningSpecification struct {
+
+ // AllocationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-allocationstrategy
+ AllocationStrategy *types.Value `json:"AllocationStrategy,omitempty"`
+
+ // BlockDurationMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-blockdurationminutes
+ BlockDurationMinutes *types.Value `json:"BlockDurationMinutes,omitempty"`
+
+ // TimeoutAction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-timeoutaction
+ TimeoutAction *types.Value `json:"TimeoutAction,omitempty"`
+
+ // TimeoutDurationMinutes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-spotprovisioningspecification.html#cfn-elasticmapreduce-instancefleetconfig-spotprovisioningspecification-timeoutdurationminutes
+ TimeoutDurationMinutes *types.Value `json:"TimeoutDurationMinutes"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig_SpotProvisioningSpecification) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancefleetconfig_volumespecification.go b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_volumespecification.go
new file mode 100644
index 0000000000..df72426c01
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancefleetconfig_volumespecification.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceFleetConfig_VolumeSpecification AWS CloudFormation Resource (AWS::EMR::InstanceFleetConfig.VolumeSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html
+type InstanceFleetConfig_VolumeSpecification struct {
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html#cfn-elasticmapreduce-instancefleetconfig-volumespecification-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // SizeInGB AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html#cfn-elasticmapreduce-instancefleetconfig-volumespecification-sizeingb
+ SizeInGB *types.Value `json:"SizeInGB"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-volumespecification.html#cfn-elasticmapreduce-instancefleetconfig-volumespecification-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceFleetConfig_VolumeSpecification) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceFleetConfig.VolumeSpecification"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig.go
new file mode 100644
index 0000000000..31e0d61e46
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig.go
@@ -0,0 +1,158 @@
+package emr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html
+type InstanceGroupConfig struct {
+
+ // AutoScalingPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-elasticmapreduce-instancegroupconfig-autoscalingpolicy
+ AutoScalingPolicy *InstanceGroupConfig_AutoScalingPolicy `json:"AutoScalingPolicy,omitempty"`
+
+ // BidPrice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-bidprice
+ BidPrice *types.Value `json:"BidPrice,omitempty"`
+
+ // Configurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-configurations
+ Configurations []InstanceGroupConfig_Configuration `json:"Configurations,omitempty"`
+
+ // CustomAmiId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-customamiid
+ CustomAmiId *types.Value `json:"CustomAmiId,omitempty"`
+
+ // EbsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-ebsconfiguration
+ EbsConfiguration *InstanceGroupConfig_EbsConfiguration `json:"EbsConfiguration,omitempty"`
+
+ // InstanceCount AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfiginstancecount-
+ InstanceCount *types.Value `json:"InstanceCount"`
+
+ // InstanceRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-instancerole
+ InstanceRole *types.Value `json:"InstanceRole,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // JobFlowId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-jobflowid
+ JobFlowId *types.Value `json:"JobFlowId,omitempty"`
+
+ // Market AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-market
+ Market *types.Value `json:"Market,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html#cfn-emr-instancegroupconfig-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r InstanceGroupConfig) MarshalJSON() ([]byte, error) {
+ type Properties InstanceGroupConfig
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *InstanceGroupConfig) UnmarshalJSON(b []byte) error {
+ type Properties InstanceGroupConfig
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = InstanceGroupConfig(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_autoscalingpolicy.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_autoscalingpolicy.go
new file mode 100644
index 0000000000..b572fa6369
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_autoscalingpolicy.go
@@ -0,0 +1,40 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_AutoScalingPolicy AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.AutoScalingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html
+type InstanceGroupConfig_AutoScalingPolicy struct {
+
+ // Constraints AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html#cfn-elasticmapreduce-instancegroupconfig-autoscalingpolicy-constraints
+ Constraints *InstanceGroupConfig_ScalingConstraints `json:"Constraints,omitempty"`
+
+ // Rules AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-autoscalingpolicy.html#cfn-elasticmapreduce-instancegroupconfig-autoscalingpolicy-rules
+ Rules []InstanceGroupConfig_ScalingRule `json:"Rules,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_AutoScalingPolicy) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go
new file mode 100644
index 0000000000..2237263259
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_cloudwatchalarmdefinition.go
@@ -0,0 +1,77 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_CloudWatchAlarmDefinition AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html
+type InstanceGroupConfig_CloudWatchAlarmDefinition struct {
+
+ // ComparisonOperator AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-comparisonoperator
+ ComparisonOperator *types.Value `json:"ComparisonOperator,omitempty"`
+
+ // Dimensions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-dimensions
+ Dimensions []InstanceGroupConfig_MetricDimension `json:"Dimensions,omitempty"`
+
+ // EvaluationPeriods AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-evaluationperiods
+ EvaluationPeriods *types.Value `json:"EvaluationPeriods,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-period
+ Period *types.Value `json:"Period"`
+
+ // Statistic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // Threshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-threshold
+ Threshold *types.Value `json:"Threshold"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition.html#cfn-elasticmapreduce-instancegroupconfig-cloudwatchalarmdefinition-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_CloudWatchAlarmDefinition) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_configuration.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_configuration.go
new file mode 100644
index 0000000000..78bb90bbf1
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_configuration.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_Configuration AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.Configuration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html
+type InstanceGroupConfig_Configuration struct {
+
+ // Classification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html#cfn-emr-cluster-configuration-classification
+ Classification *types.Value `json:"Classification,omitempty"`
+
+ // ConfigurationProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html#cfn-emr-cluster-configuration-configurationproperties
+ ConfigurationProperties map[string]*types.Value `json:"ConfigurationProperties,omitempty"`
+
+ // Configurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-configuration.html#cfn-emr-cluster-configuration-configurations
+ Configurations []InstanceGroupConfig_Configuration `json:"Configurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_Configuration) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.Configuration"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go
new file mode 100644
index 0000000000..c04946f949
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_ebsblockdeviceconfig.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_EbsBlockDeviceConfig AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html
+type InstanceGroupConfig_EbsBlockDeviceConfig struct {
+
+ // VolumeSpecification AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification
+ VolumeSpecification *InstanceGroupConfig_VolumeSpecification `json:"VolumeSpecification,omitempty"`
+
+ // VolumesPerInstance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumesperinstance
+ VolumesPerInstance *types.Value `json:"VolumesPerInstance,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_EbsBlockDeviceConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_ebsconfiguration.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_ebsconfiguration.go
new file mode 100644
index 0000000000..c371027613
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_ebsconfiguration.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_EbsConfiguration AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.EbsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html
+type InstanceGroupConfig_EbsConfiguration struct {
+
+ // EbsBlockDeviceConfigs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfigs
+ EbsBlockDeviceConfigs []InstanceGroupConfig_EbsBlockDeviceConfig `json:"EbsBlockDeviceConfigs,omitempty"`
+
+ // EbsOptimized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration.html#cfn-emr-ebsconfiguration-ebsoptimized
+ EbsOptimized *types.Value `json:"EbsOptimized,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_EbsConfiguration) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.EbsConfiguration"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_metricdimension.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_metricdimension.go
new file mode 100644
index 0000000000..6aae548edc
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_metricdimension.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_MetricDimension AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.MetricDimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html
+type InstanceGroupConfig_MetricDimension struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html#cfn-elasticmapreduce-instancegroupconfig-metricdimension-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-metricdimension.html#cfn-elasticmapreduce-instancegroupconfig-metricdimension-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_MetricDimension) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.MetricDimension"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingaction.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingaction.go
new file mode 100644
index 0000000000..5469b78d7a
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingaction.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_ScalingAction AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.ScalingAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html
+type InstanceGroupConfig_ScalingAction struct {
+
+ // Market AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html#cfn-elasticmapreduce-instancegroupconfig-scalingaction-market
+ Market *types.Value `json:"Market,omitempty"`
+
+ // SimpleScalingPolicyConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingaction.html#cfn-elasticmapreduce-instancegroupconfig-scalingaction-simplescalingpolicyconfiguration
+ SimpleScalingPolicyConfiguration *InstanceGroupConfig_SimpleScalingPolicyConfiguration `json:"SimpleScalingPolicyConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_ScalingAction) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.ScalingAction"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingconstraints.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingconstraints.go
new file mode 100644
index 0000000000..80201403df
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingconstraints.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_ScalingConstraints AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.ScalingConstraints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html
+type InstanceGroupConfig_ScalingConstraints struct {
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html#cfn-elasticmapreduce-instancegroupconfig-scalingconstraints-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity"`
+
+ // MinCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingconstraints.html#cfn-elasticmapreduce-instancegroupconfig-scalingconstraints-mincapacity
+ MinCapacity *types.Value `json:"MinCapacity"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_ScalingConstraints) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.ScalingConstraints"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingrule.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingrule.go
new file mode 100644
index 0000000000..cef507529a
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingrule.go
@@ -0,0 +1,52 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_ScalingRule AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.ScalingRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html
+type InstanceGroupConfig_ScalingRule struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html#cfn-elasticmapreduce-instancegroupconfig-scalingrule-action
+ Action *InstanceGroupConfig_ScalingAction `json:"Action,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html#cfn-elasticmapreduce-instancegroupconfig-scalingrule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html#cfn-elasticmapreduce-instancegroupconfig-scalingrule-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Trigger AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingrule.html#cfn-elasticmapreduce-instancegroupconfig-scalingrule-trigger
+ Trigger *InstanceGroupConfig_ScalingTrigger `json:"Trigger,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_ScalingRule) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.ScalingRule"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingtrigger.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingtrigger.go
new file mode 100644
index 0000000000..eedd2095a8
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_scalingtrigger.go
@@ -0,0 +1,35 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_ScalingTrigger AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.ScalingTrigger)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingtrigger.html
+type InstanceGroupConfig_ScalingTrigger struct {
+
+ // CloudWatchAlarmDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-scalingtrigger.html#cfn-elasticmapreduce-instancegroupconfig-scalingtrigger-cloudwatchalarmdefinition
+ CloudWatchAlarmDefinition *InstanceGroupConfig_CloudWatchAlarmDefinition `json:"CloudWatchAlarmDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_ScalingTrigger) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.ScalingTrigger"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go
new file mode 100644
index 0000000000..42e88c96c7
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_simplescalingpolicyconfiguration.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_SimpleScalingPolicyConfiguration AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html
+type InstanceGroupConfig_SimpleScalingPolicyConfiguration struct {
+
+ // AdjustmentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration-adjustmenttype
+ AdjustmentType *types.Value `json:"AdjustmentType,omitempty"`
+
+ // CoolDown AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration-cooldown
+ CoolDown *types.Value `json:"CoolDown,omitempty"`
+
+ // ScalingAdjustment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration.html#cfn-elasticmapreduce-instancegroupconfig-simplescalingpolicyconfiguration-scalingadjustment
+ ScalingAdjustment *types.Value `json:"ScalingAdjustment"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_SimpleScalingPolicyConfiguration) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-instancegroupconfig_volumespecification.go b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_volumespecification.go
new file mode 100644
index 0000000000..32fff6b18c
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-instancegroupconfig_volumespecification.go
@@ -0,0 +1,47 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceGroupConfig_VolumeSpecification AWS CloudFormation Resource (AWS::EMR::InstanceGroupConfig.VolumeSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html
+type InstanceGroupConfig_VolumeSpecification struct {
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // SizeInGB AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification-sizeingb
+ SizeInGB *types.Value `json:"SizeInGB"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification.html#cfn-emr-ebsconfiguration-ebsblockdeviceconfig-volumespecification-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceGroupConfig_VolumeSpecification) AWSCloudFormationType() string {
+ return "AWS::EMR::InstanceGroupConfig.VolumeSpecification"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-securityconfiguration.go b/goformation/cloudformation/emr/aws-emr-securityconfiguration.go
new file mode 100644
index 0000000000..d94d4ea28e
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-securityconfiguration.go
@@ -0,0 +1,113 @@
+package emr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityConfiguration AWS CloudFormation Resource (AWS::EMR::SecurityConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html
+type SecurityConfiguration struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html#cfn-emr-securityconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SecurityConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-securityconfiguration.html#cfn-emr-securityconfiguration-securityconfiguration
+ SecurityConfiguration interface{} `json:"SecurityConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityConfiguration) AWSCloudFormationType() string {
+ return "AWS::EMR::SecurityConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SecurityConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties SecurityConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SecurityConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties SecurityConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SecurityConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/emr/aws-emr-step.go b/goformation/cloudformation/emr/aws-emr-step.go
new file mode 100644
index 0000000000..edd0c1378b
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-step.go
@@ -0,0 +1,123 @@
+package emr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Step AWS CloudFormation Resource (AWS::EMR::Step)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html
+type Step struct {
+
+ // ActionOnFailure AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html#cfn-elasticmapreduce-step-actiononfailure
+ ActionOnFailure *types.Value `json:"ActionOnFailure,omitempty"`
+
+ // HadoopJarStep AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html#cfn-elasticmapreduce-step-hadoopjarstep
+ HadoopJarStep *Step_HadoopJarStepConfig `json:"HadoopJarStep,omitempty"`
+
+ // JobFlowId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html#cfn-elasticmapreduce-step-jobflowid
+ JobFlowId *types.Value `json:"JobFlowId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-step.html#cfn-elasticmapreduce-step-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Step) AWSCloudFormationType() string {
+ return "AWS::EMR::Step"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Step) MarshalJSON() ([]byte, error) {
+ type Properties Step
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Step) UnmarshalJSON(b []byte) error {
+ type Properties Step
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Step(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/emr/aws-emr-step_hadoopjarstepconfig.go b/goformation/cloudformation/emr/aws-emr-step_hadoopjarstepconfig.go
new file mode 100644
index 0000000000..a1c0a38d88
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-step_hadoopjarstepconfig.go
@@ -0,0 +1,52 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Step_HadoopJarStepConfig AWS CloudFormation Resource (AWS::EMR::Step.HadoopJarStepConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html
+type Step_HadoopJarStepConfig struct {
+
+ // Args AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html#cfn-elasticmapreduce-step-hadoopjarstepconfig-args
+ Args *types.Value `json:"Args,omitempty"`
+
+ // Jar AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html#cfn-elasticmapreduce-step-hadoopjarstepconfig-jar
+ Jar *types.Value `json:"Jar,omitempty"`
+
+ // MainClass AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html#cfn-elasticmapreduce-step-hadoopjarstepconfig-mainclass
+ MainClass *types.Value `json:"MainClass,omitempty"`
+
+ // StepProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-hadoopjarstepconfig.html#cfn-elasticmapreduce-step-hadoopjarstepconfig-stepproperties
+ StepProperties []Step_KeyValue `json:"StepProperties,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Step_HadoopJarStepConfig) AWSCloudFormationType() string {
+ return "AWS::EMR::Step.HadoopJarStepConfig"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-step_keyvalue.go b/goformation/cloudformation/emr/aws-emr-step_keyvalue.go
new file mode 100644
index 0000000000..e9a194ee12
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-step_keyvalue.go
@@ -0,0 +1,42 @@
+package emr
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Step_KeyValue AWS CloudFormation Resource (AWS::EMR::Step.KeyValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html
+type Step_KeyValue struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html#cfn-elasticmapreduce-step-keyvalue-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-step-keyvalue.html#cfn-elasticmapreduce-step-keyvalue-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Step_KeyValue) AWSCloudFormationType() string {
+ return "AWS::EMR::Step.KeyValue"
+}
diff --git a/goformation/cloudformation/emr/aws-emr-studio.go b/goformation/cloudformation/emr/aws-emr-studio.go
new file mode 100644
index 0000000000..b6c323e6f9
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-studio.go
@@ -0,0 +1,169 @@
+package emr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Studio AWS CloudFormation Resource (AWS::EMR::Studio)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html
+type Studio struct {
+
+ // AuthMode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-authmode
+ AuthMode *types.Value `json:"AuthMode,omitempty"`
+
+ // DefaultS3Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-defaults3location
+ DefaultS3Location *types.Value `json:"DefaultS3Location,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EngineSecurityGroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-enginesecuritygroupid
+ EngineSecurityGroupId *types.Value `json:"EngineSecurityGroupId,omitempty"`
+
+ // IdpAuthUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-idpauthurl
+ IdpAuthUrl *types.Value `json:"IdpAuthUrl,omitempty"`
+
+ // IdpRelayStateParameterName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-idprelaystateparametername
+ IdpRelayStateParameterName *types.Value `json:"IdpRelayStateParameterName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ServiceRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-servicerole
+ ServiceRole *types.Value `json:"ServiceRole,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // UserRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-userrole
+ UserRole *types.Value `json:"UserRole,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // WorkspaceSecurityGroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studio.html#cfn-emr-studio-workspacesecuritygroupid
+ WorkspaceSecurityGroupId *types.Value `json:"WorkspaceSecurityGroupId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Studio) AWSCloudFormationType() string {
+ return "AWS::EMR::Studio"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Studio) MarshalJSON() ([]byte, error) {
+ type Properties Studio
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Studio) UnmarshalJSON(b []byte) error {
+ type Properties Studio
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Studio(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/emr/aws-emr-studiosessionmapping.go b/goformation/cloudformation/emr/aws-emr-studiosessionmapping.go
new file mode 100644
index 0000000000..53aaddbc61
--- /dev/null
+++ b/goformation/cloudformation/emr/aws-emr-studiosessionmapping.go
@@ -0,0 +1,123 @@
+package emr
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StudioSessionMapping AWS CloudFormation Resource (AWS::EMR::StudioSessionMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html
+type StudioSessionMapping struct {
+
+ // IdentityName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html#cfn-emr-studiosessionmapping-identityname
+ IdentityName *types.Value `json:"IdentityName,omitempty"`
+
+ // IdentityType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html#cfn-emr-studiosessionmapping-identitytype
+ IdentityType *types.Value `json:"IdentityType,omitempty"`
+
+ // SessionPolicyArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html#cfn-emr-studiosessionmapping-sessionpolicyarn
+ SessionPolicyArn *types.Value `json:"SessionPolicyArn,omitempty"`
+
+ // StudioId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-studiosessionmapping.html#cfn-emr-studiosessionmapping-studioid
+ StudioId *types.Value `json:"StudioId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StudioSessionMapping) AWSCloudFormationType() string {
+ return "AWS::EMR::StudioSessionMapping"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StudioSessionMapping) MarshalJSON() ([]byte, error) {
+ type Properties StudioSessionMapping
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StudioSessionMapping) UnmarshalJSON(b []byte) error {
+ type Properties StudioSessionMapping
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StudioSessionMapping(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster.go b/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster.go
new file mode 100644
index 0000000000..2d053b1947
--- /dev/null
+++ b/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster.go
@@ -0,0 +1,119 @@
+package emrcontainers
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualCluster AWS CloudFormation Resource (AWS::EMRContainers::VirtualCluster)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html
+type VirtualCluster struct {
+
+ // ContainerProvider AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html#cfn-emrcontainers-virtualcluster-containerprovider
+ ContainerProvider *VirtualCluster_ContainerProvider `json:"ContainerProvider,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html#cfn-emrcontainers-virtualcluster-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emrcontainers-virtualcluster.html#cfn-emrcontainers-virtualcluster-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualCluster) AWSCloudFormationType() string {
+ return "AWS::EMRContainers::VirtualCluster"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VirtualCluster) MarshalJSON() ([]byte, error) {
+ type Properties VirtualCluster
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VirtualCluster) UnmarshalJSON(b []byte) error {
+ type Properties VirtualCluster
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VirtualCluster(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_containerinfo.go b/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_containerinfo.go
new file mode 100644
index 0000000000..27c052f9e2
--- /dev/null
+++ b/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_containerinfo.go
@@ -0,0 +1,35 @@
+package emrcontainers
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualCluster_ContainerInfo AWS CloudFormation Resource (AWS::EMRContainers::VirtualCluster.ContainerInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerinfo.html
+type VirtualCluster_ContainerInfo struct {
+
+ // EksInfo AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerinfo.html#cfn-emrcontainers-virtualcluster-containerinfo-eksinfo
+ EksInfo *VirtualCluster_EksInfo `json:"EksInfo,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualCluster_ContainerInfo) AWSCloudFormationType() string {
+ return "AWS::EMRContainers::VirtualCluster.ContainerInfo"
+}
diff --git a/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_containerprovider.go b/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_containerprovider.go
new file mode 100644
index 0000000000..7825635621
--- /dev/null
+++ b/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_containerprovider.go
@@ -0,0 +1,47 @@
+package emrcontainers
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualCluster_ContainerProvider AWS CloudFormation Resource (AWS::EMRContainers::VirtualCluster.ContainerProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html
+type VirtualCluster_ContainerProvider struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html#cfn-emrcontainers-virtualcluster-containerprovider-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Info AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html#cfn-emrcontainers-virtualcluster-containerprovider-info
+ Info *VirtualCluster_ContainerInfo `json:"Info,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-containerprovider.html#cfn-emrcontainers-virtualcluster-containerprovider-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualCluster_ContainerProvider) AWSCloudFormationType() string {
+ return "AWS::EMRContainers::VirtualCluster.ContainerProvider"
+}
diff --git a/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_eksinfo.go b/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_eksinfo.go
new file mode 100644
index 0000000000..436e83c609
--- /dev/null
+++ b/goformation/cloudformation/emrcontainers/aws-emrcontainers-virtualcluster_eksinfo.go
@@ -0,0 +1,37 @@
+package emrcontainers
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualCluster_EksInfo AWS CloudFormation Resource (AWS::EMRContainers::VirtualCluster.EksInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-eksinfo.html
+type VirtualCluster_EksInfo struct {
+
+ // Namespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emrcontainers-virtualcluster-eksinfo.html#cfn-emrcontainers-virtualcluster-eksinfo-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualCluster_EksInfo) AWSCloudFormationType() string {
+ return "AWS::EMRContainers::VirtualCluster.EksInfo"
+}
diff --git a/goformation/cloudformation/events/aws-events-apidestination.go b/goformation/cloudformation/events/aws-events-apidestination.go
new file mode 100644
index 0000000000..8402c72652
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-apidestination.go
@@ -0,0 +1,133 @@
+package events
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApiDestination AWS CloudFormation Resource (AWS::Events::ApiDestination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html
+type ApiDestination struct {
+
+ // ConnectionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-connectionarn
+ ConnectionArn *types.Value `json:"ConnectionArn,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // HttpMethod AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-httpmethod
+ HttpMethod *types.Value `json:"HttpMethod,omitempty"`
+
+ // InvocationEndpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-invocationendpoint
+ InvocationEndpoint *types.Value `json:"InvocationEndpoint,omitempty"`
+
+ // InvocationRateLimitPerSecond AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-invocationratelimitpersecond
+ InvocationRateLimitPerSecond *types.Value `json:"InvocationRateLimitPerSecond,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html#cfn-events-apidestination-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApiDestination) AWSCloudFormationType() string {
+ return "AWS::Events::ApiDestination"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApiDestination) MarshalJSON() ([]byte, error) {
+ type Properties ApiDestination
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApiDestination) UnmarshalJSON(b []byte) error {
+ type Properties ApiDestination
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApiDestination(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/events/aws-events-archive.go b/goformation/cloudformation/events/aws-events-archive.go
new file mode 100644
index 0000000000..33718fcd0d
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-archive.go
@@ -0,0 +1,128 @@
+package events
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Archive AWS CloudFormation Resource (AWS::Events::Archive)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html
+type Archive struct {
+
+ // ArchiveName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-archivename
+ ArchiveName *types.Value `json:"ArchiveName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EventPattern AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-eventpattern
+ EventPattern interface{} `json:"EventPattern,omitempty"`
+
+ // RetentionDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-retentiondays
+ RetentionDays *types.Value `json:"RetentionDays,omitempty"`
+
+ // SourceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-archive.html#cfn-events-archive-sourcearn
+ SourceArn *types.Value `json:"SourceArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Archive) AWSCloudFormationType() string {
+ return "AWS::Events::Archive"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Archive) MarshalJSON() ([]byte, error) {
+ type Properties Archive
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Archive) UnmarshalJSON(b []byte) error {
+ type Properties Archive
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Archive(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/events/aws-events-connection.go b/goformation/cloudformation/events/aws-events-connection.go
new file mode 100644
index 0000000000..44e3bd6b8f
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-connection.go
@@ -0,0 +1,123 @@
+package events
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Connection AWS CloudFormation Resource (AWS::Events::Connection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html
+type Connection struct {
+
+ // AuthParameters AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-authparameters
+ AuthParameters interface{} `json:"AuthParameters,omitempty"`
+
+ // AuthorizationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-authorizationtype
+ AuthorizationType *types.Value `json:"AuthorizationType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-connection.html#cfn-events-connection-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Connection) AWSCloudFormationType() string {
+ return "AWS::Events::Connection"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Connection) MarshalJSON() ([]byte, error) {
+ type Properties Connection
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Connection) UnmarshalJSON(b []byte) error {
+ type Properties Connection
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Connection(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/events/aws-events-eventbus.go b/goformation/cloudformation/events/aws-events-eventbus.go
new file mode 100644
index 0000000000..ed97911eae
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-eventbus.go
@@ -0,0 +1,113 @@
+package events
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventBus AWS CloudFormation Resource (AWS::Events::EventBus)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html
+type EventBus struct {
+
+ // EventSourceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html#cfn-events-eventbus-eventsourcename
+ EventSourceName *types.Value `json:"EventSourceName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html#cfn-events-eventbus-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventBus) AWSCloudFormationType() string {
+ return "AWS::Events::EventBus"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EventBus) MarshalJSON() ([]byte, error) {
+ type Properties EventBus
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EventBus) UnmarshalJSON(b []byte) error {
+ type Properties EventBus
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EventBus(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/events/aws-events-eventbuspolicy.go b/goformation/cloudformation/events/aws-events-eventbuspolicy.go
new file mode 100644
index 0000000000..4b0752ce55
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-eventbuspolicy.go
@@ -0,0 +1,133 @@
+package events
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventBusPolicy AWS CloudFormation Resource (AWS::Events::EventBusPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html
+type EventBusPolicy struct {
+
+ // Action AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // Condition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-condition
+ Condition *EventBusPolicy_Condition `json:"Condition,omitempty"`
+
+ // EventBusName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-eventbusname
+ EventBusName *types.Value `json:"EventBusName,omitempty"`
+
+ // Principal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-principal
+ Principal *types.Value `json:"Principal,omitempty"`
+
+ // Statement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-statement
+ Statement interface{} `json:"Statement,omitempty"`
+
+ // StatementId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html#cfn-events-eventbuspolicy-statementid
+ StatementId *types.Value `json:"StatementId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventBusPolicy) AWSCloudFormationType() string {
+ return "AWS::Events::EventBusPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EventBusPolicy) MarshalJSON() ([]byte, error) {
+ type Properties EventBusPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EventBusPolicy) UnmarshalJSON(b []byte) error {
+ type Properties EventBusPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EventBusPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/events/aws-events-eventbuspolicy_condition.go b/goformation/cloudformation/events/aws-events-eventbuspolicy_condition.go
new file mode 100644
index 0000000000..a31a4005ea
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-eventbuspolicy_condition.go
@@ -0,0 +1,47 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventBusPolicy_Condition AWS CloudFormation Resource (AWS::Events::EventBusPolicy.Condition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbuspolicy-condition.html
+type EventBusPolicy_Condition struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbuspolicy-condition.html#cfn-events-eventbuspolicy-condition-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbuspolicy-condition.html#cfn-events-eventbuspolicy-condition-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-eventbuspolicy-condition.html#cfn-events-eventbuspolicy-condition-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventBusPolicy_Condition) AWSCloudFormationType() string {
+ return "AWS::Events::EventBusPolicy.Condition"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule.go b/goformation/cloudformation/events/aws-events-rule.go
new file mode 100644
index 0000000000..ef5993dd42
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule.go
@@ -0,0 +1,143 @@
+package events
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule AWS CloudFormation Resource (AWS::Events::Rule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html
+type Rule struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EventBusName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname
+ EventBusName *types.Value `json:"EventBusName,omitempty"`
+
+ // EventPattern AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern
+ EventPattern interface{} `json:"EventPattern,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // ScheduleExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression
+ ScheduleExpression *types.Value `json:"ScheduleExpression,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state
+ State *types.Value `json:"State,omitempty"`
+
+ // Targets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-targets
+ Targets []Rule_Target `json:"Targets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule) AWSCloudFormationType() string {
+ return "AWS::Events::Rule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Rule) MarshalJSON() ([]byte, error) {
+ type Properties Rule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Rule) UnmarshalJSON(b []byte) error {
+ type Properties Rule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Rule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_awsvpcconfiguration.go b/goformation/cloudformation/events/aws-events-rule_awsvpcconfiguration.go
new file mode 100644
index 0000000000..1da64cafd4
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_awsvpcconfiguration.go
@@ -0,0 +1,47 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_AwsVpcConfiguration AWS CloudFormation Resource (AWS::Events::Rule.AwsVpcConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html
+type Rule_AwsVpcConfiguration struct {
+
+ // AssignPublicIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html#cfn-events-rule-awsvpcconfiguration-assignpublicip
+ AssignPublicIp *types.Value `json:"AssignPublicIp,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html#cfn-events-rule-awsvpcconfiguration-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // Subnets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-awsvpcconfiguration.html#cfn-events-rule-awsvpcconfiguration-subnets
+ Subnets *types.Value `json:"Subnets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_AwsVpcConfiguration) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.AwsVpcConfiguration"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_batcharrayproperties.go b/goformation/cloudformation/events/aws-events-rule_batcharrayproperties.go
new file mode 100644
index 0000000000..9629fae24c
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_batcharrayproperties.go
@@ -0,0 +1,37 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_BatchArrayProperties AWS CloudFormation Resource (AWS::Events::Rule.BatchArrayProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batcharrayproperties.html
+type Rule_BatchArrayProperties struct {
+
+ // Size AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batcharrayproperties.html#cfn-events-rule-batcharrayproperties-size
+ Size *types.Value `json:"Size,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_BatchArrayProperties) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.BatchArrayProperties"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_batchparameters.go b/goformation/cloudformation/events/aws-events-rule_batchparameters.go
new file mode 100644
index 0000000000..d0409be49d
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_batchparameters.go
@@ -0,0 +1,52 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_BatchParameters AWS CloudFormation Resource (AWS::Events::Rule.BatchParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchparameters.html
+type Rule_BatchParameters struct {
+
+ // ArrayProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchparameters.html#cfn-events-rule-batchparameters-arrayproperties
+ ArrayProperties *Rule_BatchArrayProperties `json:"ArrayProperties,omitempty"`
+
+ // JobDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchparameters.html#cfn-events-rule-batchparameters-jobdefinition
+ JobDefinition *types.Value `json:"JobDefinition,omitempty"`
+
+ // JobName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchparameters.html#cfn-events-rule-batchparameters-jobname
+ JobName *types.Value `json:"JobName,omitempty"`
+
+ // RetryStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchparameters.html#cfn-events-rule-batchparameters-retrystrategy
+ RetryStrategy *Rule_BatchRetryStrategy `json:"RetryStrategy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_BatchParameters) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.BatchParameters"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_batchretrystrategy.go b/goformation/cloudformation/events/aws-events-rule_batchretrystrategy.go
new file mode 100644
index 0000000000..356ccd5c1f
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_batchretrystrategy.go
@@ -0,0 +1,37 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_BatchRetryStrategy AWS CloudFormation Resource (AWS::Events::Rule.BatchRetryStrategy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchretrystrategy.html
+type Rule_BatchRetryStrategy struct {
+
+ // Attempts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-batchretrystrategy.html#cfn-events-rule-batchretrystrategy-attempts
+ Attempts *types.Value `json:"Attempts,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_BatchRetryStrategy) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.BatchRetryStrategy"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_capacityproviderstrategyitem.go b/goformation/cloudformation/events/aws-events-rule_capacityproviderstrategyitem.go
new file mode 100644
index 0000000000..2ea01050d7
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_capacityproviderstrategyitem.go
@@ -0,0 +1,47 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_CapacityProviderStrategyItem AWS CloudFormation Resource (AWS::Events::Rule.CapacityProviderStrategyItem)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-capacityproviderstrategyitem.html
+type Rule_CapacityProviderStrategyItem struct {
+
+ // Base AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-capacityproviderstrategyitem.html#cfn-events-rule-capacityproviderstrategyitem-base
+ Base *types.Value `json:"Base,omitempty"`
+
+ // CapacityProvider AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-capacityproviderstrategyitem.html#cfn-events-rule-capacityproviderstrategyitem-capacityprovider
+ CapacityProvider *types.Value `json:"CapacityProvider,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-capacityproviderstrategyitem.html#cfn-events-rule-capacityproviderstrategyitem-weight
+ Weight *types.Value `json:"Weight,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_CapacityProviderStrategyItem) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.CapacityProviderStrategyItem"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_deadletterconfig.go b/goformation/cloudformation/events/aws-events-rule_deadletterconfig.go
new file mode 100644
index 0000000000..851446394d
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_deadletterconfig.go
@@ -0,0 +1,37 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_DeadLetterConfig AWS CloudFormation Resource (AWS::Events::Rule.DeadLetterConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html
+type Rule_DeadLetterConfig struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_DeadLetterConfig) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.DeadLetterConfig"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_ecsparameters.go b/goformation/cloudformation/events/aws-events-rule_ecsparameters.go
new file mode 100644
index 0000000000..5bfce1113c
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_ecsparameters.go
@@ -0,0 +1,103 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_EcsParameters AWS CloudFormation Resource (AWS::Events::Rule.EcsParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html
+type Rule_EcsParameters struct {
+
+ // CapacityProviderStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-capacityproviderstrategy
+ CapacityProviderStrategy []Rule_CapacityProviderStrategyItem `json:"CapacityProviderStrategy,omitempty"`
+
+ // EnableECSManagedTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-enableecsmanagedtags
+ EnableECSManagedTags *types.Value `json:"EnableECSManagedTags,omitempty"`
+
+ // EnableExecuteCommand AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-enableexecutecommand
+ EnableExecuteCommand *types.Value `json:"EnableExecuteCommand,omitempty"`
+
+ // Group AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-group
+ Group *types.Value `json:"Group,omitempty"`
+
+ // LaunchType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-launchtype
+ LaunchType *types.Value `json:"LaunchType,omitempty"`
+
+ // NetworkConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-networkconfiguration
+ NetworkConfiguration *Rule_NetworkConfiguration `json:"NetworkConfiguration,omitempty"`
+
+ // PlacementConstraints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-placementconstraints
+ PlacementConstraints []Rule_PlacementConstraint `json:"PlacementConstraints,omitempty"`
+
+ // PlacementStrategies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-placementstrategies
+ PlacementStrategies []Rule_PlacementStrategy `json:"PlacementStrategies,omitempty"`
+
+ // PlatformVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-platformversion
+ PlatformVersion *types.Value `json:"PlatformVersion,omitempty"`
+
+ // PropagateTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-propagatetags
+ PropagateTags *types.Value `json:"PropagateTags,omitempty"`
+
+ // ReferenceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-referenceid
+ ReferenceId *types.Value `json:"ReferenceId,omitempty"`
+
+ // TagList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taglist
+ TagList []cloudformation.Tag `json:"TagList,omitempty"`
+
+ // TaskCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskcount
+ TaskCount *types.Value `json:"TaskCount,omitempty"`
+
+ // TaskDefinitionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-ecsparameters.html#cfn-events-rule-ecsparameters-taskdefinitionarn
+ TaskDefinitionArn *types.Value `json:"TaskDefinitionArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_EcsParameters) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.EcsParameters"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_httpparameters.go b/goformation/cloudformation/events/aws-events-rule_httpparameters.go
new file mode 100644
index 0000000000..b2c4567378
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_httpparameters.go
@@ -0,0 +1,47 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_HttpParameters AWS CloudFormation Resource (AWS::Events::Rule.HttpParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html
+type Rule_HttpParameters struct {
+
+ // HeaderParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-headerparameters
+ HeaderParameters map[string]*types.Value `json:"HeaderParameters,omitempty"`
+
+ // PathParameterValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-pathparametervalues
+ PathParameterValues *types.Value `json:"PathParameterValues,omitempty"`
+
+ // QueryStringParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-httpparameters.html#cfn-events-rule-httpparameters-querystringparameters
+ QueryStringParameters map[string]*types.Value `json:"QueryStringParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_HttpParameters) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.HttpParameters"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_inputtransformer.go b/goformation/cloudformation/events/aws-events-rule_inputtransformer.go
new file mode 100644
index 0000000000..55980afff8
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_inputtransformer.go
@@ -0,0 +1,42 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_InputTransformer AWS CloudFormation Resource (AWS::Events::Rule.InputTransformer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html
+type Rule_InputTransformer struct {
+
+ // InputPathsMap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputpathsmap
+ InputPathsMap map[string]*types.Value `json:"InputPathsMap,omitempty"`
+
+ // InputTemplate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputtemplate
+ InputTemplate *types.Value `json:"InputTemplate,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_InputTransformer) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.InputTransformer"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_kinesisparameters.go b/goformation/cloudformation/events/aws-events-rule_kinesisparameters.go
new file mode 100644
index 0000000000..2e61733e3b
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_kinesisparameters.go
@@ -0,0 +1,37 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_KinesisParameters AWS CloudFormation Resource (AWS::Events::Rule.KinesisParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html
+type Rule_KinesisParameters struct {
+
+ // PartitionKeyPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-kinesisparameters.html#cfn-events-rule-kinesisparameters-partitionkeypath
+ PartitionKeyPath *types.Value `json:"PartitionKeyPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_KinesisParameters) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.KinesisParameters"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_networkconfiguration.go b/goformation/cloudformation/events/aws-events-rule_networkconfiguration.go
new file mode 100644
index 0000000000..729abb009a
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_networkconfiguration.go
@@ -0,0 +1,35 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_NetworkConfiguration AWS CloudFormation Resource (AWS::Events::Rule.NetworkConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-networkconfiguration.html
+type Rule_NetworkConfiguration struct {
+
+ // AwsVpcConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-networkconfiguration.html#cfn-events-rule-networkconfiguration-awsvpcconfiguration
+ AwsVpcConfiguration *Rule_AwsVpcConfiguration `json:"AwsVpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_NetworkConfiguration) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.NetworkConfiguration"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_placementconstraint.go b/goformation/cloudformation/events/aws-events-rule_placementconstraint.go
new file mode 100644
index 0000000000..cdadbf1de5
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_placementconstraint.go
@@ -0,0 +1,42 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_PlacementConstraint AWS CloudFormation Resource (AWS::Events::Rule.PlacementConstraint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementconstraint.html
+type Rule_PlacementConstraint struct {
+
+ // Expression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementconstraint.html#cfn-events-rule-placementconstraint-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementconstraint.html#cfn-events-rule-placementconstraint-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_PlacementConstraint) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.PlacementConstraint"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_placementstrategy.go b/goformation/cloudformation/events/aws-events-rule_placementstrategy.go
new file mode 100644
index 0000000000..8ece929f8f
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_placementstrategy.go
@@ -0,0 +1,42 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_PlacementStrategy AWS CloudFormation Resource (AWS::Events::Rule.PlacementStrategy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementstrategy.html
+type Rule_PlacementStrategy struct {
+
+ // Field AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementstrategy.html#cfn-events-rule-placementstrategy-field
+ Field *types.Value `json:"Field,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-placementstrategy.html#cfn-events-rule-placementstrategy-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_PlacementStrategy) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.PlacementStrategy"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_redshiftdataparameters.go b/goformation/cloudformation/events/aws-events-rule_redshiftdataparameters.go
new file mode 100644
index 0000000000..52e32a4eb9
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_redshiftdataparameters.go
@@ -0,0 +1,62 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_RedshiftDataParameters AWS CloudFormation Resource (AWS::Events::Rule.RedshiftDataParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html
+type Rule_RedshiftDataParameters struct {
+
+ // Database AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-database
+ Database *types.Value `json:"Database,omitempty"`
+
+ // DbUser AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-dbuser
+ DbUser *types.Value `json:"DbUser,omitempty"`
+
+ // SecretManagerArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-secretmanagerarn
+ SecretManagerArn *types.Value `json:"SecretManagerArn,omitempty"`
+
+ // Sql AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-sql
+ Sql *types.Value `json:"Sql,omitempty"`
+
+ // StatementName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-statementname
+ StatementName *types.Value `json:"StatementName,omitempty"`
+
+ // WithEvent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-redshiftdataparameters.html#cfn-events-rule-redshiftdataparameters-withevent
+ WithEvent *types.Value `json:"WithEvent,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_RedshiftDataParameters) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.RedshiftDataParameters"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_retrypolicy.go b/goformation/cloudformation/events/aws-events-rule_retrypolicy.go
new file mode 100644
index 0000000000..4a370b552a
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_retrypolicy.go
@@ -0,0 +1,42 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_RetryPolicy AWS CloudFormation Resource (AWS::Events::Rule.RetryPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html
+type Rule_RetryPolicy struct {
+
+ // MaximumEventAgeInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html#cfn-events-rule-retrypolicy-maximumeventageinseconds
+ MaximumEventAgeInSeconds *types.Value `json:"MaximumEventAgeInSeconds,omitempty"`
+
+ // MaximumRetryAttempts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-retrypolicy.html#cfn-events-rule-retrypolicy-maximumretryattempts
+ MaximumRetryAttempts *types.Value `json:"MaximumRetryAttempts,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_RetryPolicy) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.RetryPolicy"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_runcommandparameters.go b/goformation/cloudformation/events/aws-events-rule_runcommandparameters.go
new file mode 100644
index 0000000000..a41dfa0bd2
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_runcommandparameters.go
@@ -0,0 +1,35 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_RunCommandParameters AWS CloudFormation Resource (AWS::Events::Rule.RunCommandParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html
+type Rule_RunCommandParameters struct {
+
+ // RunCommandTargets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandparameters.html#cfn-events-rule-runcommandparameters-runcommandtargets
+ RunCommandTargets []Rule_RunCommandTarget `json:"RunCommandTargets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_RunCommandParameters) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.RunCommandParameters"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_runcommandtarget.go b/goformation/cloudformation/events/aws-events-rule_runcommandtarget.go
new file mode 100644
index 0000000000..114b344450
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_runcommandtarget.go
@@ -0,0 +1,42 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_RunCommandTarget AWS CloudFormation Resource (AWS::Events::Rule.RunCommandTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html
+type Rule_RunCommandTarget struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html#cfn-events-rule-runcommandtarget-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-runcommandtarget.html#cfn-events-rule-runcommandtarget-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_RunCommandTarget) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.RunCommandTarget"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_sqsparameters.go b/goformation/cloudformation/events/aws-events-rule_sqsparameters.go
new file mode 100644
index 0000000000..a70e95d7c5
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_sqsparameters.go
@@ -0,0 +1,37 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_SqsParameters AWS CloudFormation Resource (AWS::Events::Rule.SqsParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sqsparameters.html
+type Rule_SqsParameters struct {
+
+ // MessageGroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-sqsparameters.html#cfn-events-rule-sqsparameters-messagegroupid
+ MessageGroupId *types.Value `json:"MessageGroupId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_SqsParameters) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.SqsParameters"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_tag.go b/goformation/cloudformation/events/aws-events-rule_tag.go
new file mode 100644
index 0000000000..15377f7131
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_tag.go
@@ -0,0 +1,42 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_Tag AWS CloudFormation Resource (AWS::Events::Rule.Tag)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-tag.html
+type Rule_Tag struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-tag.html#cfn-events-rule-tag-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-tag.html#cfn-events-rule-tag-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_Tag) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.Tag"
+}
diff --git a/goformation/cloudformation/events/aws-events-rule_target.go b/goformation/cloudformation/events/aws-events-rule_target.go
new file mode 100644
index 0000000000..6a83a6472e
--- /dev/null
+++ b/goformation/cloudformation/events/aws-events-rule_target.go
@@ -0,0 +1,107 @@
+package events
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Rule_Target AWS CloudFormation Resource (AWS::Events::Rule.Target)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html
+type Rule_Target struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // BatchParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-batchparameters
+ BatchParameters *Rule_BatchParameters `json:"BatchParameters,omitempty"`
+
+ // DeadLetterConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig
+ DeadLetterConfig *Rule_DeadLetterConfig `json:"DeadLetterConfig,omitempty"`
+
+ // EcsParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-ecsparameters
+ EcsParameters *Rule_EcsParameters `json:"EcsParameters,omitempty"`
+
+ // HttpParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-httpparameters
+ HttpParameters *Rule_HttpParameters `json:"HttpParameters,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Input AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input
+ Input *types.Value `json:"Input,omitempty"`
+
+ // InputPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath
+ InputPath *types.Value `json:"InputPath,omitempty"`
+
+ // InputTransformer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputtransformer
+ InputTransformer *Rule_InputTransformer `json:"InputTransformer,omitempty"`
+
+ // KinesisParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-kinesisparameters
+ KinesisParameters *Rule_KinesisParameters `json:"KinesisParameters,omitempty"`
+
+ // RedshiftDataParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-redshiftdataparameters
+ RedshiftDataParameters *Rule_RedshiftDataParameters `json:"RedshiftDataParameters,omitempty"`
+
+ // RetryPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy
+ RetryPolicy *Rule_RetryPolicy `json:"RetryPolicy,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // RunCommandParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-runcommandparameters
+ RunCommandParameters *Rule_RunCommandParameters `json:"RunCommandParameters,omitempty"`
+
+ // SqsParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-sqsparameters
+ SqsParameters *Rule_SqsParameters `json:"SqsParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Rule_Target) AWSCloudFormationType() string {
+ return "AWS::Events::Rule.Target"
+}
diff --git a/goformation/cloudformation/eventschemas/aws-eventschemas-discoverer.go b/goformation/cloudformation/eventschemas/aws-eventschemas-discoverer.go
new file mode 100644
index 0000000000..7b192a8066
--- /dev/null
+++ b/goformation/cloudformation/eventschemas/aws-eventschemas-discoverer.go
@@ -0,0 +1,123 @@
+package eventschemas
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Discoverer AWS CloudFormation Resource (AWS::EventSchemas::Discoverer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html
+type Discoverer struct {
+
+ // CrossAccount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html#cfn-eventschemas-discoverer-crossaccount
+ CrossAccount *types.Value `json:"CrossAccount,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html#cfn-eventschemas-discoverer-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // SourceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html#cfn-eventschemas-discoverer-sourcearn
+ SourceArn *types.Value `json:"SourceArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-discoverer.html#cfn-eventschemas-discoverer-tags
+ Tags []Discoverer_TagsEntry `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Discoverer) AWSCloudFormationType() string {
+ return "AWS::EventSchemas::Discoverer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Discoverer) MarshalJSON() ([]byte, error) {
+ type Properties Discoverer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Discoverer) UnmarshalJSON(b []byte) error {
+ type Properties Discoverer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Discoverer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eventschemas/aws-eventschemas-discoverer_tagsentry.go b/goformation/cloudformation/eventschemas/aws-eventschemas-discoverer_tagsentry.go
new file mode 100644
index 0000000000..ee31b5f8fe
--- /dev/null
+++ b/goformation/cloudformation/eventschemas/aws-eventschemas-discoverer_tagsentry.go
@@ -0,0 +1,42 @@
+package eventschemas
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Discoverer_TagsEntry AWS CloudFormation Resource (AWS::EventSchemas::Discoverer.TagsEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-discoverer-tagsentry.html
+type Discoverer_TagsEntry struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-discoverer-tagsentry.html#cfn-eventschemas-discoverer-tagsentry-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-discoverer-tagsentry.html#cfn-eventschemas-discoverer-tagsentry-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Discoverer_TagsEntry) AWSCloudFormationType() string {
+ return "AWS::EventSchemas::Discoverer.TagsEntry"
+}
diff --git a/goformation/cloudformation/eventschemas/aws-eventschemas-registry.go b/goformation/cloudformation/eventschemas/aws-eventschemas-registry.go
new file mode 100644
index 0000000000..1d455865a1
--- /dev/null
+++ b/goformation/cloudformation/eventschemas/aws-eventschemas-registry.go
@@ -0,0 +1,118 @@
+package eventschemas
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Registry AWS CloudFormation Resource (AWS::EventSchemas::Registry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registry.html
+type Registry struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registry.html#cfn-eventschemas-registry-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // RegistryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registry.html#cfn-eventschemas-registry-registryname
+ RegistryName *types.Value `json:"RegistryName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registry.html#cfn-eventschemas-registry-tags
+ Tags []Registry_TagsEntry `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Registry) AWSCloudFormationType() string {
+ return "AWS::EventSchemas::Registry"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Registry) MarshalJSON() ([]byte, error) {
+ type Properties Registry
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Registry) UnmarshalJSON(b []byte) error {
+ type Properties Registry
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Registry(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eventschemas/aws-eventschemas-registry_tagsentry.go b/goformation/cloudformation/eventschemas/aws-eventschemas-registry_tagsentry.go
new file mode 100644
index 0000000000..ef32f78640
--- /dev/null
+++ b/goformation/cloudformation/eventschemas/aws-eventschemas-registry_tagsentry.go
@@ -0,0 +1,42 @@
+package eventschemas
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Registry_TagsEntry AWS CloudFormation Resource (AWS::EventSchemas::Registry.TagsEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-registry-tagsentry.html
+type Registry_TagsEntry struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-registry-tagsentry.html#cfn-eventschemas-registry-tagsentry-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-registry-tagsentry.html#cfn-eventschemas-registry-tagsentry-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Registry_TagsEntry) AWSCloudFormationType() string {
+ return "AWS::EventSchemas::Registry.TagsEntry"
+}
diff --git a/goformation/cloudformation/eventschemas/aws-eventschemas-registrypolicy.go b/goformation/cloudformation/eventschemas/aws-eventschemas-registrypolicy.go
new file mode 100644
index 0000000000..4c9113f8e8
--- /dev/null
+++ b/goformation/cloudformation/eventschemas/aws-eventschemas-registrypolicy.go
@@ -0,0 +1,118 @@
+package eventschemas
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RegistryPolicy AWS CloudFormation Resource (AWS::EventSchemas::RegistryPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registrypolicy.html
+type RegistryPolicy struct {
+
+ // Policy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registrypolicy.html#cfn-eventschemas-registrypolicy-policy
+ Policy interface{} `json:"Policy,omitempty"`
+
+ // RegistryName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registrypolicy.html#cfn-eventschemas-registrypolicy-registryname
+ RegistryName *types.Value `json:"RegistryName,omitempty"`
+
+ // RevisionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-registrypolicy.html#cfn-eventschemas-registrypolicy-revisionid
+ RevisionId *types.Value `json:"RevisionId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RegistryPolicy) AWSCloudFormationType() string {
+ return "AWS::EventSchemas::RegistryPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RegistryPolicy) MarshalJSON() ([]byte, error) {
+ type Properties RegistryPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RegistryPolicy) UnmarshalJSON(b []byte) error {
+ type Properties RegistryPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RegistryPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eventschemas/aws-eventschemas-schema.go b/goformation/cloudformation/eventschemas/aws-eventschemas-schema.go
new file mode 100644
index 0000000000..885a01181e
--- /dev/null
+++ b/goformation/cloudformation/eventschemas/aws-eventschemas-schema.go
@@ -0,0 +1,133 @@
+package eventschemas
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Schema AWS CloudFormation Resource (AWS::EventSchemas::Schema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html
+type Schema struct {
+
+ // Content AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html#cfn-eventschemas-schema-content
+ Content *types.Value `json:"Content,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html#cfn-eventschemas-schema-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // RegistryName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html#cfn-eventschemas-schema-registryname
+ RegistryName *types.Value `json:"RegistryName,omitempty"`
+
+ // SchemaName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html#cfn-eventschemas-schema-schemaname
+ SchemaName *types.Value `json:"SchemaName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html#cfn-eventschemas-schema-tags
+ Tags []Schema_TagsEntry `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eventschemas-schema.html#cfn-eventschemas-schema-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Schema) AWSCloudFormationType() string {
+ return "AWS::EventSchemas::Schema"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Schema) MarshalJSON() ([]byte, error) {
+ type Properties Schema
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Schema) UnmarshalJSON(b []byte) error {
+ type Properties Schema
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Schema(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/eventschemas/aws-eventschemas-schema_tagsentry.go b/goformation/cloudformation/eventschemas/aws-eventschemas-schema_tagsentry.go
new file mode 100644
index 0000000000..9cbcfc1303
--- /dev/null
+++ b/goformation/cloudformation/eventschemas/aws-eventschemas-schema_tagsentry.go
@@ -0,0 +1,42 @@
+package eventschemas
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Schema_TagsEntry AWS CloudFormation Resource (AWS::EventSchemas::Schema.TagsEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-schema-tagsentry.html
+type Schema_TagsEntry struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-schema-tagsentry.html#cfn-eventschemas-schema-tagsentry-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eventschemas-schema-tagsentry.html#cfn-eventschemas-schema-tagsentry-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Schema_TagsEntry) AWSCloudFormationType() string {
+ return "AWS::EventSchemas::Schema.TagsEntry"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-experiment.go b/goformation/cloudformation/evidently/aws-evidently-experiment.go
new file mode 100644
index 0000000000..a8920d84ab
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-experiment.go
@@ -0,0 +1,149 @@
+package evidently
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Experiment AWS CloudFormation Resource (AWS::Evidently::Experiment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html
+type Experiment struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // MetricGoals AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-metricgoals
+ MetricGoals []Experiment_MetricGoalObject `json:"MetricGoals,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OnlineAbConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-onlineabconfig
+ OnlineAbConfig *Experiment_OnlineAbConfigObject `json:"OnlineAbConfig,omitempty"`
+
+ // Project AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-project
+ Project *types.Value `json:"Project,omitempty"`
+
+ // RandomizationSalt AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-randomizationsalt
+ RandomizationSalt *types.Value `json:"RandomizationSalt,omitempty"`
+
+ // SamplingRate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-samplingrate
+ SamplingRate *types.Value `json:"SamplingRate,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Treatments AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-treatments
+ Treatments []Experiment_TreatmentObject `json:"Treatments,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Experiment) AWSCloudFormationType() string {
+ return "AWS::Evidently::Experiment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Experiment) MarshalJSON() ([]byte, error) {
+ type Properties Experiment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Experiment) UnmarshalJSON(b []byte) error {
+ type Properties Experiment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Experiment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-experiment_metricgoalobject.go b/goformation/cloudformation/evidently/aws-evidently-experiment_metricgoalobject.go
new file mode 100644
index 0000000000..b16e623fdb
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-experiment_metricgoalobject.go
@@ -0,0 +1,62 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Experiment_MetricGoalObject AWS CloudFormation Resource (AWS::Evidently::Experiment.MetricGoalObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html
+type Experiment_MetricGoalObject struct {
+
+ // DesiredChange AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-desiredchange
+ DesiredChange *types.Value `json:"DesiredChange,omitempty"`
+
+ // EntityIdKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-entityidkey
+ EntityIdKey *types.Value `json:"EntityIdKey,omitempty"`
+
+ // EventPattern AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-eventpattern
+ EventPattern *types.Value `json:"EventPattern,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // UnitLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-unitlabel
+ UnitLabel *types.Value `json:"UnitLabel,omitempty"`
+
+ // ValueKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-valuekey
+ ValueKey *types.Value `json:"ValueKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Experiment_MetricGoalObject) AWSCloudFormationType() string {
+ return "AWS::Evidently::Experiment.MetricGoalObject"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-experiment_onlineabconfigobject.go b/goformation/cloudformation/evidently/aws-evidently-experiment_onlineabconfigobject.go
new file mode 100644
index 0000000000..c2b328dc69
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-experiment_onlineabconfigobject.go
@@ -0,0 +1,42 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Experiment_OnlineAbConfigObject AWS CloudFormation Resource (AWS::Evidently::Experiment.OnlineAbConfigObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html
+type Experiment_OnlineAbConfigObject struct {
+
+ // ControlTreatmentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html#cfn-evidently-experiment-onlineabconfigobject-controltreatmentname
+ ControlTreatmentName *types.Value `json:"ControlTreatmentName,omitempty"`
+
+ // TreatmentWeights AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html#cfn-evidently-experiment-onlineabconfigobject-treatmentweights
+ TreatmentWeights []Experiment_TreatmentToWeight `json:"TreatmentWeights,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Experiment_OnlineAbConfigObject) AWSCloudFormationType() string {
+ return "AWS::Evidently::Experiment.OnlineAbConfigObject"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-experiment_treatmentobject.go b/goformation/cloudformation/evidently/aws-evidently-experiment_treatmentobject.go
new file mode 100644
index 0000000000..e0af698abf
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-experiment_treatmentobject.go
@@ -0,0 +1,52 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Experiment_TreatmentObject AWS CloudFormation Resource (AWS::Evidently::Experiment.TreatmentObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html
+type Experiment_TreatmentObject struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html#cfn-evidently-experiment-treatmentobject-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Feature AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html#cfn-evidently-experiment-treatmentobject-feature
+ Feature *types.Value `json:"Feature,omitempty"`
+
+ // TreatmentName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html#cfn-evidently-experiment-treatmentobject-treatmentname
+ TreatmentName *types.Value `json:"TreatmentName,omitempty"`
+
+ // Variation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html#cfn-evidently-experiment-treatmentobject-variation
+ Variation *types.Value `json:"Variation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Experiment_TreatmentObject) AWSCloudFormationType() string {
+ return "AWS::Evidently::Experiment.TreatmentObject"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-experiment_treatmenttoweight.go b/goformation/cloudformation/evidently/aws-evidently-experiment_treatmenttoweight.go
new file mode 100644
index 0000000000..e92f5f3e5f
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-experiment_treatmenttoweight.go
@@ -0,0 +1,42 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Experiment_TreatmentToWeight AWS CloudFormation Resource (AWS::Evidently::Experiment.TreatmentToWeight)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html
+type Experiment_TreatmentToWeight struct {
+
+ // SplitWeight AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html#cfn-evidently-experiment-treatmenttoweight-splitweight
+ SplitWeight *types.Value `json:"SplitWeight"`
+
+ // Treatment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html#cfn-evidently-experiment-treatmenttoweight-treatment
+ Treatment *types.Value `json:"Treatment,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Experiment_TreatmentToWeight) AWSCloudFormationType() string {
+ return "AWS::Evidently::Experiment.TreatmentToWeight"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-feature.go b/goformation/cloudformation/evidently/aws-evidently-feature.go
new file mode 100644
index 0000000000..f6d0c7c9e0
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-feature.go
@@ -0,0 +1,144 @@
+package evidently
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Feature AWS CloudFormation Resource (AWS::Evidently::Feature)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html
+type Feature struct {
+
+ // DefaultVariation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-defaultvariation
+ DefaultVariation *types.Value `json:"DefaultVariation,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EntityOverrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-entityoverrides
+ EntityOverrides []Feature_EntityOverride `json:"EntityOverrides,omitempty"`
+
+ // EvaluationStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-evaluationstrategy
+ EvaluationStrategy *types.Value `json:"EvaluationStrategy,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Project AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-project
+ Project *types.Value `json:"Project,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Variations AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-variations
+ Variations []Feature_VariationObject `json:"Variations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Feature) AWSCloudFormationType() string {
+ return "AWS::Evidently::Feature"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Feature) MarshalJSON() ([]byte, error) {
+ type Properties Feature
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Feature) UnmarshalJSON(b []byte) error {
+ type Properties Feature
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Feature(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-feature_entityoverride.go b/goformation/cloudformation/evidently/aws-evidently-feature_entityoverride.go
new file mode 100644
index 0000000000..8f91de0c98
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-feature_entityoverride.go
@@ -0,0 +1,42 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Feature_EntityOverride AWS CloudFormation Resource (AWS::Evidently::Feature.EntityOverride)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html
+type Feature_EntityOverride struct {
+
+ // EntityId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html#cfn-evidently-feature-entityoverride-entityid
+ EntityId *types.Value `json:"EntityId,omitempty"`
+
+ // Variation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html#cfn-evidently-feature-entityoverride-variation
+ Variation *types.Value `json:"Variation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Feature_EntityOverride) AWSCloudFormationType() string {
+ return "AWS::Evidently::Feature.EntityOverride"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-feature_variationobject.go b/goformation/cloudformation/evidently/aws-evidently-feature_variationobject.go
new file mode 100644
index 0000000000..0cb4c6ee82
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-feature_variationobject.go
@@ -0,0 +1,57 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Feature_VariationObject AWS CloudFormation Resource (AWS::Evidently::Feature.VariationObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html
+type Feature_VariationObject struct {
+
+ // BooleanValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-booleanvalue
+ BooleanValue *types.Value `json:"BooleanValue,omitempty"`
+
+ // DoubleValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-doublevalue
+ DoubleValue *types.Value `json:"DoubleValue,omitempty"`
+
+ // LongValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-longvalue
+ LongValue *types.Value `json:"LongValue,omitempty"`
+
+ // StringValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-stringvalue
+ StringValue *types.Value `json:"StringValue,omitempty"`
+
+ // VariationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-variationname
+ VariationName *types.Value `json:"VariationName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Feature_VariationObject) AWSCloudFormationType() string {
+ return "AWS::Evidently::Feature.VariationObject"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-launch.go b/goformation/cloudformation/evidently/aws-evidently-launch.go
new file mode 100644
index 0000000000..34f4df12b4
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-launch.go
@@ -0,0 +1,144 @@
+package evidently
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Launch AWS CloudFormation Resource (AWS::Evidently::Launch)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html
+type Launch struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html#cfn-evidently-launch-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Groups AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html#cfn-evidently-launch-groups
+ Groups []Launch_LaunchGroupObject `json:"Groups,omitempty"`
+
+ // MetricMonitors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html#cfn-evidently-launch-metricmonitors
+ MetricMonitors []Launch_MetricDefinitionObject `json:"MetricMonitors,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html#cfn-evidently-launch-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Project AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html#cfn-evidently-launch-project
+ Project *types.Value `json:"Project,omitempty"`
+
+ // RandomizationSalt AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html#cfn-evidently-launch-randomizationsalt
+ RandomizationSalt *types.Value `json:"RandomizationSalt,omitempty"`
+
+ // ScheduledSplitsConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html#cfn-evidently-launch-scheduledsplitsconfig
+ ScheduledSplitsConfig []Launch_StepConfig `json:"ScheduledSplitsConfig,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html#cfn-evidently-launch-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Launch) AWSCloudFormationType() string {
+ return "AWS::Evidently::Launch"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Launch) MarshalJSON() ([]byte, error) {
+ type Properties Launch
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Launch) UnmarshalJSON(b []byte) error {
+ type Properties Launch
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Launch(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-launch_grouptoweight.go b/goformation/cloudformation/evidently/aws-evidently-launch_grouptoweight.go
new file mode 100644
index 0000000000..4bee9b14cb
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-launch_grouptoweight.go
@@ -0,0 +1,42 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Launch_GroupToWeight AWS CloudFormation Resource (AWS::Evidently::Launch.GroupToWeight)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-grouptoweight.html
+type Launch_GroupToWeight struct {
+
+ // GroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-grouptoweight.html#cfn-evidently-launch-grouptoweight-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // SplitWeight AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-grouptoweight.html#cfn-evidently-launch-grouptoweight-splitweight
+ SplitWeight *types.Value `json:"SplitWeight"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Launch_GroupToWeight) AWSCloudFormationType() string {
+ return "AWS::Evidently::Launch.GroupToWeight"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-launch_launchgroupobject.go b/goformation/cloudformation/evidently/aws-evidently-launch_launchgroupobject.go
new file mode 100644
index 0000000000..5853fd6118
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-launch_launchgroupobject.go
@@ -0,0 +1,52 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Launch_LaunchGroupObject AWS CloudFormation Resource (AWS::Evidently::Launch.LaunchGroupObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html
+type Launch_LaunchGroupObject struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html#cfn-evidently-launch-launchgroupobject-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Feature AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html#cfn-evidently-launch-launchgroupobject-feature
+ Feature *types.Value `json:"Feature,omitempty"`
+
+ // GroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html#cfn-evidently-launch-launchgroupobject-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // Variation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html#cfn-evidently-launch-launchgroupobject-variation
+ Variation *types.Value `json:"Variation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Launch_LaunchGroupObject) AWSCloudFormationType() string {
+ return "AWS::Evidently::Launch.LaunchGroupObject"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-launch_metricdefinitionobject.go b/goformation/cloudformation/evidently/aws-evidently-launch_metricdefinitionobject.go
new file mode 100644
index 0000000000..6a39c570aa
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-launch_metricdefinitionobject.go
@@ -0,0 +1,57 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Launch_MetricDefinitionObject AWS CloudFormation Resource (AWS::Evidently::Launch.MetricDefinitionObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html
+type Launch_MetricDefinitionObject struct {
+
+ // EntityIdKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-entityidkey
+ EntityIdKey *types.Value `json:"EntityIdKey,omitempty"`
+
+ // EventPattern AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-eventpattern
+ EventPattern *types.Value `json:"EventPattern,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // UnitLabel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-unitlabel
+ UnitLabel *types.Value `json:"UnitLabel,omitempty"`
+
+ // ValueKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-valuekey
+ ValueKey *types.Value `json:"ValueKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Launch_MetricDefinitionObject) AWSCloudFormationType() string {
+ return "AWS::Evidently::Launch.MetricDefinitionObject"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-launch_stepconfig.go b/goformation/cloudformation/evidently/aws-evidently-launch_stepconfig.go
new file mode 100644
index 0000000000..9c13e49e6e
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-launch_stepconfig.go
@@ -0,0 +1,42 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Launch_StepConfig AWS CloudFormation Resource (AWS::Evidently::Launch.StepConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-stepconfig.html
+type Launch_StepConfig struct {
+
+ // GroupWeights AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-stepconfig.html#cfn-evidently-launch-stepconfig-groupweights
+ GroupWeights []Launch_GroupToWeight `json:"GroupWeights,omitempty"`
+
+ // StartTime AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-stepconfig.html#cfn-evidently-launch-stepconfig-starttime
+ StartTime *types.Value `json:"StartTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Launch_StepConfig) AWSCloudFormationType() string {
+ return "AWS::Evidently::Launch.StepConfig"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-project.go b/goformation/cloudformation/evidently/aws-evidently-project.go
new file mode 100644
index 0000000000..72f600a16b
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-project.go
@@ -0,0 +1,124 @@
+package evidently
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project AWS CloudFormation Resource (AWS::Evidently::Project)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html
+type Project struct {
+
+ // DataDelivery AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html#cfn-evidently-project-datadelivery
+ DataDelivery interface{} `json:"DataDelivery,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html#cfn-evidently-project-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html#cfn-evidently-project-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-project.html#cfn-evidently-project-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project) AWSCloudFormationType() string {
+ return "AWS::Evidently::Project"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Project) MarshalJSON() ([]byte, error) {
+ type Properties Project
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Project) UnmarshalJSON(b []byte) error {
+ type Properties Project
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Project(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-project_datadeliveryobject.go b/goformation/cloudformation/evidently/aws-evidently-project_datadeliveryobject.go
new file mode 100644
index 0000000000..51aef6c71c
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-project_datadeliveryobject.go
@@ -0,0 +1,42 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_DataDeliveryObject AWS CloudFormation Resource (AWS::Evidently::Project.DataDeliveryObject)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html
+type Project_DataDeliveryObject struct {
+
+ // LogGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html#cfn-evidently-project-datadeliveryobject-loggroup
+ LogGroup *types.Value `json:"LogGroup,omitempty"`
+
+ // S3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-datadeliveryobject.html#cfn-evidently-project-datadeliveryobject-s3
+ S3 interface{} `json:"S3,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_DataDeliveryObject) AWSCloudFormationType() string {
+ return "AWS::Evidently::Project.DataDeliveryObject"
+}
diff --git a/goformation/cloudformation/evidently/aws-evidently-project_s3destination.go b/goformation/cloudformation/evidently/aws-evidently-project_s3destination.go
new file mode 100644
index 0000000000..3e55c2ddcc
--- /dev/null
+++ b/goformation/cloudformation/evidently/aws-evidently-project_s3destination.go
@@ -0,0 +1,42 @@
+package evidently
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_S3Destination AWS CloudFormation Resource (AWS::Evidently::Project.S3Destination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-s3destination.html
+type Project_S3Destination struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-s3destination.html#cfn-evidently-project-s3destination-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-project-s3destination.html#cfn-evidently-project-s3destination-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_S3Destination) AWSCloudFormationType() string {
+ return "AWS::Evidently::Project.S3Destination"
+}
diff --git a/goformation/cloudformation/finspace/aws-finspace-environment.go b/goformation/cloudformation/finspace/aws-finspace-environment.go
new file mode 100644
index 0000000000..6fdc204b56
--- /dev/null
+++ b/goformation/cloudformation/finspace/aws-finspace-environment.go
@@ -0,0 +1,138 @@
+package finspace
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment AWS CloudFormation Resource (AWS::FinSpace::Environment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html
+type Environment struct {
+
+ // DataBundles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-databundles
+ DataBundles *types.Value `json:"DataBundles,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FederationMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-federationmode
+ FederationMode *types.Value `json:"FederationMode,omitempty"`
+
+ // FederationParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-federationparameters
+ FederationParameters *Environment_FederationParameters `json:"FederationParameters,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SuperuserParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-finspace-environment.html#cfn-finspace-environment-superuserparameters
+ SuperuserParameters *Environment_SuperuserParameters `json:"SuperuserParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment) AWSCloudFormationType() string {
+ return "AWS::FinSpace::Environment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Environment) MarshalJSON() ([]byte, error) {
+ type Properties Environment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Environment) UnmarshalJSON(b []byte) error {
+ type Properties Environment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Environment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/finspace/aws-finspace-environment_federationparameters.go b/goformation/cloudformation/finspace/aws-finspace-environment_federationparameters.go
new file mode 100644
index 0000000000..e3f3a5b442
--- /dev/null
+++ b/goformation/cloudformation/finspace/aws-finspace-environment_federationparameters.go
@@ -0,0 +1,62 @@
+package finspace
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment_FederationParameters AWS CloudFormation Resource (AWS::FinSpace::Environment.FederationParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html
+type Environment_FederationParameters struct {
+
+ // ApplicationCallBackURL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html#cfn-finspace-environment-federationparameters-applicationcallbackurl
+ ApplicationCallBackURL *types.Value `json:"ApplicationCallBackURL,omitempty"`
+
+ // AttributeMap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html#cfn-finspace-environment-federationparameters-attributemap
+ AttributeMap interface{} `json:"AttributeMap,omitempty"`
+
+ // FederationProviderName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html#cfn-finspace-environment-federationparameters-federationprovidername
+ FederationProviderName *types.Value `json:"FederationProviderName,omitempty"`
+
+ // FederationURN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html#cfn-finspace-environment-federationparameters-federationurn
+ FederationURN *types.Value `json:"FederationURN,omitempty"`
+
+ // SamlMetadataDocument AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html#cfn-finspace-environment-federationparameters-samlmetadatadocument
+ SamlMetadataDocument *types.Value `json:"SamlMetadataDocument,omitempty"`
+
+ // SamlMetadataURL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-federationparameters.html#cfn-finspace-environment-federationparameters-samlmetadataurl
+ SamlMetadataURL *types.Value `json:"SamlMetadataURL,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment_FederationParameters) AWSCloudFormationType() string {
+ return "AWS::FinSpace::Environment.FederationParameters"
+}
diff --git a/goformation/cloudformation/finspace/aws-finspace-environment_superuserparameters.go b/goformation/cloudformation/finspace/aws-finspace-environment_superuserparameters.go
new file mode 100644
index 0000000000..de425cec30
--- /dev/null
+++ b/goformation/cloudformation/finspace/aws-finspace-environment_superuserparameters.go
@@ -0,0 +1,47 @@
+package finspace
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Environment_SuperuserParameters AWS CloudFormation Resource (AWS::FinSpace::Environment.SuperuserParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html
+type Environment_SuperuserParameters struct {
+
+ // EmailAddress AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html#cfn-finspace-environment-superuserparameters-emailaddress
+ EmailAddress *types.Value `json:"EmailAddress,omitempty"`
+
+ // FirstName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html#cfn-finspace-environment-superuserparameters-firstname
+ FirstName *types.Value `json:"FirstName,omitempty"`
+
+ // LastName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-finspace-environment-superuserparameters.html#cfn-finspace-environment-superuserparameters-lastname
+ LastName *types.Value `json:"LastName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Environment_SuperuserParameters) AWSCloudFormationType() string {
+ return "AWS::FinSpace::Environment.SuperuserParameters"
+}
diff --git a/goformation/cloudformation/fis/aws-fis-experimenttemplate.go b/goformation/cloudformation/fis/aws-fis-experimenttemplate.go
new file mode 100644
index 0000000000..3d8a1bcefd
--- /dev/null
+++ b/goformation/cloudformation/fis/aws-fis-experimenttemplate.go
@@ -0,0 +1,133 @@
+package fis
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ExperimentTemplate AWS CloudFormation Resource (AWS::FIS::ExperimentTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html
+type ExperimentTemplate struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html#cfn-fis-experimenttemplate-actions
+ Actions map[string]ExperimentTemplate_ExperimentTemplateAction `json:"Actions,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html#cfn-fis-experimenttemplate-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html#cfn-fis-experimenttemplate-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // StopConditions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html#cfn-fis-experimenttemplate-stopconditions
+ StopConditions []ExperimentTemplate_ExperimentTemplateStopCondition `json:"StopConditions,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html#cfn-fis-experimenttemplate-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // Targets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fis-experimenttemplate.html#cfn-fis-experimenttemplate-targets
+ Targets map[string]ExperimentTemplate_ExperimentTemplateTarget `json:"Targets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ExperimentTemplate) AWSCloudFormationType() string {
+ return "AWS::FIS::ExperimentTemplate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ExperimentTemplate) MarshalJSON() ([]byte, error) {
+ type Properties ExperimentTemplate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ExperimentTemplate) UnmarshalJSON(b []byte) error {
+ type Properties ExperimentTemplate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ExperimentTemplate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplateaction.go b/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplateaction.go
new file mode 100644
index 0000000000..8101681268
--- /dev/null
+++ b/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplateaction.go
@@ -0,0 +1,57 @@
+package fis
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ExperimentTemplate_ExperimentTemplateAction AWS CloudFormation Resource (AWS::FIS::ExperimentTemplate.ExperimentTemplateAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html
+type ExperimentTemplate_ExperimentTemplateAction struct {
+
+ // ActionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html#cfn-fis-experimenttemplate-experimenttemplateaction-actionid
+ ActionId *types.Value `json:"ActionId,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html#cfn-fis-experimenttemplate-experimenttemplateaction-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html#cfn-fis-experimenttemplate-experimenttemplateaction-parameters
+ Parameters map[string]*types.Value `json:"Parameters,omitempty"`
+
+ // StartAfter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html#cfn-fis-experimenttemplate-experimenttemplateaction-startafter
+ StartAfter *types.Value `json:"StartAfter,omitempty"`
+
+ // Targets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateaction.html#cfn-fis-experimenttemplate-experimenttemplateaction-targets
+ Targets map[string]*types.Value `json:"Targets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ExperimentTemplate_ExperimentTemplateAction) AWSCloudFormationType() string {
+ return "AWS::FIS::ExperimentTemplate.ExperimentTemplateAction"
+}
diff --git a/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatestopcondition.go b/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatestopcondition.go
new file mode 100644
index 0000000000..11579a524e
--- /dev/null
+++ b/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatestopcondition.go
@@ -0,0 +1,42 @@
+package fis
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ExperimentTemplate_ExperimentTemplateStopCondition AWS CloudFormation Resource (AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatestopcondition.html
+type ExperimentTemplate_ExperimentTemplateStopCondition struct {
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatestopcondition.html#cfn-fis-experimenttemplate-experimenttemplatestopcondition-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatestopcondition.html#cfn-fis-experimenttemplate-experimenttemplatestopcondition-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ExperimentTemplate_ExperimentTemplateStopCondition) AWSCloudFormationType() string {
+ return "AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition"
+}
diff --git a/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatetarget.go b/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatetarget.go
new file mode 100644
index 0000000000..7b8e4b18be
--- /dev/null
+++ b/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatetarget.go
@@ -0,0 +1,57 @@
+package fis
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ExperimentTemplate_ExperimentTemplateTarget AWS CloudFormation Resource (AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html
+type ExperimentTemplate_ExperimentTemplateTarget struct {
+
+ // Filters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html#cfn-fis-experimenttemplate-experimenttemplatetarget-filters
+ Filters []ExperimentTemplate_ExperimentTemplateTargetFilter `json:"Filters,omitempty"`
+
+ // ResourceArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html#cfn-fis-experimenttemplate-experimenttemplatetarget-resourcearns
+ ResourceArns *types.Value `json:"ResourceArns,omitempty"`
+
+ // ResourceTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html#cfn-fis-experimenttemplate-experimenttemplatetarget-resourcetags
+ ResourceTags map[string]*types.Value `json:"ResourceTags,omitempty"`
+
+ // ResourceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html#cfn-fis-experimenttemplate-experimenttemplatetarget-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // SelectionMode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetarget.html#cfn-fis-experimenttemplate-experimenttemplatetarget-selectionmode
+ SelectionMode *types.Value `json:"SelectionMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ExperimentTemplate_ExperimentTemplateTarget) AWSCloudFormationType() string {
+ return "AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget"
+}
diff --git a/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatetargetfilter.go b/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatetargetfilter.go
new file mode 100644
index 0000000000..658a82633f
--- /dev/null
+++ b/goformation/cloudformation/fis/aws-fis-experimenttemplate_experimenttemplatetargetfilter.go
@@ -0,0 +1,42 @@
+package fis
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ExperimentTemplate_ExperimentTemplateTargetFilter AWS CloudFormation Resource (AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetargetfilter.html
+type ExperimentTemplate_ExperimentTemplateTargetFilter struct {
+
+ // Path AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetargetfilter.html#cfn-fis-experimenttemplate-experimenttemplatetargetfilter-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatetargetfilter.html#cfn-fis-experimenttemplate-experimenttemplatetargetfilter-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ExperimentTemplate_ExperimentTemplateTargetFilter) AWSCloudFormationType() string {
+ return "AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter"
+}
diff --git a/goformation/cloudformation/fms/aws-fms-notificationchannel.go b/goformation/cloudformation/fms/aws-fms-notificationchannel.go
new file mode 100644
index 0000000000..c59fba65a5
--- /dev/null
+++ b/goformation/cloudformation/fms/aws-fms-notificationchannel.go
@@ -0,0 +1,113 @@
+package fms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// NotificationChannel AWS CloudFormation Resource (AWS::FMS::NotificationChannel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html
+type NotificationChannel struct {
+
+ // SnsRoleName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html#cfn-fms-notificationchannel-snsrolename
+ SnsRoleName *types.Value `json:"SnsRoleName,omitempty"`
+
+ // SnsTopicArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-notificationchannel.html#cfn-fms-notificationchannel-snstopicarn
+ SnsTopicArn *types.Value `json:"SnsTopicArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *NotificationChannel) AWSCloudFormationType() string {
+ return "AWS::FMS::NotificationChannel"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r NotificationChannel) MarshalJSON() ([]byte, error) {
+ type Properties NotificationChannel
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *NotificationChannel) UnmarshalJSON(b []byte) error {
+ type Properties NotificationChannel
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = NotificationChannel(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/fms/aws-fms-policy.go b/goformation/cloudformation/fms/aws-fms-policy.go
new file mode 100644
index 0000000000..5ab6deb376
--- /dev/null
+++ b/goformation/cloudformation/fms/aws-fms-policy.go
@@ -0,0 +1,163 @@
+package fms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Policy AWS CloudFormation Resource (AWS::FMS::Policy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html
+type Policy struct {
+
+ // DeleteAllPolicyResources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-deleteallpolicyresources
+ DeleteAllPolicyResources *types.Value `json:"DeleteAllPolicyResources,omitempty"`
+
+ // ExcludeMap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-excludemap
+ ExcludeMap *Policy_IEMap `json:"ExcludeMap,omitempty"`
+
+ // ExcludeResourceTags AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-excluderesourcetags
+ ExcludeResourceTags *types.Value `json:"ExcludeResourceTags"`
+
+ // IncludeMap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-includemap
+ IncludeMap *Policy_IEMap `json:"IncludeMap,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // RemediationEnabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-remediationenabled
+ RemediationEnabled *types.Value `json:"RemediationEnabled"`
+
+ // ResourceTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-resourcetags
+ ResourceTags []Policy_ResourceTag `json:"ResourceTags,omitempty"`
+
+ // ResourceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-resourcetype
+ ResourceType *types.Value `json:"ResourceType,omitempty"`
+
+ // ResourceTypeList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-resourcetypelist
+ ResourceTypeList *types.Value `json:"ResourceTypeList,omitempty"`
+
+ // ResourcesCleanUp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-resourcescleanup
+ ResourcesCleanUp *types.Value `json:"ResourcesCleanUp,omitempty"`
+
+ // SecurityServicePolicyData AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-securityservicepolicydata
+ SecurityServicePolicyData interface{} `json:"SecurityServicePolicyData,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-tags
+ Tags []Policy_PolicyTag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Policy) AWSCloudFormationType() string {
+ return "AWS::FMS::Policy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Policy) MarshalJSON() ([]byte, error) {
+ type Properties Policy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Policy) UnmarshalJSON(b []byte) error {
+ type Properties Policy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Policy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/fms/aws-fms-policy_iemap.go b/goformation/cloudformation/fms/aws-fms-policy_iemap.go
new file mode 100644
index 0000000000..5d4dd931cb
--- /dev/null
+++ b/goformation/cloudformation/fms/aws-fms-policy_iemap.go
@@ -0,0 +1,42 @@
+package fms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Policy_IEMap AWS CloudFormation Resource (AWS::FMS::Policy.IEMap)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html
+type Policy_IEMap struct {
+
+ // ACCOUNT AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html#cfn-fms-policy-iemap-account
+ ACCOUNT *types.Value `json:"ACCOUNT,omitempty"`
+
+ // ORGUNIT AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-iemap.html#cfn-fms-policy-iemap-orgunit
+ ORGUNIT *types.Value `json:"ORGUNIT,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Policy_IEMap) AWSCloudFormationType() string {
+ return "AWS::FMS::Policy.IEMap"
+}
diff --git a/goformation/cloudformation/fms/aws-fms-policy_policytag.go b/goformation/cloudformation/fms/aws-fms-policy_policytag.go
new file mode 100644
index 0000000000..c7c64d6dce
--- /dev/null
+++ b/goformation/cloudformation/fms/aws-fms-policy_policytag.go
@@ -0,0 +1,42 @@
+package fms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Policy_PolicyTag AWS CloudFormation Resource (AWS::FMS::Policy.PolicyTag)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policytag.html
+type Policy_PolicyTag struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policytag.html#cfn-fms-policy-policytag-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-policytag.html#cfn-fms-policy-policytag-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Policy_PolicyTag) AWSCloudFormationType() string {
+ return "AWS::FMS::Policy.PolicyTag"
+}
diff --git a/goformation/cloudformation/fms/aws-fms-policy_resourcetag.go b/goformation/cloudformation/fms/aws-fms-policy_resourcetag.go
new file mode 100644
index 0000000000..8971f864ec
--- /dev/null
+++ b/goformation/cloudformation/fms/aws-fms-policy_resourcetag.go
@@ -0,0 +1,42 @@
+package fms
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Policy_ResourceTag AWS CloudFormation Resource (AWS::FMS::Policy.ResourceTag)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-resourcetag.html
+type Policy_ResourceTag struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-resourcetag.html#cfn-fms-policy-resourcetag-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-resourcetag.html#cfn-fms-policy-resourcetag-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Policy_ResourceTag) AWSCloudFormationType() string {
+ return "AWS::FMS::Policy.ResourceTag"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-detector.go b/goformation/cloudformation/frauddetector/aws-frauddetector-detector.go
new file mode 100644
index 0000000000..a6547fba4a
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-detector.go
@@ -0,0 +1,144 @@
+package frauddetector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector AWS CloudFormation Resource (AWS::FraudDetector::Detector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html
+type Detector struct {
+
+ // AssociatedModels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html#cfn-frauddetector-detector-associatedmodels
+ AssociatedModels []Detector_Model `json:"AssociatedModels,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html#cfn-frauddetector-detector-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DetectorId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html#cfn-frauddetector-detector-detectorid
+ DetectorId *types.Value `json:"DetectorId,omitempty"`
+
+ // DetectorVersionStatus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html#cfn-frauddetector-detector-detectorversionstatus
+ DetectorVersionStatus *types.Value `json:"DetectorVersionStatus,omitempty"`
+
+ // EventType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html#cfn-frauddetector-detector-eventtype
+ EventType *Detector_EventType `json:"EventType,omitempty"`
+
+ // RuleExecutionMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html#cfn-frauddetector-detector-ruleexecutionmode
+ RuleExecutionMode *types.Value `json:"RuleExecutionMode,omitempty"`
+
+ // Rules AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html#cfn-frauddetector-detector-rules
+ Rules []Detector_Rule `json:"Rules,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-detector.html#cfn-frauddetector-detector-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Detector"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Detector) MarshalJSON() ([]byte, error) {
+ type Properties Detector
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Detector) UnmarshalJSON(b []byte) error {
+ type Properties Detector
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Detector(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-detector_entitytype.go b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_entitytype.go
new file mode 100644
index 0000000000..a5135ec645
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_entitytype.go
@@ -0,0 +1,68 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_EntityType AWS CloudFormation Resource (AWS::FraudDetector::Detector.EntityType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html
+type Detector_EntityType struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html#cfn-frauddetector-detector-entitytype-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html#cfn-frauddetector-detector-entitytype-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html#cfn-frauddetector-detector-entitytype-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Inline AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html#cfn-frauddetector-detector-entitytype-inline
+ Inline *types.Value `json:"Inline,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html#cfn-frauddetector-detector-entitytype-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html#cfn-frauddetector-detector-entitytype-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-entitytype.html#cfn-frauddetector-detector-entitytype-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_EntityType) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Detector.EntityType"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-detector_eventtype.go b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_eventtype.go
new file mode 100644
index 0000000000..543970738a
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_eventtype.go
@@ -0,0 +1,83 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_EventType AWS CloudFormation Resource (AWS::FraudDetector::Detector.EventType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html
+type Detector_EventType struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EntityTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-entitytypes
+ EntityTypes []Detector_EntityType `json:"EntityTypes,omitempty"`
+
+ // EventVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-eventvariables
+ EventVariables []Detector_EventVariable `json:"EventVariables,omitempty"`
+
+ // Inline AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-inline
+ Inline *types.Value `json:"Inline,omitempty"`
+
+ // Labels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-labels
+ Labels []Detector_Label `json:"Labels,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventtype.html#cfn-frauddetector-detector-eventtype-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_EventType) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Detector.EventType"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-detector_eventvariable.go b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_eventvariable.go
new file mode 100644
index 0000000000..2009893d9b
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_eventvariable.go
@@ -0,0 +1,88 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_EventVariable AWS CloudFormation Resource (AWS::FraudDetector::Detector.EventVariable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html
+type Detector_EventVariable struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // DataSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-datasource
+ DataSource *types.Value `json:"DataSource,omitempty"`
+
+ // DataType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-datatype
+ DataType *types.Value `json:"DataType,omitempty"`
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Inline AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-inline
+ Inline *types.Value `json:"Inline,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VariableType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-eventvariable.html#cfn-frauddetector-detector-eventvariable-variabletype
+ VariableType *types.Value `json:"VariableType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_EventVariable) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Detector.EventVariable"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-detector_label.go b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_label.go
new file mode 100644
index 0000000000..058603aca5
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_label.go
@@ -0,0 +1,68 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_Label AWS CloudFormation Resource (AWS::FraudDetector::Detector.Label)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html
+type Detector_Label struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html#cfn-frauddetector-detector-label-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html#cfn-frauddetector-detector-label-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html#cfn-frauddetector-detector-label-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Inline AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html#cfn-frauddetector-detector-label-inline
+ Inline *types.Value `json:"Inline,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html#cfn-frauddetector-detector-label-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html#cfn-frauddetector-detector-label-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-label.html#cfn-frauddetector-detector-label-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_Label) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Detector.Label"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-detector_model.go b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_model.go
new file mode 100644
index 0000000000..1191ba1a56
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_model.go
@@ -0,0 +1,37 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_Model AWS CloudFormation Resource (AWS::FraudDetector::Detector.Model)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-model.html
+type Detector_Model struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-model.html#cfn-frauddetector-detector-model-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_Model) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Detector.Model"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-detector_outcome.go b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_outcome.go
new file mode 100644
index 0000000000..dfab4e9cb4
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_outcome.go
@@ -0,0 +1,68 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_Outcome AWS CloudFormation Resource (AWS::FraudDetector::Detector.Outcome)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html
+type Detector_Outcome struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html#cfn-frauddetector-detector-outcome-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html#cfn-frauddetector-detector-outcome-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html#cfn-frauddetector-detector-outcome-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Inline AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html#cfn-frauddetector-detector-outcome-inline
+ Inline *types.Value `json:"Inline,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html#cfn-frauddetector-detector-outcome-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html#cfn-frauddetector-detector-outcome-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-outcome.html#cfn-frauddetector-detector-outcome-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_Outcome) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Detector.Outcome"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-detector_rule.go b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_rule.go
new file mode 100644
index 0000000000..1e18da7b25
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-detector_rule.go
@@ -0,0 +1,88 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_Rule AWS CloudFormation Resource (AWS::FraudDetector::Detector.Rule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html
+type Detector_Rule struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DetectorId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-detectorid
+ DetectorId *types.Value `json:"DetectorId,omitempty"`
+
+ // Expression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // Language AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-language
+ Language *types.Value `json:"Language,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Outcomes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-outcomes
+ Outcomes []Detector_Outcome `json:"Outcomes,omitempty"`
+
+ // RuleId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-ruleid
+ RuleId *types.Value `json:"RuleId,omitempty"`
+
+ // RuleVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-ruleversion
+ RuleVersion *types.Value `json:"RuleVersion,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-detector-rule.html#cfn-frauddetector-detector-rule-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_Rule) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Detector.Rule"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-entitytype.go b/goformation/cloudformation/frauddetector/aws-frauddetector-entitytype.go
new file mode 100644
index 0000000000..a36cdf236a
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-entitytype.go
@@ -0,0 +1,119 @@
+package frauddetector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EntityType AWS CloudFormation Resource (AWS::FraudDetector::EntityType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-entitytype.html
+type EntityType struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-entitytype.html#cfn-frauddetector-entitytype-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-entitytype.html#cfn-frauddetector-entitytype-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-entitytype.html#cfn-frauddetector-entitytype-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EntityType) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::EntityType"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EntityType) MarshalJSON() ([]byte, error) {
+ type Properties EntityType
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EntityType) UnmarshalJSON(b []byte) error {
+ type Properties EntityType
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EntityType(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype.go b/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype.go
new file mode 100644
index 0000000000..519fd054ea
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype.go
@@ -0,0 +1,134 @@
+package frauddetector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventType AWS CloudFormation Resource (AWS::FraudDetector::EventType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html
+type EventType struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html#cfn-frauddetector-eventtype-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EntityTypes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html#cfn-frauddetector-eventtype-entitytypes
+ EntityTypes []EventType_EntityType `json:"EntityTypes,omitempty"`
+
+ // EventVariables AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html#cfn-frauddetector-eventtype-eventvariables
+ EventVariables []EventType_EventVariable `json:"EventVariables,omitempty"`
+
+ // Labels AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html#cfn-frauddetector-eventtype-labels
+ Labels []EventType_Label `json:"Labels,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html#cfn-frauddetector-eventtype-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-eventtype.html#cfn-frauddetector-eventtype-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventType) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::EventType"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EventType) MarshalJSON() ([]byte, error) {
+ type Properties EventType
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EventType) UnmarshalJSON(b []byte) error {
+ type Properties EventType
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EventType(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_entitytype.go b/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_entitytype.go
new file mode 100644
index 0000000000..6d01f4283c
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_entitytype.go
@@ -0,0 +1,68 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventType_EntityType AWS CloudFormation Resource (AWS::FraudDetector::EventType.EntityType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html
+type EventType_EntityType struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html#cfn-frauddetector-eventtype-entitytype-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html#cfn-frauddetector-eventtype-entitytype-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html#cfn-frauddetector-eventtype-entitytype-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Inline AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html#cfn-frauddetector-eventtype-entitytype-inline
+ Inline *types.Value `json:"Inline,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html#cfn-frauddetector-eventtype-entitytype-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html#cfn-frauddetector-eventtype-entitytype-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-entitytype.html#cfn-frauddetector-eventtype-entitytype-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventType_EntityType) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::EventType.EntityType"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_eventvariable.go b/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_eventvariable.go
new file mode 100644
index 0000000000..b77cd0d9ad
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_eventvariable.go
@@ -0,0 +1,88 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventType_EventVariable AWS CloudFormation Resource (AWS::FraudDetector::EventType.EventVariable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html
+type EventType_EventVariable struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // DataSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-datasource
+ DataSource *types.Value `json:"DataSource,omitempty"`
+
+ // DataType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-datatype
+ DataType *types.Value `json:"DataType,omitempty"`
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Inline AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-inline
+ Inline *types.Value `json:"Inline,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VariableType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-eventvariable.html#cfn-frauddetector-eventtype-eventvariable-variabletype
+ VariableType *types.Value `json:"VariableType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventType_EventVariable) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::EventType.EventVariable"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_label.go b/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_label.go
new file mode 100644
index 0000000000..b586b88433
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-eventtype_label.go
@@ -0,0 +1,68 @@
+package frauddetector
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventType_Label AWS CloudFormation Resource (AWS::FraudDetector::EventType.Label)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html
+type EventType_Label struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html#cfn-frauddetector-eventtype-label-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // CreatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html#cfn-frauddetector-eventtype-label-createdtime
+ CreatedTime *types.Value `json:"CreatedTime,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html#cfn-frauddetector-eventtype-label-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Inline AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html#cfn-frauddetector-eventtype-label-inline
+ Inline *types.Value `json:"Inline,omitempty"`
+
+ // LastUpdatedTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html#cfn-frauddetector-eventtype-label-lastupdatedtime
+ LastUpdatedTime *types.Value `json:"LastUpdatedTime,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html#cfn-frauddetector-eventtype-label-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-frauddetector-eventtype-label.html#cfn-frauddetector-eventtype-label-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventType_Label) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::EventType.Label"
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-label.go b/goformation/cloudformation/frauddetector/aws-frauddetector-label.go
new file mode 100644
index 0000000000..0794ec22b9
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-label.go
@@ -0,0 +1,119 @@
+package frauddetector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Label AWS CloudFormation Resource (AWS::FraudDetector::Label)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-label.html
+type Label struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-label.html#cfn-frauddetector-label-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-label.html#cfn-frauddetector-label-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-label.html#cfn-frauddetector-label-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Label) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Label"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Label) MarshalJSON() ([]byte, error) {
+ type Properties Label
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Label) UnmarshalJSON(b []byte) error {
+ type Properties Label
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Label(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-outcome.go b/goformation/cloudformation/frauddetector/aws-frauddetector-outcome.go
new file mode 100644
index 0000000000..a34923b4e9
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-outcome.go
@@ -0,0 +1,119 @@
+package frauddetector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Outcome AWS CloudFormation Resource (AWS::FraudDetector::Outcome)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-outcome.html
+type Outcome struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-outcome.html#cfn-frauddetector-outcome-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-outcome.html#cfn-frauddetector-outcome-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-outcome.html#cfn-frauddetector-outcome-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Outcome) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Outcome"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Outcome) MarshalJSON() ([]byte, error) {
+ type Properties Outcome
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Outcome) UnmarshalJSON(b []byte) error {
+ type Properties Outcome
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Outcome(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/frauddetector/aws-frauddetector-variable.go b/goformation/cloudformation/frauddetector/aws-frauddetector-variable.go
new file mode 100644
index 0000000000..599b326c26
--- /dev/null
+++ b/goformation/cloudformation/frauddetector/aws-frauddetector-variable.go
@@ -0,0 +1,139 @@
+package frauddetector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Variable AWS CloudFormation Resource (AWS::FraudDetector::Variable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html
+type Variable struct {
+
+ // DataSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html#cfn-frauddetector-variable-datasource
+ DataSource *types.Value `json:"DataSource,omitempty"`
+
+ // DataType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html#cfn-frauddetector-variable-datatype
+ DataType *types.Value `json:"DataType,omitempty"`
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html#cfn-frauddetector-variable-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html#cfn-frauddetector-variable-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html#cfn-frauddetector-variable-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html#cfn-frauddetector-variable-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VariableType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-frauddetector-variable.html#cfn-frauddetector-variable-variabletype
+ VariableType *types.Value `json:"VariableType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Variable) AWSCloudFormationType() string {
+ return "AWS::FraudDetector::Variable"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Variable) MarshalJSON() ([]byte, error) {
+ type Properties Variable
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Variable) UnmarshalJSON(b []byte) error {
+ type Properties Variable
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Variable(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem.go b/goformation/cloudformation/fsx/aws-fsx-filesystem.go
new file mode 100644
index 0000000000..d52f6d52a1
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem.go
@@ -0,0 +1,169 @@
+package fsx
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem AWS CloudFormation Resource (AWS::FSx::FileSystem)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html
+type FileSystem struct {
+
+ // BackupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-backupid
+ BackupId *types.Value `json:"BackupId,omitempty"`
+
+ // FileSystemType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-filesystemtype
+ FileSystemType *types.Value `json:"FileSystemType,omitempty"`
+
+ // FileSystemTypeVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-filesystemtypeversion
+ FileSystemTypeVersion *types.Value `json:"FileSystemTypeVersion,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // LustreConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-lustreconfiguration
+ LustreConfiguration *FileSystem_LustreConfiguration `json:"LustreConfiguration,omitempty"`
+
+ // OntapConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-ontapconfiguration
+ OntapConfiguration *FileSystem_OntapConfiguration `json:"OntapConfiguration,omitempty"`
+
+ // OpenZFSConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-openzfsconfiguration
+ OpenZFSConfiguration *FileSystem_OpenZFSConfiguration `json:"OpenZFSConfiguration,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // StorageCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagecapacity
+ StorageCapacity *types.Value `json:"StorageCapacity,omitempty"`
+
+ // StorageType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagetype
+ StorageType *types.Value `json:"StorageType,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // WindowsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-windowsconfiguration
+ WindowsConfiguration *FileSystem_WindowsConfiguration `json:"WindowsConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FileSystem) MarshalJSON() ([]byte, error) {
+ type Properties FileSystem
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FileSystem) UnmarshalJSON(b []byte) error {
+ type Properties FileSystem
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FileSystem(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_auditlogconfiguration.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_auditlogconfiguration.go
new file mode 100644
index 0000000000..d47194a577
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_auditlogconfiguration.go
@@ -0,0 +1,47 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_AuditLogConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.AuditLogConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html
+type FileSystem_AuditLogConfiguration struct {
+
+ // AuditLogDestination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-auditlogdestination
+ AuditLogDestination *types.Value `json:"AuditLogDestination,omitempty"`
+
+ // FileAccessAuditLogLevel AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-fileaccessauditloglevel
+ FileAccessAuditLogLevel *types.Value `json:"FileAccessAuditLogLevel,omitempty"`
+
+ // FileShareAccessAuditLogLevel AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-auditlogconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration-fileshareaccessauditloglevel
+ FileShareAccessAuditLogLevel *types.Value `json:"FileShareAccessAuditLogLevel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_AuditLogConfiguration) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.AuditLogConfiguration"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_clientconfigurations.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_clientconfigurations.go
new file mode 100644
index 0000000000..185e3e2d14
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_clientconfigurations.go
@@ -0,0 +1,42 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_ClientConfigurations AWS CloudFormation Resource (AWS::FSx::FileSystem.ClientConfigurations)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html
+type FileSystem_ClientConfigurations struct {
+
+ // Clients AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations-clients
+ Clients *types.Value `json:"Clients,omitempty"`
+
+ // Options AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations-options
+ Options *types.Value `json:"Options,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_ClientConfigurations) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.ClientConfigurations"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_diskiopsconfiguration.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_diskiopsconfiguration.go
new file mode 100644
index 0000000000..0d3b79937f
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_diskiopsconfiguration.go
@@ -0,0 +1,42 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_DiskIopsConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.DiskIopsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html
+type FileSystem_DiskIopsConfiguration struct {
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // Mode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_DiskIopsConfiguration) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.DiskIopsConfiguration"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_lustreconfiguration.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_lustreconfiguration.go
new file mode 100644
index 0000000000..05b4e297b0
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_lustreconfiguration.go
@@ -0,0 +1,92 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_LustreConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.LustreConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html
+type FileSystem_LustreConfiguration struct {
+
+ // AutoImportPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-autoimportpolicy
+ AutoImportPolicy *types.Value `json:"AutoImportPolicy,omitempty"`
+
+ // AutomaticBackupRetentionDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-automaticbackupretentiondays
+ AutomaticBackupRetentionDays *types.Value `json:"AutomaticBackupRetentionDays,omitempty"`
+
+ // CopyTagsToBackups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-copytagstobackups
+ CopyTagsToBackups *types.Value `json:"CopyTagsToBackups,omitempty"`
+
+ // DailyAutomaticBackupStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-dailyautomaticbackupstarttime
+ DailyAutomaticBackupStartTime *types.Value `json:"DailyAutomaticBackupStartTime,omitempty"`
+
+ // DataCompressionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-datacompressiontype
+ DataCompressionType *types.Value `json:"DataCompressionType,omitempty"`
+
+ // DeploymentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-deploymenttype
+ DeploymentType *types.Value `json:"DeploymentType,omitempty"`
+
+ // DriveCacheType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-drivecachetype
+ DriveCacheType *types.Value `json:"DriveCacheType,omitempty"`
+
+ // ExportPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-exportpath
+ ExportPath *types.Value `json:"ExportPath,omitempty"`
+
+ // ImportPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-importpath
+ ImportPath *types.Value `json:"ImportPath,omitempty"`
+
+ // ImportedFileChunkSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-importedfilechunksize
+ ImportedFileChunkSize *types.Value `json:"ImportedFileChunkSize,omitempty"`
+
+ // PerUnitStorageThroughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-perunitstoragethroughput
+ PerUnitStorageThroughput *types.Value `json:"PerUnitStorageThroughput,omitempty"`
+
+ // WeeklyMaintenanceStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html#cfn-fsx-filesystem-lustreconfiguration-weeklymaintenancestarttime
+ WeeklyMaintenanceStartTime *types.Value `json:"WeeklyMaintenanceStartTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_LustreConfiguration) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.LustreConfiguration"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_nfsexports.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_nfsexports.go
new file mode 100644
index 0000000000..94fff9f7a0
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_nfsexports.go
@@ -0,0 +1,35 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_NfsExports AWS CloudFormation Resource (AWS::FSx::FileSystem.NfsExports)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports.html
+type FileSystem_NfsExports struct {
+
+ // ClientConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports-clientconfigurations
+ ClientConfigurations []FileSystem_ClientConfigurations `json:"ClientConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_NfsExports) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.NfsExports"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_ontapconfiguration.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_ontapconfiguration.go
new file mode 100644
index 0000000000..2e35a41587
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_ontapconfiguration.go
@@ -0,0 +1,82 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_OntapConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.OntapConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html
+type FileSystem_OntapConfiguration struct {
+
+ // AutomaticBackupRetentionDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-automaticbackupretentiondays
+ AutomaticBackupRetentionDays *types.Value `json:"AutomaticBackupRetentionDays,omitempty"`
+
+ // DailyAutomaticBackupStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-dailyautomaticbackupstarttime
+ DailyAutomaticBackupStartTime *types.Value `json:"DailyAutomaticBackupStartTime,omitempty"`
+
+ // DeploymentType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-deploymenttype
+ DeploymentType *types.Value `json:"DeploymentType,omitempty"`
+
+ // DiskIopsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-diskiopsconfiguration
+ DiskIopsConfiguration *FileSystem_DiskIopsConfiguration `json:"DiskIopsConfiguration,omitempty"`
+
+ // EndpointIpAddressRange AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-endpointipaddressrange
+ EndpointIpAddressRange *types.Value `json:"EndpointIpAddressRange,omitempty"`
+
+ // FsxAdminPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-fsxadminpassword
+ FsxAdminPassword *types.Value `json:"FsxAdminPassword,omitempty"`
+
+ // PreferredSubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-preferredsubnetid
+ PreferredSubnetId *types.Value `json:"PreferredSubnetId,omitempty"`
+
+ // RouteTableIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-routetableids
+ RouteTableIds *types.Value `json:"RouteTableIds,omitempty"`
+
+ // ThroughputCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-throughputcapacity
+ ThroughputCapacity *types.Value `json:"ThroughputCapacity,omitempty"`
+
+ // WeeklyMaintenanceStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-ontapconfiguration.html#cfn-fsx-filesystem-ontapconfiguration-weeklymaintenancestarttime
+ WeeklyMaintenanceStartTime *types.Value `json:"WeeklyMaintenanceStartTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_OntapConfiguration) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.OntapConfiguration"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_openzfsconfiguration.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_openzfsconfiguration.go
new file mode 100644
index 0000000000..0706d501a3
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_openzfsconfiguration.go
@@ -0,0 +1,77 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_OpenZFSConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.OpenZFSConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html
+type FileSystem_OpenZFSConfiguration struct {
+
+ // AutomaticBackupRetentionDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-automaticbackupretentiondays
+ AutomaticBackupRetentionDays *types.Value `json:"AutomaticBackupRetentionDays,omitempty"`
+
+ // CopyTagsToBackups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-copytagstobackups
+ CopyTagsToBackups *types.Value `json:"CopyTagsToBackups,omitempty"`
+
+ // CopyTagsToVolumes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-copytagstovolumes
+ CopyTagsToVolumes *types.Value `json:"CopyTagsToVolumes,omitempty"`
+
+ // DailyAutomaticBackupStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-dailyautomaticbackupstarttime
+ DailyAutomaticBackupStartTime *types.Value `json:"DailyAutomaticBackupStartTime,omitempty"`
+
+ // DeploymentType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-deploymenttype
+ DeploymentType *types.Value `json:"DeploymentType,omitempty"`
+
+ // DiskIopsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-diskiopsconfiguration
+ DiskIopsConfiguration *FileSystem_DiskIopsConfiguration `json:"DiskIopsConfiguration,omitempty"`
+
+ // RootVolumeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration
+ RootVolumeConfiguration *FileSystem_RootVolumeConfiguration `json:"RootVolumeConfiguration,omitempty"`
+
+ // ThroughputCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-throughputcapacity
+ ThroughputCapacity *types.Value `json:"ThroughputCapacity,omitempty"`
+
+ // WeeklyMaintenanceStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-weeklymaintenancestarttime
+ WeeklyMaintenanceStartTime *types.Value `json:"WeeklyMaintenanceStartTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_OpenZFSConfiguration) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.OpenZFSConfiguration"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_rootvolumeconfiguration.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_rootvolumeconfiguration.go
new file mode 100644
index 0000000000..b85578dcf4
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_rootvolumeconfiguration.go
@@ -0,0 +1,57 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_RootVolumeConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.RootVolumeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html
+type FileSystem_RootVolumeConfiguration struct {
+
+ // CopyTagsToSnapshots AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-copytagstosnapshots
+ CopyTagsToSnapshots *types.Value `json:"CopyTagsToSnapshots,omitempty"`
+
+ // DataCompressionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-datacompressiontype
+ DataCompressionType *types.Value `json:"DataCompressionType,omitempty"`
+
+ // NfsExports AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-nfsexports
+ NfsExports []FileSystem_NfsExports `json:"NfsExports,omitempty"`
+
+ // ReadOnly AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-readonly
+ ReadOnly *types.Value `json:"ReadOnly,omitempty"`
+
+ // UserAndGroupQuotas AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas
+ UserAndGroupQuotas []FileSystem_UserAndGroupQuotas `json:"UserAndGroupQuotas,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_RootVolumeConfiguration) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.RootVolumeConfiguration"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_selfmanagedactivedirectoryconfiguration.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_selfmanagedactivedirectoryconfiguration.go
new file mode 100644
index 0000000000..eee1679e7c
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_selfmanagedactivedirectoryconfiguration.go
@@ -0,0 +1,62 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_SelfManagedActiveDirectoryConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html
+type FileSystem_SelfManagedActiveDirectoryConfiguration struct {
+
+ // DnsIps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration-dnsips
+ DnsIps *types.Value `json:"DnsIps,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // FileSystemAdministratorsGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration-filesystemadministratorsgroup
+ FileSystemAdministratorsGroup *types.Value `json:"FileSystemAdministratorsGroup,omitempty"`
+
+ // OrganizationalUnitDistinguishedName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration-organizationalunitdistinguishedname
+ OrganizationalUnitDistinguishedName *types.Value `json:"OrganizationalUnitDistinguishedName,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // UserName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration-username
+ UserName *types.Value `json:"UserName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_SelfManagedActiveDirectoryConfiguration) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_userandgroupquotas.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_userandgroupquotas.go
new file mode 100644
index 0000000000..91e837d457
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_userandgroupquotas.go
@@ -0,0 +1,47 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_UserAndGroupQuotas AWS CloudFormation Resource (AWS::FSx::FileSystem.UserAndGroupQuotas)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html
+type FileSystem_UserAndGroupQuotas struct {
+
+ // Id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // StorageCapacityQuotaGiB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas-storagecapacityquotagib
+ StorageCapacityQuotaGiB *types.Value `json:"StorageCapacityQuotaGiB,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas.html#cfn-fsx-filesystem-openzfsconfiguration-rootvolumeconfiguration-userandgroupquotas-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_UserAndGroupQuotas) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.UserAndGroupQuotas"
+}
diff --git a/goformation/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go b/goformation/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go
new file mode 100644
index 0000000000..2883976552
--- /dev/null
+++ b/goformation/cloudformation/fsx/aws-fsx-filesystem_windowsconfiguration.go
@@ -0,0 +1,87 @@
+package fsx
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FileSystem_WindowsConfiguration AWS CloudFormation Resource (AWS::FSx::FileSystem.WindowsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html
+type FileSystem_WindowsConfiguration struct {
+
+ // ActiveDirectoryId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-activedirectoryid
+ ActiveDirectoryId *types.Value `json:"ActiveDirectoryId,omitempty"`
+
+ // Aliases AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-aliases
+ Aliases *types.Value `json:"Aliases,omitempty"`
+
+ // AuditLogConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-auditlogconfiguration
+ AuditLogConfiguration *FileSystem_AuditLogConfiguration `json:"AuditLogConfiguration,omitempty"`
+
+ // AutomaticBackupRetentionDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-automaticbackupretentiondays
+ AutomaticBackupRetentionDays *types.Value `json:"AutomaticBackupRetentionDays,omitempty"`
+
+ // CopyTagsToBackups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-copytagstobackups
+ CopyTagsToBackups *types.Value `json:"CopyTagsToBackups,omitempty"`
+
+ // DailyAutomaticBackupStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-dailyautomaticbackupstarttime
+ DailyAutomaticBackupStartTime *types.Value `json:"DailyAutomaticBackupStartTime,omitempty"`
+
+ // DeploymentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-deploymenttype
+ DeploymentType *types.Value `json:"DeploymentType,omitempty"`
+
+ // PreferredSubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-preferredsubnetid
+ PreferredSubnetId *types.Value `json:"PreferredSubnetId,omitempty"`
+
+ // SelfManagedActiveDirectoryConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-selfmanagedactivedirectoryconfiguration
+ SelfManagedActiveDirectoryConfiguration *FileSystem_SelfManagedActiveDirectoryConfiguration `json:"SelfManagedActiveDirectoryConfiguration,omitempty"`
+
+ // ThroughputCapacity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-throughputcapacity
+ ThroughputCapacity *types.Value `json:"ThroughputCapacity"`
+
+ // WeeklyMaintenanceStartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-windowsconfiguration.html#cfn-fsx-filesystem-windowsconfiguration-weeklymaintenancestarttime
+ WeeklyMaintenanceStartTime *types.Value `json:"WeeklyMaintenanceStartTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FileSystem_WindowsConfiguration) AWSCloudFormationType() string {
+ return "AWS::FSx::FileSystem.WindowsConfiguration"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-alias.go b/goformation/cloudformation/gamelift/aws-gamelift-alias.go
new file mode 100644
index 0000000000..138d1ff982
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-alias.go
@@ -0,0 +1,118 @@
+package gamelift
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alias AWS CloudFormation Resource (AWS::GameLift::Alias)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html
+type Alias struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoutingStrategy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-alias.html#cfn-gamelift-alias-routingstrategy
+ RoutingStrategy *Alias_RoutingStrategy `json:"RoutingStrategy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alias) AWSCloudFormationType() string {
+ return "AWS::GameLift::Alias"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Alias) MarshalJSON() ([]byte, error) {
+ type Properties Alias
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Alias) UnmarshalJSON(b []byte) error {
+ type Properties Alias
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Alias(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-alias_routingstrategy.go b/goformation/cloudformation/gamelift/aws-gamelift-alias_routingstrategy.go
new file mode 100644
index 0000000000..893d8629d1
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-alias_routingstrategy.go
@@ -0,0 +1,47 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alias_RoutingStrategy AWS CloudFormation Resource (AWS::GameLift::Alias.RoutingStrategy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html
+type Alias_RoutingStrategy struct {
+
+ // FleetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-fleetid
+ FleetId *types.Value `json:"FleetId,omitempty"`
+
+ // Message AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-message
+ Message *types.Value `json:"Message,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-alias-routingstrategy.html#cfn-gamelift-alias-routingstrategy-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alias_RoutingStrategy) AWSCloudFormationType() string {
+ return "AWS::GameLift::Alias.RoutingStrategy"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-build.go b/goformation/cloudformation/gamelift/aws-gamelift-build.go
new file mode 100644
index 0000000000..f4f097b96c
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-build.go
@@ -0,0 +1,123 @@
+package gamelift
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Build AWS CloudFormation Resource (AWS::GameLift::Build)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html
+type Build struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // OperatingSystem AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-operatingsystem
+ OperatingSystem *types.Value `json:"OperatingSystem,omitempty"`
+
+ // StorageLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-storagelocation
+ StorageLocation *Build_S3Location `json:"StorageLocation,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-build.html#cfn-gamelift-build-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Build) AWSCloudFormationType() string {
+ return "AWS::GameLift::Build"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Build) MarshalJSON() ([]byte, error) {
+ type Properties Build
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Build) UnmarshalJSON(b []byte) error {
+ type Properties Build
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Build(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-build_s3location.go b/goformation/cloudformation/gamelift/aws-gamelift-build_s3location.go
new file mode 100644
index 0000000000..062c167f47
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-build_s3location.go
@@ -0,0 +1,52 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Build_S3Location AWS CloudFormation Resource (AWS::GameLift::Build.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html
+type Build_S3Location struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storage-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storage-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // ObjectVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-object-verison
+ ObjectVersion *types.Value `json:"ObjectVersion,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-build-storagelocation.html#cfn-gamelift-build-storage-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Build_S3Location) AWSCloudFormationType() string {
+ return "AWS::GameLift::Build.S3Location"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-fleet.go b/goformation/cloudformation/gamelift/aws-gamelift-fleet.go
new file mode 100644
index 0000000000..0bdebcef1e
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-fleet.go
@@ -0,0 +1,198 @@
+package gamelift
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet AWS CloudFormation Resource (AWS::GameLift::Fleet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html
+type Fleet struct {
+
+ // BuildId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-buildid
+ BuildId *types.Value `json:"BuildId,omitempty"`
+
+ // CertificateConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-certificateconfiguration
+ CertificateConfiguration *Fleet_CertificateConfiguration `json:"CertificateConfiguration,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DesiredEC2Instances AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-desiredec2instances
+ DesiredEC2Instances *types.Value `json:"DesiredEC2Instances,omitempty"`
+
+ // EC2InboundPermissions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-ec2inboundpermissions
+ EC2InboundPermissions []Fleet_IpPermission `json:"EC2InboundPermissions,omitempty"`
+
+ // EC2InstanceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-ec2instancetype
+ EC2InstanceType *types.Value `json:"EC2InstanceType,omitempty"`
+
+ // FleetType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-fleettype
+ FleetType *types.Value `json:"FleetType,omitempty"`
+
+ // InstanceRoleARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-instancerolearn
+ InstanceRoleARN *types.Value `json:"InstanceRoleARN,omitempty"`
+
+ // Locations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-locations
+ Locations []Fleet_LocationConfiguration `json:"Locations,omitempty"`
+
+ // MaxSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-maxsize
+ MaxSize *types.Value `json:"MaxSize,omitempty"`
+
+ // MetricGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-metricgroups
+ MetricGroups *types.Value `json:"MetricGroups,omitempty"`
+
+ // MinSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-minsize
+ MinSize *types.Value `json:"MinSize,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // NewGameSessionProtectionPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-newgamesessionprotectionpolicy
+ NewGameSessionProtectionPolicy *types.Value `json:"NewGameSessionProtectionPolicy,omitempty"`
+
+ // PeerVpcAwsAccountId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-peervpcawsaccountid
+ PeerVpcAwsAccountId *types.Value `json:"PeerVpcAwsAccountId,omitempty"`
+
+ // PeerVpcId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-peervpcid
+ PeerVpcId *types.Value `json:"PeerVpcId,omitempty"`
+
+ // ResourceCreationLimitPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-resourcecreationlimitpolicy
+ ResourceCreationLimitPolicy *Fleet_ResourceCreationLimitPolicy `json:"ResourceCreationLimitPolicy,omitempty"`
+
+ // RuntimeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-runtimeconfiguration
+ RuntimeConfiguration *Fleet_RuntimeConfiguration `json:"RuntimeConfiguration,omitempty"`
+
+ // ScriptId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-scriptid
+ ScriptId *types.Value `json:"ScriptId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet) AWSCloudFormationType() string {
+ return "AWS::GameLift::Fleet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Fleet) MarshalJSON() ([]byte, error) {
+ type Properties Fleet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Fleet) UnmarshalJSON(b []byte) error {
+ type Properties Fleet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Fleet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-fleet_certificateconfiguration.go b/goformation/cloudformation/gamelift/aws-gamelift-fleet_certificateconfiguration.go
new file mode 100644
index 0000000000..22ef72f5f4
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-fleet_certificateconfiguration.go
@@ -0,0 +1,37 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_CertificateConfiguration AWS CloudFormation Resource (AWS::GameLift::Fleet.CertificateConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html
+type Fleet_CertificateConfiguration struct {
+
+ // CertificateType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html#cfn-gamelift-fleet-certificateconfiguration-certificatetype
+ CertificateType *types.Value `json:"CertificateType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_CertificateConfiguration) AWSCloudFormationType() string {
+ return "AWS::GameLift::Fleet.CertificateConfiguration"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-fleet_ippermission.go b/goformation/cloudformation/gamelift/aws-gamelift-fleet_ippermission.go
new file mode 100644
index 0000000000..296d3121e2
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-fleet_ippermission.go
@@ -0,0 +1,52 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_IpPermission AWS CloudFormation Resource (AWS::GameLift::Fleet.IpPermission)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html
+type Fleet_IpPermission struct {
+
+ // FromPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html#cfn-gamelift-fleet-ippermission-fromport
+ FromPort *types.Value `json:"FromPort"`
+
+ // IpRange AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html#cfn-gamelift-fleet-ippermission-iprange
+ IpRange *types.Value `json:"IpRange,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html#cfn-gamelift-fleet-ippermission-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // ToPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-ippermission.html#cfn-gamelift-fleet-ippermission-toport
+ ToPort *types.Value `json:"ToPort"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_IpPermission) AWSCloudFormationType() string {
+ return "AWS::GameLift::Fleet.IpPermission"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-fleet_locationcapacity.go b/goformation/cloudformation/gamelift/aws-gamelift-fleet_locationcapacity.go
new file mode 100644
index 0000000000..6b86927ae7
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-fleet_locationcapacity.go
@@ -0,0 +1,47 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_LocationCapacity AWS CloudFormation Resource (AWS::GameLift::Fleet.LocationCapacity)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html
+type Fleet_LocationCapacity struct {
+
+ // DesiredEC2Instances AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html#cfn-gamelift-fleet-locationcapacity-desiredec2instances
+ DesiredEC2Instances *types.Value `json:"DesiredEC2Instances"`
+
+ // MaxSize AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html#cfn-gamelift-fleet-locationcapacity-maxsize
+ MaxSize *types.Value `json:"MaxSize"`
+
+ // MinSize AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationcapacity.html#cfn-gamelift-fleet-locationcapacity-minsize
+ MinSize *types.Value `json:"MinSize"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_LocationCapacity) AWSCloudFormationType() string {
+ return "AWS::GameLift::Fleet.LocationCapacity"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-fleet_locationconfiguration.go b/goformation/cloudformation/gamelift/aws-gamelift-fleet_locationconfiguration.go
new file mode 100644
index 0000000000..7bd5075c17
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-fleet_locationconfiguration.go
@@ -0,0 +1,42 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_LocationConfiguration AWS CloudFormation Resource (AWS::GameLift::Fleet.LocationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html
+type Fleet_LocationConfiguration struct {
+
+ // Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html#cfn-gamelift-fleet-locationconfiguration-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // LocationCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html#cfn-gamelift-fleet-locationconfiguration-locationcapacity
+ LocationCapacity *Fleet_LocationCapacity `json:"LocationCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_LocationConfiguration) AWSCloudFormationType() string {
+ return "AWS::GameLift::Fleet.LocationConfiguration"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-fleet_resourcecreationlimitpolicy.go b/goformation/cloudformation/gamelift/aws-gamelift-fleet_resourcecreationlimitpolicy.go
new file mode 100644
index 0000000000..2deacdfa23
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-fleet_resourcecreationlimitpolicy.go
@@ -0,0 +1,42 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_ResourceCreationLimitPolicy AWS CloudFormation Resource (AWS::GameLift::Fleet.ResourceCreationLimitPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html
+type Fleet_ResourceCreationLimitPolicy struct {
+
+ // NewGameSessionsPerCreator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html#cfn-gamelift-fleet-resourcecreationlimitpolicy-newgamesessionspercreator
+ NewGameSessionsPerCreator *types.Value `json:"NewGameSessionsPerCreator,omitempty"`
+
+ // PolicyPeriodInMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-resourcecreationlimitpolicy.html#cfn-gamelift-fleet-resourcecreationlimitpolicy-policyperiodinminutes
+ PolicyPeriodInMinutes *types.Value `json:"PolicyPeriodInMinutes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_ResourceCreationLimitPolicy) AWSCloudFormationType() string {
+ return "AWS::GameLift::Fleet.ResourceCreationLimitPolicy"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-fleet_runtimeconfiguration.go b/goformation/cloudformation/gamelift/aws-gamelift-fleet_runtimeconfiguration.go
new file mode 100644
index 0000000000..5b96fe3381
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-fleet_runtimeconfiguration.go
@@ -0,0 +1,47 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_RuntimeConfiguration AWS CloudFormation Resource (AWS::GameLift::Fleet.RuntimeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html
+type Fleet_RuntimeConfiguration struct {
+
+ // GameSessionActivationTimeoutSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html#cfn-gamelift-fleet-runtimeconfiguration-gamesessionactivationtimeoutseconds
+ GameSessionActivationTimeoutSeconds *types.Value `json:"GameSessionActivationTimeoutSeconds,omitempty"`
+
+ // MaxConcurrentGameSessionActivations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html#cfn-gamelift-fleet-runtimeconfiguration-maxconcurrentgamesessionactivations
+ MaxConcurrentGameSessionActivations *types.Value `json:"MaxConcurrentGameSessionActivations,omitempty"`
+
+ // ServerProcesses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html#cfn-gamelift-fleet-runtimeconfiguration-serverprocesses
+ ServerProcesses []Fleet_ServerProcess `json:"ServerProcesses,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_RuntimeConfiguration) AWSCloudFormationType() string {
+ return "AWS::GameLift::Fleet.RuntimeConfiguration"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-fleet_serverprocess.go b/goformation/cloudformation/gamelift/aws-gamelift-fleet_serverprocess.go
new file mode 100644
index 0000000000..a0d0322941
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-fleet_serverprocess.go
@@ -0,0 +1,47 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Fleet_ServerProcess AWS CloudFormation Resource (AWS::GameLift::Fleet.ServerProcess)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html
+type Fleet_ServerProcess struct {
+
+ // ConcurrentExecutions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html#cfn-gamelift-fleet-serverprocess-concurrentexecutions
+ ConcurrentExecutions *types.Value `json:"ConcurrentExecutions"`
+
+ // LaunchPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html#cfn-gamelift-fleet-serverprocess-launchpath
+ LaunchPath *types.Value `json:"LaunchPath,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html#cfn-gamelift-fleet-serverprocess-parameters
+ Parameters *types.Value `json:"Parameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Fleet_ServerProcess) AWSCloudFormationType() string {
+ return "AWS::GameLift::Fleet.ServerProcess"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup.go b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup.go
new file mode 100644
index 0000000000..dae962d50d
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup.go
@@ -0,0 +1,164 @@
+package gamelift
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameServerGroup AWS CloudFormation Resource (AWS::GameLift::GameServerGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html
+type GameServerGroup struct {
+
+ // AutoScalingPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-autoscalingpolicy
+ AutoScalingPolicy *GameServerGroup_AutoScalingPolicy `json:"AutoScalingPolicy,omitempty"`
+
+ // BalancingStrategy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-balancingstrategy
+ BalancingStrategy *types.Value `json:"BalancingStrategy,omitempty"`
+
+ // DeleteOption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-deleteoption
+ DeleteOption *types.Value `json:"DeleteOption,omitempty"`
+
+ // GameServerGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-gameservergroupname
+ GameServerGroupName *types.Value `json:"GameServerGroupName,omitempty"`
+
+ // GameServerProtectionPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-gameserverprotectionpolicy
+ GameServerProtectionPolicy *types.Value `json:"GameServerProtectionPolicy,omitempty"`
+
+ // InstanceDefinitions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-instancedefinitions
+ InstanceDefinitions []GameServerGroup_InstanceDefinition `json:"InstanceDefinitions,omitempty"`
+
+ // LaunchTemplate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-launchtemplate
+ LaunchTemplate *GameServerGroup_LaunchTemplate `json:"LaunchTemplate,omitempty"`
+
+ // MaxSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-maxsize
+ MaxSize *types.Value `json:"MaxSize,omitempty"`
+
+ // MinSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-minsize
+ MinSize *types.Value `json:"MinSize,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // VpcSubnets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gameservergroup.html#cfn-gamelift-gameservergroup-vpcsubnets
+ VpcSubnets *types.Value `json:"VpcSubnets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameServerGroup) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameServerGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GameServerGroup) MarshalJSON() ([]byte, error) {
+ type Properties GameServerGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GameServerGroup) UnmarshalJSON(b []byte) error {
+ type Properties GameServerGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GameServerGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_autoscalingpolicy.go b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_autoscalingpolicy.go
new file mode 100644
index 0000000000..d748dbda7f
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_autoscalingpolicy.go
@@ -0,0 +1,42 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameServerGroup_AutoScalingPolicy AWS CloudFormation Resource (AWS::GameLift::GameServerGroup.AutoScalingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-autoscalingpolicy.html
+type GameServerGroup_AutoScalingPolicy struct {
+
+ // EstimatedInstanceWarmup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-autoscalingpolicy.html#cfn-gamelift-gameservergroup-autoscalingpolicy-estimatedinstancewarmup
+ EstimatedInstanceWarmup *types.Value `json:"EstimatedInstanceWarmup,omitempty"`
+
+ // TargetTrackingConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-autoscalingpolicy.html#cfn-gamelift-gameservergroup-autoscalingpolicy-targettrackingconfiguration
+ TargetTrackingConfiguration *GameServerGroup_TargetTrackingConfiguration `json:"TargetTrackingConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameServerGroup_AutoScalingPolicy) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameServerGroup.AutoScalingPolicy"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_instancedefinition.go b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_instancedefinition.go
new file mode 100644
index 0000000000..c9a8de004b
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_instancedefinition.go
@@ -0,0 +1,42 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameServerGroup_InstanceDefinition AWS CloudFormation Resource (AWS::GameLift::GameServerGroup.InstanceDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinition.html
+type GameServerGroup_InstanceDefinition struct {
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinition.html#cfn-gamelift-gameservergroup-instancedefinition-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // WeightedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinition.html#cfn-gamelift-gameservergroup-instancedefinition-weightedcapacity
+ WeightedCapacity *types.Value `json:"WeightedCapacity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameServerGroup_InstanceDefinition) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameServerGroup.InstanceDefinition"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_instancedefinitions.go b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_instancedefinitions.go
new file mode 100644
index 0000000000..03c10863ed
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_instancedefinitions.go
@@ -0,0 +1,35 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameServerGroup_InstanceDefinitions AWS CloudFormation Resource (AWS::GameLift::GameServerGroup.InstanceDefinitions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinitions.html
+type GameServerGroup_InstanceDefinitions struct {
+
+ // InstanceDefinitions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-instancedefinitions.html#cfn-gamelift-gameservergroup-instancedefinitions-instancedefinitions
+ InstanceDefinitions []GameServerGroup_InstanceDefinition `json:"InstanceDefinitions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameServerGroup_InstanceDefinitions) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameServerGroup.InstanceDefinitions"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_launchtemplate.go b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_launchtemplate.go
new file mode 100644
index 0000000000..539a43b564
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_launchtemplate.go
@@ -0,0 +1,47 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameServerGroup_LaunchTemplate AWS CloudFormation Resource (AWS::GameLift::GameServerGroup.LaunchTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html
+type GameServerGroup_LaunchTemplate struct {
+
+ // LaunchTemplateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html#cfn-gamelift-gameservergroup-launchtemplate-launchtemplateid
+ LaunchTemplateId *types.Value `json:"LaunchTemplateId,omitempty"`
+
+ // LaunchTemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html#cfn-gamelift-gameservergroup-launchtemplate-launchtemplatename
+ LaunchTemplateName *types.Value `json:"LaunchTemplateName,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-launchtemplate.html#cfn-gamelift-gameservergroup-launchtemplate-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameServerGroup_LaunchTemplate) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameServerGroup.LaunchTemplate"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_tags.go b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_tags.go
new file mode 100644
index 0000000000..6a0816400b
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_tags.go
@@ -0,0 +1,36 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameServerGroup_Tags AWS CloudFormation Resource (AWS::GameLift::GameServerGroup.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-tags.html
+type GameServerGroup_Tags struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-tags.html#cfn-gamelift-gameservergroup-tags-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameServerGroup_Tags) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameServerGroup.Tags"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_targettrackingconfiguration.go b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_targettrackingconfiguration.go
new file mode 100644
index 0000000000..85bd55e624
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_targettrackingconfiguration.go
@@ -0,0 +1,37 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameServerGroup_TargetTrackingConfiguration AWS CloudFormation Resource (AWS::GameLift::GameServerGroup.TargetTrackingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html
+type GameServerGroup_TargetTrackingConfiguration struct {
+
+ // TargetValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-targettrackingconfiguration.html#cfn-gamelift-gameservergroup-targettrackingconfiguration-targetvalue
+ TargetValue *types.Value `json:"TargetValue"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameServerGroup_TargetTrackingConfiguration) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameServerGroup.TargetTrackingConfiguration"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_vpcsubnets.go b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_vpcsubnets.go
new file mode 100644
index 0000000000..442547955f
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gameservergroup_vpcsubnets.go
@@ -0,0 +1,37 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameServerGroup_VpcSubnets AWS CloudFormation Resource (AWS::GameLift::GameServerGroup.VpcSubnets)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-vpcsubnets.html
+type GameServerGroup_VpcSubnets struct {
+
+ // VpcSubnets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gameservergroup-vpcsubnets.html#cfn-gamelift-gameservergroup-vpcsubnets-vpcsubnets
+ VpcSubnets *types.Value `json:"VpcSubnets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameServerGroup_VpcSubnets) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameServerGroup.VpcSubnets"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue.go b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue.go
new file mode 100644
index 0000000000..600785e54b
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue.go
@@ -0,0 +1,143 @@
+package gamelift
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameSessionQueue AWS CloudFormation Resource (AWS::GameLift::GameSessionQueue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html
+type GameSessionQueue struct {
+
+ // CustomEventData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-customeventdata
+ CustomEventData *types.Value `json:"CustomEventData,omitempty"`
+
+ // Destinations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-destinations
+ Destinations []GameSessionQueue_Destination `json:"Destinations,omitempty"`
+
+ // FilterConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-filterconfiguration
+ FilterConfiguration *GameSessionQueue_FilterConfiguration `json:"FilterConfiguration,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // NotificationTarget AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-notificationtarget
+ NotificationTarget *types.Value `json:"NotificationTarget,omitempty"`
+
+ // PlayerLatencyPolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-playerlatencypolicies
+ PlayerLatencyPolicies []GameSessionQueue_PlayerLatencyPolicy `json:"PlayerLatencyPolicies,omitempty"`
+
+ // PriorityConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-priorityconfiguration
+ PriorityConfiguration *GameSessionQueue_PriorityConfiguration `json:"PriorityConfiguration,omitempty"`
+
+ // TimeoutInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-timeoutinseconds
+ TimeoutInSeconds *types.Value `json:"TimeoutInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameSessionQueue) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameSessionQueue"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GameSessionQueue) MarshalJSON() ([]byte, error) {
+ type Properties GameSessionQueue
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GameSessionQueue) UnmarshalJSON(b []byte) error {
+ type Properties GameSessionQueue
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GameSessionQueue(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_destination.go b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_destination.go
new file mode 100644
index 0000000000..751e139236
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_destination.go
@@ -0,0 +1,37 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameSessionQueue_Destination AWS CloudFormation Resource (AWS::GameLift::GameSessionQueue.Destination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-destination.html
+type GameSessionQueue_Destination struct {
+
+ // DestinationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-destination.html#cfn-gamelift-gamesessionqueue-destination-destinationarn
+ DestinationArn *types.Value `json:"DestinationArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameSessionQueue_Destination) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameSessionQueue.Destination"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_filterconfiguration.go b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_filterconfiguration.go
new file mode 100644
index 0000000000..2619482393
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_filterconfiguration.go
@@ -0,0 +1,37 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameSessionQueue_FilterConfiguration AWS CloudFormation Resource (AWS::GameLift::GameSessionQueue.FilterConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-filterconfiguration.html
+type GameSessionQueue_FilterConfiguration struct {
+
+ // AllowedLocations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-filterconfiguration.html#cfn-gamelift-gamesessionqueue-filterconfiguration-allowedlocations
+ AllowedLocations *types.Value `json:"AllowedLocations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameSessionQueue_FilterConfiguration) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameSessionQueue.FilterConfiguration"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_playerlatencypolicy.go b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_playerlatencypolicy.go
new file mode 100644
index 0000000000..10a4f68ac3
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_playerlatencypolicy.go
@@ -0,0 +1,42 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameSessionQueue_PlayerLatencyPolicy AWS CloudFormation Resource (AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-playerlatencypolicy.html
+type GameSessionQueue_PlayerLatencyPolicy struct {
+
+ // MaximumIndividualPlayerLatencyMilliseconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-playerlatencypolicy.html#cfn-gamelift-gamesessionqueue-playerlatencypolicy-maximumindividualplayerlatencymilliseconds
+ MaximumIndividualPlayerLatencyMilliseconds *types.Value `json:"MaximumIndividualPlayerLatencyMilliseconds,omitempty"`
+
+ // PolicyDurationSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-playerlatencypolicy.html#cfn-gamelift-gamesessionqueue-playerlatencypolicy-policydurationseconds
+ PolicyDurationSeconds *types.Value `json:"PolicyDurationSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameSessionQueue_PlayerLatencyPolicy) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_priorityconfiguration.go b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_priorityconfiguration.go
new file mode 100644
index 0000000000..88d82f1be6
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-gamesessionqueue_priorityconfiguration.go
@@ -0,0 +1,42 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GameSessionQueue_PriorityConfiguration AWS CloudFormation Resource (AWS::GameLift::GameSessionQueue.PriorityConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-priorityconfiguration.html
+type GameSessionQueue_PriorityConfiguration struct {
+
+ // LocationOrder AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-priorityconfiguration.html#cfn-gamelift-gamesessionqueue-priorityconfiguration-locationorder
+ LocationOrder *types.Value `json:"LocationOrder,omitempty"`
+
+ // PriorityOrder AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-priorityconfiguration.html#cfn-gamelift-gamesessionqueue-priorityconfiguration-priorityorder
+ PriorityOrder *types.Value `json:"PriorityOrder,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GameSessionQueue_PriorityConfiguration) AWSCloudFormationType() string {
+ return "AWS::GameLift::GameSessionQueue.PriorityConfiguration"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration.go b/goformation/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration.go
new file mode 100644
index 0000000000..d500558984
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration.go
@@ -0,0 +1,173 @@
+package gamelift
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MatchmakingConfiguration AWS CloudFormation Resource (AWS::GameLift::MatchmakingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html
+type MatchmakingConfiguration struct {
+
+ // AcceptanceRequired AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-acceptancerequired
+ AcceptanceRequired *types.Value `json:"AcceptanceRequired"`
+
+ // AcceptanceTimeoutSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-acceptancetimeoutseconds
+ AcceptanceTimeoutSeconds *types.Value `json:"AcceptanceTimeoutSeconds,omitempty"`
+
+ // AdditionalPlayerCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-additionalplayercount
+ AdditionalPlayerCount *types.Value `json:"AdditionalPlayerCount,omitempty"`
+
+ // BackfillMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-backfillmode
+ BackfillMode *types.Value `json:"BackfillMode,omitempty"`
+
+ // CustomEventData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-customeventdata
+ CustomEventData *types.Value `json:"CustomEventData,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FlexMatchMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-flexmatchmode
+ FlexMatchMode *types.Value `json:"FlexMatchMode,omitempty"`
+
+ // GameProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-gameproperties
+ GameProperties []MatchmakingConfiguration_GameProperty `json:"GameProperties,omitempty"`
+
+ // GameSessionData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-gamesessiondata
+ GameSessionData *types.Value `json:"GameSessionData,omitempty"`
+
+ // GameSessionQueueArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-gamesessionqueuearns
+ GameSessionQueueArns *types.Value `json:"GameSessionQueueArns,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // NotificationTarget AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-notificationtarget
+ NotificationTarget *types.Value `json:"NotificationTarget,omitempty"`
+
+ // RequestTimeoutSeconds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-requesttimeoutseconds
+ RequestTimeoutSeconds *types.Value `json:"RequestTimeoutSeconds"`
+
+ // RuleSetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingconfiguration.html#cfn-gamelift-matchmakingconfiguration-rulesetname
+ RuleSetName *types.Value `json:"RuleSetName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MatchmakingConfiguration) AWSCloudFormationType() string {
+ return "AWS::GameLift::MatchmakingConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MatchmakingConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties MatchmakingConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MatchmakingConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties MatchmakingConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MatchmakingConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration_gameproperty.go b/goformation/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration_gameproperty.go
new file mode 100644
index 0000000000..2e2df4d66b
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-matchmakingconfiguration_gameproperty.go
@@ -0,0 +1,42 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MatchmakingConfiguration_GameProperty AWS CloudFormation Resource (AWS::GameLift::MatchmakingConfiguration.GameProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-matchmakingconfiguration-gameproperty.html
+type MatchmakingConfiguration_GameProperty struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-matchmakingconfiguration-gameproperty.html#cfn-gamelift-matchmakingconfiguration-gameproperty-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-matchmakingconfiguration-gameproperty.html#cfn-gamelift-matchmakingconfiguration-gameproperty-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MatchmakingConfiguration_GameProperty) AWSCloudFormationType() string {
+ return "AWS::GameLift::MatchmakingConfiguration.GameProperty"
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-matchmakingruleset.go b/goformation/cloudformation/gamelift/aws-gamelift-matchmakingruleset.go
new file mode 100644
index 0000000000..c1c9be02f0
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-matchmakingruleset.go
@@ -0,0 +1,113 @@
+package gamelift
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MatchmakingRuleSet AWS CloudFormation Resource (AWS::GameLift::MatchmakingRuleSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html
+type MatchmakingRuleSet struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html#cfn-gamelift-matchmakingruleset-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RuleSetBody AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-matchmakingruleset.html#cfn-gamelift-matchmakingruleset-rulesetbody
+ RuleSetBody *types.Value `json:"RuleSetBody,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MatchmakingRuleSet) AWSCloudFormationType() string {
+ return "AWS::GameLift::MatchmakingRuleSet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MatchmakingRuleSet) MarshalJSON() ([]byte, error) {
+ type Properties MatchmakingRuleSet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MatchmakingRuleSet) UnmarshalJSON(b []byte) error {
+ type Properties MatchmakingRuleSet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MatchmakingRuleSet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-script.go b/goformation/cloudformation/gamelift/aws-gamelift-script.go
new file mode 100644
index 0000000000..c5948c1dee
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-script.go
@@ -0,0 +1,118 @@
+package gamelift
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Script AWS CloudFormation Resource (AWS::GameLift::Script)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html
+type Script struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html#cfn-gamelift-script-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // StorageLocation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html#cfn-gamelift-script-storagelocation
+ StorageLocation *Script_S3Location `json:"StorageLocation,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-script.html#cfn-gamelift-script-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Script) AWSCloudFormationType() string {
+ return "AWS::GameLift::Script"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Script) MarshalJSON() ([]byte, error) {
+ type Properties Script
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Script) UnmarshalJSON(b []byte) error {
+ type Properties Script
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Script(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/gamelift/aws-gamelift-script_s3location.go b/goformation/cloudformation/gamelift/aws-gamelift-script_s3location.go
new file mode 100644
index 0000000000..bc980ddbeb
--- /dev/null
+++ b/goformation/cloudformation/gamelift/aws-gamelift-script_s3location.go
@@ -0,0 +1,52 @@
+package gamelift
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Script_S3Location AWS CloudFormation Resource (AWS::GameLift::Script.S3Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html
+type Script_S3Location struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html#cfn-gamelift-script-s3location-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html#cfn-gamelift-script-s3location-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // ObjectVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html#cfn-gamelift-script-s3location-objectversion
+ ObjectVersion *types.Value `json:"ObjectVersion,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-script-s3location.html#cfn-gamelift-script-s3location-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Script_S3Location) AWSCloudFormationType() string {
+ return "AWS::GameLift::Script.S3Location"
+}
diff --git a/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-accelerator.go b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-accelerator.go
new file mode 100644
index 0000000000..d92a5b2502
--- /dev/null
+++ b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-accelerator.go
@@ -0,0 +1,129 @@
+package globalaccelerator
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Accelerator AWS CloudFormation Resource (AWS::GlobalAccelerator::Accelerator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html
+type Accelerator struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html#cfn-globalaccelerator-accelerator-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // IpAddressType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html#cfn-globalaccelerator-accelerator-ipaddresstype
+ IpAddressType *types.Value `json:"IpAddressType,omitempty"`
+
+ // IpAddresses AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html#cfn-globalaccelerator-accelerator-ipaddresses
+ IpAddresses *types.Value `json:"IpAddresses,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html#cfn-globalaccelerator-accelerator-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-accelerator.html#cfn-globalaccelerator-accelerator-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Accelerator) AWSCloudFormationType() string {
+ return "AWS::GlobalAccelerator::Accelerator"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Accelerator) MarshalJSON() ([]byte, error) {
+ type Properties Accelerator
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Accelerator) UnmarshalJSON(b []byte) error {
+ type Properties Accelerator
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Accelerator(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup.go b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup.go
new file mode 100644
index 0000000000..9d2f3960f2
--- /dev/null
+++ b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup.go
@@ -0,0 +1,153 @@
+package globalaccelerator
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EndpointGroup AWS CloudFormation Resource (AWS::GlobalAccelerator::EndpointGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html
+type EndpointGroup struct {
+
+ // EndpointConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-endpointconfigurations
+ EndpointConfigurations []EndpointGroup_EndpointConfiguration `json:"EndpointConfigurations,omitempty"`
+
+ // EndpointGroupRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-endpointgroupregion
+ EndpointGroupRegion *types.Value `json:"EndpointGroupRegion,omitempty"`
+
+ // HealthCheckIntervalSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-healthcheckintervalseconds
+ HealthCheckIntervalSeconds *types.Value `json:"HealthCheckIntervalSeconds,omitempty"`
+
+ // HealthCheckPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-healthcheckpath
+ HealthCheckPath *types.Value `json:"HealthCheckPath,omitempty"`
+
+ // HealthCheckPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-healthcheckport
+ HealthCheckPort *types.Value `json:"HealthCheckPort,omitempty"`
+
+ // HealthCheckProtocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-healthcheckprotocol
+ HealthCheckProtocol *types.Value `json:"HealthCheckProtocol,omitempty"`
+
+ // ListenerArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-listenerarn
+ ListenerArn *types.Value `json:"ListenerArn,omitempty"`
+
+ // PortOverrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-portoverrides
+ PortOverrides []EndpointGroup_PortOverride `json:"PortOverrides,omitempty"`
+
+ // ThresholdCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-thresholdcount
+ ThresholdCount *types.Value `json:"ThresholdCount,omitempty"`
+
+ // TrafficDialPercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-endpointgroup.html#cfn-globalaccelerator-endpointgroup-trafficdialpercentage
+ TrafficDialPercentage *types.Value `json:"TrafficDialPercentage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EndpointGroup) AWSCloudFormationType() string {
+ return "AWS::GlobalAccelerator::EndpointGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EndpointGroup) MarshalJSON() ([]byte, error) {
+ type Properties EndpointGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EndpointGroup) UnmarshalJSON(b []byte) error {
+ type Properties EndpointGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EndpointGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_endpointconfiguration.go b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_endpointconfiguration.go
new file mode 100644
index 0000000000..5a088d58b4
--- /dev/null
+++ b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_endpointconfiguration.go
@@ -0,0 +1,47 @@
+package globalaccelerator
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EndpointGroup_EndpointConfiguration AWS CloudFormation Resource (AWS::GlobalAccelerator::EndpointGroup.EndpointConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html
+type EndpointGroup_EndpointConfiguration struct {
+
+ // ClientIPPreservationEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html#cfn-globalaccelerator-endpointgroup-endpointconfiguration-clientippreservationenabled
+ ClientIPPreservationEnabled *types.Value `json:"ClientIPPreservationEnabled,omitempty"`
+
+ // EndpointId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html#cfn-globalaccelerator-endpointgroup-endpointconfiguration-endpointid
+ EndpointId *types.Value `json:"EndpointId,omitempty"`
+
+ // Weight AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-endpointconfiguration.html#cfn-globalaccelerator-endpointgroup-endpointconfiguration-weight
+ Weight *types.Value `json:"Weight,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EndpointGroup_EndpointConfiguration) AWSCloudFormationType() string {
+ return "AWS::GlobalAccelerator::EndpointGroup.EndpointConfiguration"
+}
diff --git a/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_portoverride.go b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_portoverride.go
new file mode 100644
index 0000000000..b6ded8abc1
--- /dev/null
+++ b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-endpointgroup_portoverride.go
@@ -0,0 +1,42 @@
+package globalaccelerator
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EndpointGroup_PortOverride AWS CloudFormation Resource (AWS::GlobalAccelerator::EndpointGroup.PortOverride)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html
+type EndpointGroup_PortOverride struct {
+
+ // EndpointPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html#cfn-globalaccelerator-endpointgroup-portoverride-endpointport
+ EndpointPort *types.Value `json:"EndpointPort"`
+
+ // ListenerPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-endpointgroup-portoverride.html#cfn-globalaccelerator-endpointgroup-portoverride-listenerport
+ ListenerPort *types.Value `json:"ListenerPort"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EndpointGroup_PortOverride) AWSCloudFormationType() string {
+ return "AWS::GlobalAccelerator::EndpointGroup.PortOverride"
+}
diff --git a/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-listener.go b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-listener.go
new file mode 100644
index 0000000000..301a82579d
--- /dev/null
+++ b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-listener.go
@@ -0,0 +1,123 @@
+package globalaccelerator
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener AWS CloudFormation Resource (AWS::GlobalAccelerator::Listener)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html
+type Listener struct {
+
+ // AcceleratorArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html#cfn-globalaccelerator-listener-acceleratorarn
+ AcceleratorArn *types.Value `json:"AcceleratorArn,omitempty"`
+
+ // ClientAffinity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html#cfn-globalaccelerator-listener-clientaffinity
+ ClientAffinity *types.Value `json:"ClientAffinity,omitempty"`
+
+ // PortRanges AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html#cfn-globalaccelerator-listener-portranges
+ PortRanges []Listener_PortRange `json:"PortRanges,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-listener.html#cfn-globalaccelerator-listener-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener) AWSCloudFormationType() string {
+ return "AWS::GlobalAccelerator::Listener"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Listener) MarshalJSON() ([]byte, error) {
+ type Properties Listener
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Listener) UnmarshalJSON(b []byte) error {
+ type Properties Listener
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Listener(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-listener_portrange.go b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-listener_portrange.go
new file mode 100644
index 0000000000..7a31e13c1e
--- /dev/null
+++ b/goformation/cloudformation/globalaccelerator/aws-globalaccelerator-listener_portrange.go
@@ -0,0 +1,42 @@
+package globalaccelerator
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Listener_PortRange AWS CloudFormation Resource (AWS::GlobalAccelerator::Listener.PortRange)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-listener-portrange.html
+type Listener_PortRange struct {
+
+ // FromPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-listener-portrange.html#cfn-globalaccelerator-listener-portrange-fromport
+ FromPort *types.Value `json:"FromPort"`
+
+ // ToPort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-listener-portrange.html#cfn-globalaccelerator-listener-portrange-toport
+ ToPort *types.Value `json:"ToPort"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Listener_PortRange) AWSCloudFormationType() string {
+ return "AWS::GlobalAccelerator::Listener.PortRange"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-classifier.go b/goformation/cloudformation/glue/aws-glue-classifier.go
new file mode 100644
index 0000000000..4b3d3c1f98
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-classifier.go
@@ -0,0 +1,121 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Classifier AWS CloudFormation Resource (AWS::Glue::Classifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html
+type Classifier struct {
+
+ // CsvClassifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-csvclassifier
+ CsvClassifier *Classifier_CsvClassifier `json:"CsvClassifier,omitempty"`
+
+ // GrokClassifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-grokclassifier
+ GrokClassifier *Classifier_GrokClassifier `json:"GrokClassifier,omitempty"`
+
+ // JsonClassifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-jsonclassifier
+ JsonClassifier *Classifier_JsonClassifier `json:"JsonClassifier,omitempty"`
+
+ // XMLClassifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-classifier.html#cfn-glue-classifier-xmlclassifier
+ XMLClassifier *Classifier_XMLClassifier `json:"XMLClassifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Classifier) AWSCloudFormationType() string {
+ return "AWS::Glue::Classifier"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Classifier) MarshalJSON() ([]byte, error) {
+ type Properties Classifier
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Classifier) UnmarshalJSON(b []byte) error {
+ type Properties Classifier
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Classifier(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-classifier_csvclassifier.go b/goformation/cloudformation/glue/aws-glue-classifier_csvclassifier.go
new file mode 100644
index 0000000000..1860ec77c5
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-classifier_csvclassifier.go
@@ -0,0 +1,67 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Classifier_CsvClassifier AWS CloudFormation Resource (AWS::Glue::Classifier.CsvClassifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html
+type Classifier_CsvClassifier struct {
+
+ // AllowSingleColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-allowsinglecolumn
+ AllowSingleColumn *types.Value `json:"AllowSingleColumn,omitempty"`
+
+ // ContainsHeader AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-containsheader
+ ContainsHeader *types.Value `json:"ContainsHeader,omitempty"`
+
+ // Delimiter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-delimiter
+ Delimiter *types.Value `json:"Delimiter,omitempty"`
+
+ // DisableValueTrimming AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-disablevaluetrimming
+ DisableValueTrimming *types.Value `json:"DisableValueTrimming,omitempty"`
+
+ // Header AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-header
+ Header *types.Value `json:"Header,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // QuoteSymbol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-csvclassifier.html#cfn-glue-classifier-csvclassifier-quotesymbol
+ QuoteSymbol *types.Value `json:"QuoteSymbol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Classifier_CsvClassifier) AWSCloudFormationType() string {
+ return "AWS::Glue::Classifier.CsvClassifier"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-classifier_grokclassifier.go b/goformation/cloudformation/glue/aws-glue-classifier_grokclassifier.go
new file mode 100644
index 0000000000..26e46e3e96
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-classifier_grokclassifier.go
@@ -0,0 +1,52 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Classifier_GrokClassifier AWS CloudFormation Resource (AWS::Glue::Classifier.GrokClassifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html
+type Classifier_GrokClassifier struct {
+
+ // Classification AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html#cfn-glue-classifier-grokclassifier-classification
+ Classification *types.Value `json:"Classification,omitempty"`
+
+ // CustomPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html#cfn-glue-classifier-grokclassifier-custompatterns
+ CustomPatterns *types.Value `json:"CustomPatterns,omitempty"`
+
+ // GrokPattern AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html#cfn-glue-classifier-grokclassifier-grokpattern
+ GrokPattern *types.Value `json:"GrokPattern,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-grokclassifier.html#cfn-glue-classifier-grokclassifier-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Classifier_GrokClassifier) AWSCloudFormationType() string {
+ return "AWS::Glue::Classifier.GrokClassifier"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-classifier_jsonclassifier.go b/goformation/cloudformation/glue/aws-glue-classifier_jsonclassifier.go
new file mode 100644
index 0000000000..d7166b18f3
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-classifier_jsonclassifier.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Classifier_JsonClassifier AWS CloudFormation Resource (AWS::Glue::Classifier.JsonClassifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html
+type Classifier_JsonClassifier struct {
+
+ // JsonPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html#cfn-glue-classifier-jsonclassifier-jsonpath
+ JsonPath *types.Value `json:"JsonPath,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-jsonclassifier.html#cfn-glue-classifier-jsonclassifier-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Classifier_JsonClassifier) AWSCloudFormationType() string {
+ return "AWS::Glue::Classifier.JsonClassifier"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-classifier_xmlclassifier.go b/goformation/cloudformation/glue/aws-glue-classifier_xmlclassifier.go
new file mode 100644
index 0000000000..bec40b74d1
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-classifier_xmlclassifier.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Classifier_XMLClassifier AWS CloudFormation Resource (AWS::Glue::Classifier.XMLClassifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html
+type Classifier_XMLClassifier struct {
+
+ // Classification AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html#cfn-glue-classifier-xmlclassifier-classification
+ Classification *types.Value `json:"Classification,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html#cfn-glue-classifier-xmlclassifier-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RowTag AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-classifier-xmlclassifier.html#cfn-glue-classifier-xmlclassifier-rowtag
+ RowTag *types.Value `json:"RowTag,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Classifier_XMLClassifier) AWSCloudFormationType() string {
+ return "AWS::Glue::Classifier.XMLClassifier"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-connection.go b/goformation/cloudformation/glue/aws-glue-connection.go
new file mode 100644
index 0000000000..716717ca16
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-connection.go
@@ -0,0 +1,113 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Connection AWS CloudFormation Resource (AWS::Glue::Connection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html
+type Connection struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html#cfn-glue-connection-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // ConnectionInput AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-connection.html#cfn-glue-connection-connectioninput
+ ConnectionInput *Connection_ConnectionInput `json:"ConnectionInput,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Connection) AWSCloudFormationType() string {
+ return "AWS::Glue::Connection"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Connection) MarshalJSON() ([]byte, error) {
+ type Properties Connection
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Connection) UnmarshalJSON(b []byte) error {
+ type Properties Connection
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Connection(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-connection_connectioninput.go b/goformation/cloudformation/glue/aws-glue-connection_connectioninput.go
new file mode 100644
index 0000000000..ab92fd675a
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-connection_connectioninput.go
@@ -0,0 +1,62 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Connection_ConnectionInput AWS CloudFormation Resource (AWS::Glue::Connection.ConnectionInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html
+type Connection_ConnectionInput struct {
+
+ // ConnectionProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectionproperties
+ ConnectionProperties interface{} `json:"ConnectionProperties,omitempty"`
+
+ // ConnectionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectiontype
+ ConnectionType *types.Value `json:"ConnectionType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // MatchCriteria AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-matchcriteria
+ MatchCriteria *types.Value `json:"MatchCriteria,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // PhysicalConnectionRequirements AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-physicalconnectionrequirements
+ PhysicalConnectionRequirements *Connection_PhysicalConnectionRequirements `json:"PhysicalConnectionRequirements,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Connection_ConnectionInput) AWSCloudFormationType() string {
+ return "AWS::Glue::Connection.ConnectionInput"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-connection_physicalconnectionrequirements.go b/goformation/cloudformation/glue/aws-glue-connection_physicalconnectionrequirements.go
new file mode 100644
index 0000000000..29da8170a9
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-connection_physicalconnectionrequirements.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Connection_PhysicalConnectionRequirements AWS CloudFormation Resource (AWS::Glue::Connection.PhysicalConnectionRequirements)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html
+type Connection_PhysicalConnectionRequirements struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html#cfn-glue-connection-physicalconnectionrequirements-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // SecurityGroupIdList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html#cfn-glue-connection-physicalconnectionrequirements-securitygroupidlist
+ SecurityGroupIdList *types.Value `json:"SecurityGroupIdList,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-physicalconnectionrequirements.html#cfn-glue-connection-physicalconnectionrequirements-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Connection_PhysicalConnectionRequirements) AWSCloudFormationType() string {
+ return "AWS::Glue::Connection.PhysicalConnectionRequirements"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler.go b/goformation/cloudformation/glue/aws-glue-crawler.go
new file mode 100644
index 0000000000..da5351e937
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler.go
@@ -0,0 +1,168 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler AWS CloudFormation Resource (AWS::Glue::Crawler)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html
+type Crawler struct {
+
+ // Classifiers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-classifiers
+ Classifiers *types.Value `json:"Classifiers,omitempty"`
+
+ // Configuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-configuration
+ Configuration *types.Value `json:"Configuration,omitempty"`
+
+ // CrawlerSecurityConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-crawlersecurityconfiguration
+ CrawlerSecurityConfiguration *types.Value `json:"CrawlerSecurityConfiguration,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RecrawlPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-recrawlpolicy
+ RecrawlPolicy *Crawler_RecrawlPolicy `json:"RecrawlPolicy,omitempty"`
+
+ // Role AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-role
+ Role *types.Value `json:"Role,omitempty"`
+
+ // Schedule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-schedule
+ Schedule *Crawler_Schedule `json:"Schedule,omitempty"`
+
+ // SchemaChangePolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-schemachangepolicy
+ SchemaChangePolicy *Crawler_SchemaChangePolicy `json:"SchemaChangePolicy,omitempty"`
+
+ // TablePrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-tableprefix
+ TablePrefix *types.Value `json:"TablePrefix,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Targets AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-crawler.html#cfn-glue-crawler-targets
+ Targets *Crawler_Targets `json:"Targets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Crawler) MarshalJSON() ([]byte, error) {
+ type Properties Crawler
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Crawler) UnmarshalJSON(b []byte) error {
+ type Properties Crawler
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Crawler(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler_catalogtarget.go b/goformation/cloudformation/glue/aws-glue-crawler_catalogtarget.go
new file mode 100644
index 0000000000..4f7d43db7a
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler_catalogtarget.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler_CatalogTarget AWS CloudFormation Resource (AWS::Glue::Crawler.CatalogTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-catalogtarget.html
+type Crawler_CatalogTarget struct {
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-catalogtarget.html#cfn-glue-crawler-catalogtarget-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // Tables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-catalogtarget.html#cfn-glue-crawler-catalogtarget-tables
+ Tables *types.Value `json:"Tables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler_CatalogTarget) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler.CatalogTarget"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler_dynamodbtarget.go b/goformation/cloudformation/glue/aws-glue-crawler_dynamodbtarget.go
new file mode 100644
index 0000000000..ad931949e3
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler_dynamodbtarget.go
@@ -0,0 +1,37 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler_DynamoDBTarget AWS CloudFormation Resource (AWS::Glue::Crawler.DynamoDBTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-dynamodbtarget.html
+type Crawler_DynamoDBTarget struct {
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-dynamodbtarget.html#cfn-glue-crawler-dynamodbtarget-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler_DynamoDBTarget) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler.DynamoDBTarget"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler_jdbctarget.go b/goformation/cloudformation/glue/aws-glue-crawler_jdbctarget.go
new file mode 100644
index 0000000000..29030b923e
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler_jdbctarget.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler_JdbcTarget AWS CloudFormation Resource (AWS::Glue::Crawler.JdbcTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html
+type Crawler_JdbcTarget struct {
+
+ // ConnectionName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html#cfn-glue-crawler-jdbctarget-connectionname
+ ConnectionName *types.Value `json:"ConnectionName,omitempty"`
+
+ // Exclusions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html#cfn-glue-crawler-jdbctarget-exclusions
+ Exclusions *types.Value `json:"Exclusions,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-jdbctarget.html#cfn-glue-crawler-jdbctarget-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler_JdbcTarget) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler.JdbcTarget"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler_recrawlpolicy.go b/goformation/cloudformation/glue/aws-glue-crawler_recrawlpolicy.go
new file mode 100644
index 0000000000..9e3a765067
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler_recrawlpolicy.go
@@ -0,0 +1,37 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler_RecrawlPolicy AWS CloudFormation Resource (AWS::Glue::Crawler.RecrawlPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-recrawlpolicy.html
+type Crawler_RecrawlPolicy struct {
+
+ // RecrawlBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-recrawlpolicy.html#cfn-glue-crawler-recrawlpolicy-recrawlbehavior
+ RecrawlBehavior *types.Value `json:"RecrawlBehavior,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler_RecrawlPolicy) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler.RecrawlPolicy"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler_s3target.go b/goformation/cloudformation/glue/aws-glue-crawler_s3target.go
new file mode 100644
index 0000000000..c69d6eac94
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler_s3target.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler_S3Target AWS CloudFormation Resource (AWS::Glue::Crawler.S3Target)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html
+type Crawler_S3Target struct {
+
+ // ConnectionName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html#cfn-glue-crawler-s3target-connectionname
+ ConnectionName *types.Value `json:"ConnectionName,omitempty"`
+
+ // Exclusions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html#cfn-glue-crawler-s3target-exclusions
+ Exclusions *types.Value `json:"Exclusions,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-s3target.html#cfn-glue-crawler-s3target-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler_S3Target) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler.S3Target"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler_schedule.go b/goformation/cloudformation/glue/aws-glue-crawler_schedule.go
new file mode 100644
index 0000000000..58cdc48504
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler_schedule.go
@@ -0,0 +1,37 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler_Schedule AWS CloudFormation Resource (AWS::Glue::Crawler.Schedule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schedule.html
+type Crawler_Schedule struct {
+
+ // ScheduleExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schedule.html#cfn-glue-crawler-schedule-scheduleexpression
+ ScheduleExpression *types.Value `json:"ScheduleExpression,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler_Schedule) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler.Schedule"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler_schemachangepolicy.go b/goformation/cloudformation/glue/aws-glue-crawler_schemachangepolicy.go
new file mode 100644
index 0000000000..129b8ba1a4
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler_schemachangepolicy.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler_SchemaChangePolicy AWS CloudFormation Resource (AWS::Glue::Crawler.SchemaChangePolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html
+type Crawler_SchemaChangePolicy struct {
+
+ // DeleteBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html#cfn-glue-crawler-schemachangepolicy-deletebehavior
+ DeleteBehavior *types.Value `json:"DeleteBehavior,omitempty"`
+
+ // UpdateBehavior AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-schemachangepolicy.html#cfn-glue-crawler-schemachangepolicy-updatebehavior
+ UpdateBehavior *types.Value `json:"UpdateBehavior,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler_SchemaChangePolicy) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler.SchemaChangePolicy"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-crawler_targets.go b/goformation/cloudformation/glue/aws-glue-crawler_targets.go
new file mode 100644
index 0000000000..628610ecc2
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-crawler_targets.go
@@ -0,0 +1,50 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Crawler_Targets AWS CloudFormation Resource (AWS::Glue::Crawler.Targets)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html
+type Crawler_Targets struct {
+
+ // CatalogTargets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html#cfn-glue-crawler-targets-catalogtargets
+ CatalogTargets []Crawler_CatalogTarget `json:"CatalogTargets,omitempty"`
+
+ // DynamoDBTargets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html#cfn-glue-crawler-targets-dynamodbtargets
+ DynamoDBTargets []Crawler_DynamoDBTarget `json:"DynamoDBTargets,omitempty"`
+
+ // JdbcTargets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html#cfn-glue-crawler-targets-jdbctargets
+ JdbcTargets []Crawler_JdbcTarget `json:"JdbcTargets,omitempty"`
+
+ // S3Targets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-crawler-targets.html#cfn-glue-crawler-targets-s3targets
+ S3Targets []Crawler_S3Target `json:"S3Targets,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Crawler_Targets) AWSCloudFormationType() string {
+ return "AWS::Glue::Crawler.Targets"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-database.go b/goformation/cloudformation/glue/aws-glue-database.go
new file mode 100644
index 0000000000..793315ee9d
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-database.go
@@ -0,0 +1,113 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Database AWS CloudFormation Resource (AWS::Glue::Database)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html
+type Database struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html#cfn-glue-database-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseInput AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-database.html#cfn-glue-database-databaseinput
+ DatabaseInput *Database_DatabaseInput `json:"DatabaseInput,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Database) AWSCloudFormationType() string {
+ return "AWS::Glue::Database"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Database) MarshalJSON() ([]byte, error) {
+ type Properties Database
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Database) UnmarshalJSON(b []byte) error {
+ type Properties Database
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Database(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-database_databaseidentifier.go b/goformation/cloudformation/glue/aws-glue-database_databaseidentifier.go
new file mode 100644
index 0000000000..62098f70a7
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-database_databaseidentifier.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Database_DatabaseIdentifier AWS CloudFormation Resource (AWS::Glue::Database.DatabaseIdentifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html
+type Database_DatabaseIdentifier struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html#cfn-glue-database-databaseidentifier-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseidentifier.html#cfn-glue-database-databaseidentifier-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Database_DatabaseIdentifier) AWSCloudFormationType() string {
+ return "AWS::Glue::Database.DatabaseIdentifier"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-database_databaseinput.go b/goformation/cloudformation/glue/aws-glue-database_databaseinput.go
new file mode 100644
index 0000000000..56d7987487
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-database_databaseinput.go
@@ -0,0 +1,62 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Database_DatabaseInput AWS CloudFormation Resource (AWS::Glue::Database.DatabaseInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html
+type Database_DatabaseInput struct {
+
+ // CreateTableDefaultPermissions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-createtabledefaultpermissions
+ CreateTableDefaultPermissions []Database_PrincipalPrivileges `json:"CreateTableDefaultPermissions,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // LocationUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-locationuri
+ LocationUri *types.Value `json:"LocationUri,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // TargetDatabase AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-databaseinput.html#cfn-glue-database-databaseinput-targetdatabase
+ TargetDatabase *Database_DatabaseIdentifier `json:"TargetDatabase,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Database_DatabaseInput) AWSCloudFormationType() string {
+ return "AWS::Glue::Database.DatabaseInput"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-database_datalakeprincipal.go b/goformation/cloudformation/glue/aws-glue-database_datalakeprincipal.go
new file mode 100644
index 0000000000..eb02d23ead
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-database_datalakeprincipal.go
@@ -0,0 +1,37 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Database_DataLakePrincipal AWS CloudFormation Resource (AWS::Glue::Database.DataLakePrincipal)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-datalakeprincipal.html
+type Database_DataLakePrincipal struct {
+
+ // DataLakePrincipalIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-datalakeprincipal.html#cfn-glue-database-datalakeprincipal-datalakeprincipalidentifier
+ DataLakePrincipalIdentifier *types.Value `json:"DataLakePrincipalIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Database_DataLakePrincipal) AWSCloudFormationType() string {
+ return "AWS::Glue::Database.DataLakePrincipal"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-database_principalprivileges.go b/goformation/cloudformation/glue/aws-glue-database_principalprivileges.go
new file mode 100644
index 0000000000..efbb601e47
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-database_principalprivileges.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Database_PrincipalPrivileges AWS CloudFormation Resource (AWS::Glue::Database.PrincipalPrivileges)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html
+type Database_PrincipalPrivileges struct {
+
+ // Permissions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html#cfn-glue-database-principalprivileges-permissions
+ Permissions *types.Value `json:"Permissions,omitempty"`
+
+ // Principal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-database-principalprivileges.html#cfn-glue-database-principalprivileges-principal
+ Principal *Database_DataLakePrincipal `json:"Principal,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Database_PrincipalPrivileges) AWSCloudFormationType() string {
+ return "AWS::Glue::Database.PrincipalPrivileges"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings.go b/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings.go
new file mode 100644
index 0000000000..9891b9f7ee
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings.go
@@ -0,0 +1,113 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataCatalogEncryptionSettings AWS CloudFormation Resource (AWS::Glue::DataCatalogEncryptionSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html
+type DataCatalogEncryptionSettings struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html#cfn-glue-datacatalogencryptionsettings-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DataCatalogEncryptionSettings AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-datacatalogencryptionsettings.html#cfn-glue-datacatalogencryptionsettings-datacatalogencryptionsettings
+ DataCatalogEncryptionSettings *DataCatalogEncryptionSettings_DataCatalogEncryptionSettings `json:"DataCatalogEncryptionSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataCatalogEncryptionSettings) AWSCloudFormationType() string {
+ return "AWS::Glue::DataCatalogEncryptionSettings"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DataCatalogEncryptionSettings) MarshalJSON() ([]byte, error) {
+ type Properties DataCatalogEncryptionSettings
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DataCatalogEncryptionSettings) UnmarshalJSON(b []byte) error {
+ type Properties DataCatalogEncryptionSettings
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DataCatalogEncryptionSettings(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_connectionpasswordencryption.go b/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_connectionpasswordencryption.go
new file mode 100644
index 0000000000..49a7f2dae6
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_connectionpasswordencryption.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataCatalogEncryptionSettings_ConnectionPasswordEncryption AWS CloudFormation Resource (AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html
+type DataCatalogEncryptionSettings_ConnectionPasswordEncryption struct {
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html#cfn-glue-datacatalogencryptionsettings-connectionpasswordencryption-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // ReturnConnectionPasswordEncrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-connectionpasswordencryption.html#cfn-glue-datacatalogencryptionsettings-connectionpasswordencryption-returnconnectionpasswordencrypted
+ ReturnConnectionPasswordEncrypted *types.Value `json:"ReturnConnectionPasswordEncrypted,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataCatalogEncryptionSettings_ConnectionPasswordEncryption) AWSCloudFormationType() string {
+ return "AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_datacatalogencryptionsettings.go b/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_datacatalogencryptionsettings.go
new file mode 100644
index 0000000000..2cabae215e
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_datacatalogencryptionsettings.go
@@ -0,0 +1,40 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataCatalogEncryptionSettings_DataCatalogEncryptionSettings AWS CloudFormation Resource (AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html
+type DataCatalogEncryptionSettings_DataCatalogEncryptionSettings struct {
+
+ // ConnectionPasswordEncryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html#cfn-glue-datacatalogencryptionsettings-datacatalogencryptionsettings-connectionpasswordencryption
+ ConnectionPasswordEncryption *DataCatalogEncryptionSettings_ConnectionPasswordEncryption `json:"ConnectionPasswordEncryption,omitempty"`
+
+ // EncryptionAtRest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-datacatalogencryptionsettings.html#cfn-glue-datacatalogencryptionsettings-datacatalogencryptionsettings-encryptionatrest
+ EncryptionAtRest *DataCatalogEncryptionSettings_EncryptionAtRest `json:"EncryptionAtRest,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataCatalogEncryptionSettings_DataCatalogEncryptionSettings) AWSCloudFormationType() string {
+ return "AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_encryptionatrest.go b/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_encryptionatrest.go
new file mode 100644
index 0000000000..121b3ac996
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-datacatalogencryptionsettings_encryptionatrest.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataCatalogEncryptionSettings_EncryptionAtRest AWS CloudFormation Resource (AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html
+type DataCatalogEncryptionSettings_EncryptionAtRest struct {
+
+ // CatalogEncryptionMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html#cfn-glue-datacatalogencryptionsettings-encryptionatrest-catalogencryptionmode
+ CatalogEncryptionMode *types.Value `json:"CatalogEncryptionMode,omitempty"`
+
+ // SseAwsKmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-datacatalogencryptionsettings-encryptionatrest.html#cfn-glue-datacatalogencryptionsettings-encryptionatrest-sseawskmskeyid
+ SseAwsKmsKeyId *types.Value `json:"SseAwsKmsKeyId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataCatalogEncryptionSettings_EncryptionAtRest) AWSCloudFormationType() string {
+ return "AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-devendpoint.go b/goformation/cloudformation/glue/aws-glue-devendpoint.go
new file mode 100644
index 0000000000..4340e11718
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-devendpoint.go
@@ -0,0 +1,178 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DevEndpoint AWS CloudFormation Resource (AWS::Glue::DevEndpoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html
+type DevEndpoint struct {
+
+ // Arguments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-arguments
+ Arguments interface{} `json:"Arguments,omitempty"`
+
+ // EndpointName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-endpointname
+ EndpointName *types.Value `json:"EndpointName,omitempty"`
+
+ // ExtraJarsS3Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-extrajarss3path
+ ExtraJarsS3Path *types.Value `json:"ExtraJarsS3Path,omitempty"`
+
+ // ExtraPythonLibsS3Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-extrapythonlibss3path
+ ExtraPythonLibsS3Path *types.Value `json:"ExtraPythonLibsS3Path,omitempty"`
+
+ // GlueVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-glueversion
+ GlueVersion *types.Value `json:"GlueVersion,omitempty"`
+
+ // NumberOfNodes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-numberofnodes
+ NumberOfNodes *types.Value `json:"NumberOfNodes,omitempty"`
+
+ // NumberOfWorkers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-numberofworkers
+ NumberOfWorkers *types.Value `json:"NumberOfWorkers,omitempty"`
+
+ // PublicKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-publickey
+ PublicKey *types.Value `json:"PublicKey,omitempty"`
+
+ // PublicKeys AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-publickeys
+ PublicKeys *types.Value `json:"PublicKeys,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecurityConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-securityconfiguration
+ SecurityConfiguration *types.Value `json:"SecurityConfiguration,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // WorkerType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-devendpoint.html#cfn-glue-devendpoint-workertype
+ WorkerType *types.Value `json:"WorkerType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DevEndpoint) AWSCloudFormationType() string {
+ return "AWS::Glue::DevEndpoint"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DevEndpoint) MarshalJSON() ([]byte, error) {
+ type Properties DevEndpoint
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DevEndpoint) UnmarshalJSON(b []byte) error {
+ type Properties DevEndpoint
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DevEndpoint(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-job.go b/goformation/cloudformation/glue/aws-glue-job.go
new file mode 100644
index 0000000000..e935e31614
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-job.go
@@ -0,0 +1,193 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job AWS CloudFormation Resource (AWS::Glue::Job)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html
+type Job struct {
+
+ // AllocatedCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-allocatedcapacity
+ AllocatedCapacity *types.Value `json:"AllocatedCapacity,omitempty"`
+
+ // Command AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-command
+ Command *Job_JobCommand `json:"Command,omitempty"`
+
+ // Connections AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-connections
+ Connections *Job_ConnectionsList `json:"Connections,omitempty"`
+
+ // DefaultArguments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-defaultarguments
+ DefaultArguments interface{} `json:"DefaultArguments,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // ExecutionProperty AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-executionproperty
+ ExecutionProperty *Job_ExecutionProperty `json:"ExecutionProperty,omitempty"`
+
+ // GlueVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-glueversion
+ GlueVersion *types.Value `json:"GlueVersion,omitempty"`
+
+ // LogUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-loguri
+ LogUri *types.Value `json:"LogUri,omitempty"`
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity,omitempty"`
+
+ // MaxRetries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-maxretries
+ MaxRetries *types.Value `json:"MaxRetries,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // NotificationProperty AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-notificationproperty
+ NotificationProperty *Job_NotificationProperty `json:"NotificationProperty,omitempty"`
+
+ // NumberOfWorkers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-numberofworkers
+ NumberOfWorkers *types.Value `json:"NumberOfWorkers,omitempty"`
+
+ // Role AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-role
+ Role *types.Value `json:"Role,omitempty"`
+
+ // SecurityConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-securityconfiguration
+ SecurityConfiguration *types.Value `json:"SecurityConfiguration,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // WorkerType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-job.html#cfn-glue-job-workertype
+ WorkerType *types.Value `json:"WorkerType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job) AWSCloudFormationType() string {
+ return "AWS::Glue::Job"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Job) MarshalJSON() ([]byte, error) {
+ type Properties Job
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Job) UnmarshalJSON(b []byte) error {
+ type Properties Job
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Job(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-job_connectionslist.go b/goformation/cloudformation/glue/aws-glue-job_connectionslist.go
new file mode 100644
index 0000000000..4bbb9f8b6b
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-job_connectionslist.go
@@ -0,0 +1,37 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_ConnectionsList AWS CloudFormation Resource (AWS::Glue::Job.ConnectionsList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-connectionslist.html
+type Job_ConnectionsList struct {
+
+ // Connections AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-connectionslist.html#cfn-glue-job-connectionslist-connections
+ Connections *types.Value `json:"Connections,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_ConnectionsList) AWSCloudFormationType() string {
+ return "AWS::Glue::Job.ConnectionsList"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-job_executionproperty.go b/goformation/cloudformation/glue/aws-glue-job_executionproperty.go
new file mode 100644
index 0000000000..4ad39128c1
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-job_executionproperty.go
@@ -0,0 +1,37 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_ExecutionProperty AWS CloudFormation Resource (AWS::Glue::Job.ExecutionProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-executionproperty.html
+type Job_ExecutionProperty struct {
+
+ // MaxConcurrentRuns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-executionproperty.html#cfn-glue-job-executionproperty-maxconcurrentruns
+ MaxConcurrentRuns *types.Value `json:"MaxConcurrentRuns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_ExecutionProperty) AWSCloudFormationType() string {
+ return "AWS::Glue::Job.ExecutionProperty"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-job_jobcommand.go b/goformation/cloudformation/glue/aws-glue-job_jobcommand.go
new file mode 100644
index 0000000000..3fdf302b4e
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-job_jobcommand.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_JobCommand AWS CloudFormation Resource (AWS::Glue::Job.JobCommand)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html
+type Job_JobCommand struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html#cfn-glue-job-jobcommand-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // PythonVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html#cfn-glue-job-jobcommand-pythonversion
+ PythonVersion *types.Value `json:"PythonVersion,omitempty"`
+
+ // ScriptLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-jobcommand.html#cfn-glue-job-jobcommand-scriptlocation
+ ScriptLocation *types.Value `json:"ScriptLocation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_JobCommand) AWSCloudFormationType() string {
+ return "AWS::Glue::Job.JobCommand"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-job_notificationproperty.go b/goformation/cloudformation/glue/aws-glue-job_notificationproperty.go
new file mode 100644
index 0000000000..f067c07e63
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-job_notificationproperty.go
@@ -0,0 +1,37 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Job_NotificationProperty AWS CloudFormation Resource (AWS::Glue::Job.NotificationProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-notificationproperty.html
+type Job_NotificationProperty struct {
+
+ // NotifyDelayAfter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-job-notificationproperty.html#cfn-glue-job-notificationproperty-notifydelayafter
+ NotifyDelayAfter *types.Value `json:"NotifyDelayAfter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Job_NotificationProperty) AWSCloudFormationType() string {
+ return "AWS::Glue::Job.NotificationProperty"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-mltransform.go b/goformation/cloudformation/glue/aws-glue-mltransform.go
new file mode 100644
index 0000000000..822994ce75
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-mltransform.go
@@ -0,0 +1,168 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MLTransform AWS CloudFormation Resource (AWS::Glue::MLTransform)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html
+type MLTransform struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // GlueVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-glueversion
+ GlueVersion *types.Value `json:"GlueVersion,omitempty"`
+
+ // InputRecordTables AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-inputrecordtables
+ InputRecordTables *MLTransform_InputRecordTables `json:"InputRecordTables,omitempty"`
+
+ // MaxCapacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-maxcapacity
+ MaxCapacity *types.Value `json:"MaxCapacity,omitempty"`
+
+ // MaxRetries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-maxretries
+ MaxRetries *types.Value `json:"MaxRetries,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // NumberOfWorkers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-numberofworkers
+ NumberOfWorkers *types.Value `json:"NumberOfWorkers,omitempty"`
+
+ // Role AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-role
+ Role *types.Value `json:"Role,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // TransformEncryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-transformencryption
+ TransformEncryption *MLTransform_TransformEncryption `json:"TransformEncryption,omitempty"`
+
+ // TransformParameters AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-transformparameters
+ TransformParameters *MLTransform_TransformParameters `json:"TransformParameters,omitempty"`
+
+ // WorkerType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-mltransform.html#cfn-glue-mltransform-workertype
+ WorkerType *types.Value `json:"WorkerType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MLTransform) AWSCloudFormationType() string {
+ return "AWS::Glue::MLTransform"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MLTransform) MarshalJSON() ([]byte, error) {
+ type Properties MLTransform
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MLTransform) UnmarshalJSON(b []byte) error {
+ type Properties MLTransform
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MLTransform(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-mltransform_findmatchesparameters.go b/goformation/cloudformation/glue/aws-glue-mltransform_findmatchesparameters.go
new file mode 100644
index 0000000000..8f49a4a041
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-mltransform_findmatchesparameters.go
@@ -0,0 +1,52 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MLTransform_FindMatchesParameters AWS CloudFormation Resource (AWS::Glue::MLTransform.FindMatchesParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters-findmatchesparameters.html
+type MLTransform_FindMatchesParameters struct {
+
+ // AccuracyCostTradeoff AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters-findmatchesparameters.html#cfn-glue-mltransform-transformparameters-findmatchesparameters-accuracycosttradeoff
+ AccuracyCostTradeoff *types.Value `json:"AccuracyCostTradeoff,omitempty"`
+
+ // EnforceProvidedLabels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters-findmatchesparameters.html#cfn-glue-mltransform-transformparameters-findmatchesparameters-enforceprovidedlabels
+ EnforceProvidedLabels *types.Value `json:"EnforceProvidedLabels,omitempty"`
+
+ // PrecisionRecallTradeoff AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters-findmatchesparameters.html#cfn-glue-mltransform-transformparameters-findmatchesparameters-precisionrecalltradeoff
+ PrecisionRecallTradeoff *types.Value `json:"PrecisionRecallTradeoff,omitempty"`
+
+ // PrimaryKeyColumnName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters-findmatchesparameters.html#cfn-glue-mltransform-transformparameters-findmatchesparameters-primarykeycolumnname
+ PrimaryKeyColumnName *types.Value `json:"PrimaryKeyColumnName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MLTransform_FindMatchesParameters) AWSCloudFormationType() string {
+ return "AWS::Glue::MLTransform.FindMatchesParameters"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-mltransform_gluetables.go b/goformation/cloudformation/glue/aws-glue-mltransform_gluetables.go
new file mode 100644
index 0000000000..c742772bab
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-mltransform_gluetables.go
@@ -0,0 +1,52 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MLTransform_GlueTables AWS CloudFormation Resource (AWS::Glue::MLTransform.GlueTables)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html
+type MLTransform_GlueTables struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html#cfn-glue-mltransform-inputrecordtables-gluetables-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // ConnectionName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html#cfn-glue-mltransform-inputrecordtables-gluetables-connectionname
+ ConnectionName *types.Value `json:"ConnectionName,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html#cfn-glue-mltransform-inputrecordtables-gluetables-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables-gluetables.html#cfn-glue-mltransform-inputrecordtables-gluetables-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MLTransform_GlueTables) AWSCloudFormationType() string {
+ return "AWS::Glue::MLTransform.GlueTables"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-mltransform_inputrecordtables.go b/goformation/cloudformation/glue/aws-glue-mltransform_inputrecordtables.go
new file mode 100644
index 0000000000..ff660acc2c
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-mltransform_inputrecordtables.go
@@ -0,0 +1,35 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// MLTransform_InputRecordTables AWS CloudFormation Resource (AWS::Glue::MLTransform.InputRecordTables)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables.html
+type MLTransform_InputRecordTables struct {
+
+ // GlueTables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-inputrecordtables.html#cfn-glue-mltransform-inputrecordtables-gluetables
+ GlueTables []MLTransform_GlueTables `json:"GlueTables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MLTransform_InputRecordTables) AWSCloudFormationType() string {
+ return "AWS::Glue::MLTransform.InputRecordTables"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-mltransform_mluserdataencryption.go b/goformation/cloudformation/glue/aws-glue-mltransform_mluserdataencryption.go
new file mode 100644
index 0000000000..5194ac005e
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-mltransform_mluserdataencryption.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MLTransform_MLUserDataEncryption AWS CloudFormation Resource (AWS::Glue::MLTransform.MLUserDataEncryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html
+type MLTransform_MLUserDataEncryption struct {
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html#cfn-glue-mltransform-transformencryption-mluserdataencryption-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // MLUserDataEncryptionMode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption-mluserdataencryption.html#cfn-glue-mltransform-transformencryption-mluserdataencryption-mluserdataencryptionmode
+ MLUserDataEncryptionMode *types.Value `json:"MLUserDataEncryptionMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MLTransform_MLUserDataEncryption) AWSCloudFormationType() string {
+ return "AWS::Glue::MLTransform.MLUserDataEncryption"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-mltransform_transformencryption.go b/goformation/cloudformation/glue/aws-glue-mltransform_transformencryption.go
new file mode 100644
index 0000000000..7390621d46
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-mltransform_transformencryption.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MLTransform_TransformEncryption AWS CloudFormation Resource (AWS::Glue::MLTransform.TransformEncryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html
+type MLTransform_TransformEncryption struct {
+
+ // MLUserDataEncryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html#cfn-glue-mltransform-transformencryption-mluserdataencryption
+ MLUserDataEncryption *MLTransform_MLUserDataEncryption `json:"MLUserDataEncryption,omitempty"`
+
+ // TaskRunSecurityConfigurationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformencryption.html#cfn-glue-mltransform-transformencryption-taskrunsecurityconfigurationname
+ TaskRunSecurityConfigurationName *types.Value `json:"TaskRunSecurityConfigurationName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MLTransform_TransformEncryption) AWSCloudFormationType() string {
+ return "AWS::Glue::MLTransform.TransformEncryption"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-mltransform_transformparameters.go b/goformation/cloudformation/glue/aws-glue-mltransform_transformparameters.go
new file mode 100644
index 0000000000..02a9a4428b
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-mltransform_transformparameters.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MLTransform_TransformParameters AWS CloudFormation Resource (AWS::Glue::MLTransform.TransformParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters.html
+type MLTransform_TransformParameters struct {
+
+ // FindMatchesParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters.html#cfn-glue-mltransform-transformparameters-findmatchesparameters
+ FindMatchesParameters *MLTransform_FindMatchesParameters `json:"FindMatchesParameters,omitempty"`
+
+ // TransformType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-mltransform-transformparameters.html#cfn-glue-mltransform-transformparameters-transformtype
+ TransformType *types.Value `json:"TransformType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MLTransform_TransformParameters) AWSCloudFormationType() string {
+ return "AWS::Glue::MLTransform.TransformParameters"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition.go b/goformation/cloudformation/glue/aws-glue-partition.go
new file mode 100644
index 0000000000..69d963a57b
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition.go
@@ -0,0 +1,123 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition AWS CloudFormation Resource (AWS::Glue::Partition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html
+type Partition struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html#cfn-glue-partition-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html#cfn-glue-partition-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // PartitionInput AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html#cfn-glue-partition-partitioninput
+ PartitionInput *Partition_PartitionInput `json:"PartitionInput,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-partition.html#cfn-glue-partition-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Partition) MarshalJSON() ([]byte, error) {
+ type Properties Partition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Partition) UnmarshalJSON(b []byte) error {
+ type Properties Partition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Partition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition_column.go b/goformation/cloudformation/glue/aws-glue-partition_column.go
new file mode 100644
index 0000000000..f032aebbc8
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition_column.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition_Column AWS CloudFormation Resource (AWS::Glue::Partition.Column)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html
+type Partition_Column struct {
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html#cfn-glue-partition-column-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html#cfn-glue-partition-column-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-column.html#cfn-glue-partition-column-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition_Column) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition.Column"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition_order.go b/goformation/cloudformation/glue/aws-glue-partition_order.go
new file mode 100644
index 0000000000..f4a368bdea
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition_order.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition_Order AWS CloudFormation Resource (AWS::Glue::Partition.Order)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html
+type Partition_Order struct {
+
+ // Column AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html#cfn-glue-partition-order-column
+ Column *types.Value `json:"Column,omitempty"`
+
+ // SortOrder AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-order.html#cfn-glue-partition-order-sortorder
+ SortOrder *types.Value `json:"SortOrder,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition_Order) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition.Order"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition_partitioninput.go b/goformation/cloudformation/glue/aws-glue-partition_partitioninput.go
new file mode 100644
index 0000000000..86aee55929
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition_partitioninput.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition_PartitionInput AWS CloudFormation Resource (AWS::Glue::Partition.PartitionInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html
+type Partition_PartitionInput struct {
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html#cfn-glue-partition-partitioninput-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // StorageDescriptor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html#cfn-glue-partition-partitioninput-storagedescriptor
+ StorageDescriptor *Partition_StorageDescriptor `json:"StorageDescriptor,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-partitioninput.html#cfn-glue-partition-partitioninput-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition_PartitionInput) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition.PartitionInput"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition_schemaid.go b/goformation/cloudformation/glue/aws-glue-partition_schemaid.go
new file mode 100644
index 0000000000..c48fb466bf
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition_schemaid.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition_SchemaId AWS CloudFormation Resource (AWS::Glue::Partition.SchemaId)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemaid.html
+type Partition_SchemaId struct {
+
+ // RegistryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemaid.html#cfn-glue-partition-schemaid-registryname
+ RegistryName *types.Value `json:"RegistryName,omitempty"`
+
+ // SchemaArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemaid.html#cfn-glue-partition-schemaid-schemaarn
+ SchemaArn *types.Value `json:"SchemaArn,omitempty"`
+
+ // SchemaName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemaid.html#cfn-glue-partition-schemaid-schemaname
+ SchemaName *types.Value `json:"SchemaName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition_SchemaId) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition.SchemaId"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition_schemareference.go b/goformation/cloudformation/glue/aws-glue-partition_schemareference.go
new file mode 100644
index 0000000000..7c750b0354
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition_schemareference.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition_SchemaReference AWS CloudFormation Resource (AWS::Glue::Partition.SchemaReference)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemareference.html
+type Partition_SchemaReference struct {
+
+ // SchemaId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemareference.html#cfn-glue-partition-schemareference-schemaid
+ SchemaId *Partition_SchemaId `json:"SchemaId,omitempty"`
+
+ // SchemaVersionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemareference.html#cfn-glue-partition-schemareference-schemaversionid
+ SchemaVersionId *types.Value `json:"SchemaVersionId,omitempty"`
+
+ // SchemaVersionNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-schemareference.html#cfn-glue-partition-schemareference-schemaversionnumber
+ SchemaVersionNumber *types.Value `json:"SchemaVersionNumber,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition_SchemaReference) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition.SchemaReference"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition_serdeinfo.go b/goformation/cloudformation/glue/aws-glue-partition_serdeinfo.go
new file mode 100644
index 0000000000..8fa391ae3b
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition_serdeinfo.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition_SerdeInfo AWS CloudFormation Resource (AWS::Glue::Partition.SerdeInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html
+type Partition_SerdeInfo struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html#cfn-glue-partition-serdeinfo-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html#cfn-glue-partition-serdeinfo-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // SerializationLibrary AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-serdeinfo.html#cfn-glue-partition-serdeinfo-serializationlibrary
+ SerializationLibrary *types.Value `json:"SerializationLibrary,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition_SerdeInfo) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition.SerdeInfo"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition_skewedinfo.go b/goformation/cloudformation/glue/aws-glue-partition_skewedinfo.go
new file mode 100644
index 0000000000..ebe2b759d9
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition_skewedinfo.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition_SkewedInfo AWS CloudFormation Resource (AWS::Glue::Partition.SkewedInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html
+type Partition_SkewedInfo struct {
+
+ // SkewedColumnNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html#cfn-glue-partition-skewedinfo-skewedcolumnnames
+ SkewedColumnNames *types.Value `json:"SkewedColumnNames,omitempty"`
+
+ // SkewedColumnValueLocationMaps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html#cfn-glue-partition-skewedinfo-skewedcolumnvaluelocationmaps
+ SkewedColumnValueLocationMaps interface{} `json:"SkewedColumnValueLocationMaps,omitempty"`
+
+ // SkewedColumnValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-skewedinfo.html#cfn-glue-partition-skewedinfo-skewedcolumnvalues
+ SkewedColumnValues *types.Value `json:"SkewedColumnValues,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition_SkewedInfo) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition.SkewedInfo"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-partition_storagedescriptor.go b/goformation/cloudformation/glue/aws-glue-partition_storagedescriptor.go
new file mode 100644
index 0000000000..af6920e617
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-partition_storagedescriptor.go
@@ -0,0 +1,97 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Partition_StorageDescriptor AWS CloudFormation Resource (AWS::Glue::Partition.StorageDescriptor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html
+type Partition_StorageDescriptor struct {
+
+ // BucketColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-bucketcolumns
+ BucketColumns *types.Value `json:"BucketColumns,omitempty"`
+
+ // Columns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-columns
+ Columns []Partition_Column `json:"Columns,omitempty"`
+
+ // Compressed AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-compressed
+ Compressed *types.Value `json:"Compressed,omitempty"`
+
+ // InputFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-inputformat
+ InputFormat *types.Value `json:"InputFormat,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // NumberOfBuckets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-numberofbuckets
+ NumberOfBuckets *types.Value `json:"NumberOfBuckets,omitempty"`
+
+ // OutputFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-outputformat
+ OutputFormat *types.Value `json:"OutputFormat,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // SchemaReference AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-schemareference
+ SchemaReference *Partition_SchemaReference `json:"SchemaReference,omitempty"`
+
+ // SerdeInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-serdeinfo
+ SerdeInfo *Partition_SerdeInfo `json:"SerdeInfo,omitempty"`
+
+ // SkewedInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-skewedinfo
+ SkewedInfo *Partition_SkewedInfo `json:"SkewedInfo,omitempty"`
+
+ // SortColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-sortcolumns
+ SortColumns []Partition_Order `json:"SortColumns,omitempty"`
+
+ // StoredAsSubDirectories AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-partition-storagedescriptor.html#cfn-glue-partition-storagedescriptor-storedassubdirectories
+ StoredAsSubDirectories *types.Value `json:"StoredAsSubDirectories,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Partition_StorageDescriptor) AWSCloudFormationType() string {
+ return "AWS::Glue::Partition.StorageDescriptor"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-registry.go b/goformation/cloudformation/glue/aws-glue-registry.go
new file mode 100644
index 0000000000..a7b2f6504c
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-registry.go
@@ -0,0 +1,119 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Registry AWS CloudFormation Resource (AWS::Glue::Registry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html
+type Registry struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html#cfn-glue-registry-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html#cfn-glue-registry-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-registry.html#cfn-glue-registry-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Registry) AWSCloudFormationType() string {
+ return "AWS::Glue::Registry"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Registry) MarshalJSON() ([]byte, error) {
+ type Properties Registry
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Registry) UnmarshalJSON(b []byte) error {
+ type Properties Registry
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Registry(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-schema.go b/goformation/cloudformation/glue/aws-glue-schema.go
new file mode 100644
index 0000000000..ec8b07f1d3
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-schema.go
@@ -0,0 +1,144 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Schema AWS CloudFormation Resource (AWS::Glue::Schema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html
+type Schema struct {
+
+ // CheckpointVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-checkpointversion
+ CheckpointVersion *Schema_SchemaVersion `json:"CheckpointVersion,omitempty"`
+
+ // Compatibility AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-compatibility
+ Compatibility *types.Value `json:"Compatibility,omitempty"`
+
+ // DataFormat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-dataformat
+ DataFormat *types.Value `json:"DataFormat,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Registry AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-registry
+ Registry *Schema_Registry `json:"Registry,omitempty"`
+
+ // SchemaDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-schemadefinition
+ SchemaDefinition *types.Value `json:"SchemaDefinition,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schema.html#cfn-glue-schema-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Schema) AWSCloudFormationType() string {
+ return "AWS::Glue::Schema"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Schema) MarshalJSON() ([]byte, error) {
+ type Properties Schema
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Schema) UnmarshalJSON(b []byte) error {
+ type Properties Schema
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Schema(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-schema_registry.go b/goformation/cloudformation/glue/aws-glue-schema_registry.go
new file mode 100644
index 0000000000..f59e60bc0c
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-schema_registry.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Schema_Registry AWS CloudFormation Resource (AWS::Glue::Schema.Registry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html
+type Schema_Registry struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html#cfn-glue-schema-registry-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-registry.html#cfn-glue-schema-registry-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Schema_Registry) AWSCloudFormationType() string {
+ return "AWS::Glue::Schema.Registry"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-schema_schemaversion.go b/goformation/cloudformation/glue/aws-glue-schema_schemaversion.go
new file mode 100644
index 0000000000..012a6d030a
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-schema_schemaversion.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Schema_SchemaVersion AWS CloudFormation Resource (AWS::Glue::Schema.SchemaVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html
+type Schema_SchemaVersion struct {
+
+ // IsLatest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html#cfn-glue-schema-schemaversion-islatest
+ IsLatest *types.Value `json:"IsLatest,omitempty"`
+
+ // VersionNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schema-schemaversion.html#cfn-glue-schema-schemaversion-versionnumber
+ VersionNumber *types.Value `json:"VersionNumber,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Schema_SchemaVersion) AWSCloudFormationType() string {
+ return "AWS::Glue::Schema.SchemaVersion"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-schemaversion.go b/goformation/cloudformation/glue/aws-glue-schemaversion.go
new file mode 100644
index 0000000000..338ae482fb
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-schemaversion.go
@@ -0,0 +1,113 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SchemaVersion AWS CloudFormation Resource (AWS::Glue::SchemaVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html
+type SchemaVersion struct {
+
+ // Schema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html#cfn-glue-schemaversion-schema
+ Schema *SchemaVersion_Schema `json:"Schema,omitempty"`
+
+ // SchemaDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversion.html#cfn-glue-schemaversion-schemadefinition
+ SchemaDefinition *types.Value `json:"SchemaDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SchemaVersion) AWSCloudFormationType() string {
+ return "AWS::Glue::SchemaVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SchemaVersion) MarshalJSON() ([]byte, error) {
+ type Properties SchemaVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SchemaVersion) UnmarshalJSON(b []byte) error {
+ type Properties SchemaVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SchemaVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-schemaversion_schema.go b/goformation/cloudformation/glue/aws-glue-schemaversion_schema.go
new file mode 100644
index 0000000000..ca54730495
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-schemaversion_schema.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SchemaVersion_Schema AWS CloudFormation Resource (AWS::Glue::SchemaVersion.Schema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html
+type SchemaVersion_Schema struct {
+
+ // RegistryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html#cfn-glue-schemaversion-schema-registryname
+ RegistryName *types.Value `json:"RegistryName,omitempty"`
+
+ // SchemaArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html#cfn-glue-schemaversion-schema-schemaarn
+ SchemaArn *types.Value `json:"SchemaArn,omitempty"`
+
+ // SchemaName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-schemaversion-schema.html#cfn-glue-schemaversion-schema-schemaname
+ SchemaName *types.Value `json:"SchemaName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SchemaVersion_Schema) AWSCloudFormationType() string {
+ return "AWS::Glue::SchemaVersion.Schema"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-schemaversionmetadata.go b/goformation/cloudformation/glue/aws-glue-schemaversionmetadata.go
new file mode 100644
index 0000000000..d2a584bb69
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-schemaversionmetadata.go
@@ -0,0 +1,118 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SchemaVersionMetadata AWS CloudFormation Resource (AWS::Glue::SchemaVersionMetadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html
+type SchemaVersionMetadata struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html#cfn-glue-schemaversionmetadata-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // SchemaVersionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html#cfn-glue-schemaversionmetadata-schemaversionid
+ SchemaVersionId *types.Value `json:"SchemaVersionId,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-schemaversionmetadata.html#cfn-glue-schemaversionmetadata-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SchemaVersionMetadata) AWSCloudFormationType() string {
+ return "AWS::Glue::SchemaVersionMetadata"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SchemaVersionMetadata) MarshalJSON() ([]byte, error) {
+ type Properties SchemaVersionMetadata
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SchemaVersionMetadata) UnmarshalJSON(b []byte) error {
+ type Properties SchemaVersionMetadata
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SchemaVersionMetadata(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-securityconfiguration.go b/goformation/cloudformation/glue/aws-glue-securityconfiguration.go
new file mode 100644
index 0000000000..c18e14b302
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-securityconfiguration.go
@@ -0,0 +1,113 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityConfiguration AWS CloudFormation Resource (AWS::Glue::SecurityConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html
+type SecurityConfiguration struct {
+
+ // EncryptionConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html#cfn-glue-securityconfiguration-encryptionconfiguration
+ EncryptionConfiguration *SecurityConfiguration_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-securityconfiguration.html#cfn-glue-securityconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityConfiguration) AWSCloudFormationType() string {
+ return "AWS::Glue::SecurityConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SecurityConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties SecurityConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SecurityConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties SecurityConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SecurityConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-securityconfiguration_cloudwatchencryption.go b/goformation/cloudformation/glue/aws-glue-securityconfiguration_cloudwatchencryption.go
new file mode 100644
index 0000000000..19bfa7e365
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-securityconfiguration_cloudwatchencryption.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityConfiguration_CloudWatchEncryption AWS CloudFormation Resource (AWS::Glue::SecurityConfiguration.CloudWatchEncryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html
+type SecurityConfiguration_CloudWatchEncryption struct {
+
+ // CloudWatchEncryptionMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html#cfn-glue-securityconfiguration-cloudwatchencryption-cloudwatchencryptionmode
+ CloudWatchEncryptionMode *types.Value `json:"CloudWatchEncryptionMode,omitempty"`
+
+ // KmsKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-cloudwatchencryption.html#cfn-glue-securityconfiguration-cloudwatchencryption-kmskeyarn
+ KmsKeyArn *types.Value `json:"KmsKeyArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityConfiguration_CloudWatchEncryption) AWSCloudFormationType() string {
+ return "AWS::Glue::SecurityConfiguration.CloudWatchEncryption"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-securityconfiguration_encryptionconfiguration.go b/goformation/cloudformation/glue/aws-glue-securityconfiguration_encryptionconfiguration.go
new file mode 100644
index 0000000000..170dd18cd5
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-securityconfiguration_encryptionconfiguration.go
@@ -0,0 +1,45 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityConfiguration_EncryptionConfiguration AWS CloudFormation Resource (AWS::Glue::SecurityConfiguration.EncryptionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html
+type SecurityConfiguration_EncryptionConfiguration struct {
+
+ // CloudWatchEncryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html#cfn-glue-securityconfiguration-encryptionconfiguration-cloudwatchencryption
+ CloudWatchEncryption *SecurityConfiguration_CloudWatchEncryption `json:"CloudWatchEncryption,omitempty"`
+
+ // JobBookmarksEncryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html#cfn-glue-securityconfiguration-encryptionconfiguration-jobbookmarksencryption
+ JobBookmarksEncryption *SecurityConfiguration_JobBookmarksEncryption `json:"JobBookmarksEncryption,omitempty"`
+
+ // S3Encryptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-encryptionconfiguration.html#cfn-glue-securityconfiguration-encryptionconfiguration-s3encryptions
+ S3Encryptions *SecurityConfiguration_S3Encryptions `json:"S3Encryptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityConfiguration_EncryptionConfiguration) AWSCloudFormationType() string {
+ return "AWS::Glue::SecurityConfiguration.EncryptionConfiguration"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-securityconfiguration_jobbookmarksencryption.go b/goformation/cloudformation/glue/aws-glue-securityconfiguration_jobbookmarksencryption.go
new file mode 100644
index 0000000000..d5232dfd22
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-securityconfiguration_jobbookmarksencryption.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityConfiguration_JobBookmarksEncryption AWS CloudFormation Resource (AWS::Glue::SecurityConfiguration.JobBookmarksEncryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html
+type SecurityConfiguration_JobBookmarksEncryption struct {
+
+ // JobBookmarksEncryptionMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html#cfn-glue-securityconfiguration-jobbookmarksencryption-jobbookmarksencryptionmode
+ JobBookmarksEncryptionMode *types.Value `json:"JobBookmarksEncryptionMode,omitempty"`
+
+ // KmsKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-jobbookmarksencryption.html#cfn-glue-securityconfiguration-jobbookmarksencryption-kmskeyarn
+ KmsKeyArn *types.Value `json:"KmsKeyArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityConfiguration_JobBookmarksEncryption) AWSCloudFormationType() string {
+ return "AWS::Glue::SecurityConfiguration.JobBookmarksEncryption"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-securityconfiguration_s3encryption.go b/goformation/cloudformation/glue/aws-glue-securityconfiguration_s3encryption.go
new file mode 100644
index 0000000000..5655c08868
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-securityconfiguration_s3encryption.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityConfiguration_S3Encryption AWS CloudFormation Resource (AWS::Glue::SecurityConfiguration.S3Encryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html
+type SecurityConfiguration_S3Encryption struct {
+
+ // KmsKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html#cfn-glue-securityconfiguration-s3encryption-kmskeyarn
+ KmsKeyArn *types.Value `json:"KmsKeyArn,omitempty"`
+
+ // S3EncryptionMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html#cfn-glue-securityconfiguration-s3encryption-s3encryptionmode
+ S3EncryptionMode *types.Value `json:"S3EncryptionMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityConfiguration_S3Encryption) AWSCloudFormationType() string {
+ return "AWS::Glue::SecurityConfiguration.S3Encryption"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-securityconfiguration_s3encryptions.go b/goformation/cloudformation/glue/aws-glue-securityconfiguration_s3encryptions.go
new file mode 100644
index 0000000000..35268fbeed
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-securityconfiguration_s3encryptions.go
@@ -0,0 +1,30 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityConfiguration_S3Encryptions AWS CloudFormation Resource (AWS::Glue::SecurityConfiguration.S3Encryptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryptions.html
+type SecurityConfiguration_S3Encryptions struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityConfiguration_S3Encryptions) AWSCloudFormationType() string {
+ return "AWS::Glue::SecurityConfiguration.S3Encryptions"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table.go b/goformation/cloudformation/glue/aws-glue-table.go
new file mode 100644
index 0000000000..19f03a05c4
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table.go
@@ -0,0 +1,118 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table AWS CloudFormation Resource (AWS::Glue::Table)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html
+type Table struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html#cfn-glue-table-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html#cfn-glue-table-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // TableInput AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-table.html#cfn-glue-table-tableinput
+ TableInput *Table_TableInput `json:"TableInput,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table) AWSCloudFormationType() string {
+ return "AWS::Glue::Table"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Table) MarshalJSON() ([]byte, error) {
+ type Properties Table
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Table) UnmarshalJSON(b []byte) error {
+ type Properties Table
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Table(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_column.go b/goformation/cloudformation/glue/aws-glue-table_column.go
new file mode 100644
index 0000000000..8b70b4b4e5
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_column.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_Column AWS CloudFormation Resource (AWS::Glue::Table.Column)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html
+type Table_Column struct {
+
+ // Comment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html#cfn-glue-table-column-comment
+ Comment *types.Value `json:"Comment,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html#cfn-glue-table-column-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-column.html#cfn-glue-table-column-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_Column) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.Column"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_order.go b/goformation/cloudformation/glue/aws-glue-table_order.go
new file mode 100644
index 0000000000..e97e9aa01f
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_order.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_Order AWS CloudFormation Resource (AWS::Glue::Table.Order)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html
+type Table_Order struct {
+
+ // Column AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html#cfn-glue-table-order-column
+ Column *types.Value `json:"Column,omitempty"`
+
+ // SortOrder AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-order.html#cfn-glue-table-order-sortorder
+ SortOrder *types.Value `json:"SortOrder"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_Order) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.Order"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_schemaid.go b/goformation/cloudformation/glue/aws-glue-table_schemaid.go
new file mode 100644
index 0000000000..4213e94d64
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_schemaid.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_SchemaId AWS CloudFormation Resource (AWS::Glue::Table.SchemaId)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemaid.html
+type Table_SchemaId struct {
+
+ // RegistryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemaid.html#cfn-glue-table-schemaid-registryname
+ RegistryName *types.Value `json:"RegistryName,omitempty"`
+
+ // SchemaArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemaid.html#cfn-glue-table-schemaid-schemaarn
+ SchemaArn *types.Value `json:"SchemaArn,omitempty"`
+
+ // SchemaName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemaid.html#cfn-glue-table-schemaid-schemaname
+ SchemaName *types.Value `json:"SchemaName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_SchemaId) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.SchemaId"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_schemareference.go b/goformation/cloudformation/glue/aws-glue-table_schemareference.go
new file mode 100644
index 0000000000..277cda16b2
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_schemareference.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_SchemaReference AWS CloudFormation Resource (AWS::Glue::Table.SchemaReference)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemareference.html
+type Table_SchemaReference struct {
+
+ // SchemaId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemareference.html#cfn-glue-table-schemareference-schemaid
+ SchemaId *Table_SchemaId `json:"SchemaId,omitempty"`
+
+ // SchemaVersionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemareference.html#cfn-glue-table-schemareference-schemaversionid
+ SchemaVersionId *types.Value `json:"SchemaVersionId,omitempty"`
+
+ // SchemaVersionNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-schemareference.html#cfn-glue-table-schemareference-schemaversionnumber
+ SchemaVersionNumber *types.Value `json:"SchemaVersionNumber,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_SchemaReference) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.SchemaReference"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_serdeinfo.go b/goformation/cloudformation/glue/aws-glue-table_serdeinfo.go
new file mode 100644
index 0000000000..6d44f5e987
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_serdeinfo.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_SerdeInfo AWS CloudFormation Resource (AWS::Glue::Table.SerdeInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html
+type Table_SerdeInfo struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html#cfn-glue-table-serdeinfo-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html#cfn-glue-table-serdeinfo-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // SerializationLibrary AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-serdeinfo.html#cfn-glue-table-serdeinfo-serializationlibrary
+ SerializationLibrary *types.Value `json:"SerializationLibrary,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_SerdeInfo) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.SerdeInfo"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_skewedinfo.go b/goformation/cloudformation/glue/aws-glue-table_skewedinfo.go
new file mode 100644
index 0000000000..4daa44fd88
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_skewedinfo.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_SkewedInfo AWS CloudFormation Resource (AWS::Glue::Table.SkewedInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html
+type Table_SkewedInfo struct {
+
+ // SkewedColumnNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnnames
+ SkewedColumnNames *types.Value `json:"SkewedColumnNames,omitempty"`
+
+ // SkewedColumnValueLocationMaps AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnvaluelocationmaps
+ SkewedColumnValueLocationMaps interface{} `json:"SkewedColumnValueLocationMaps,omitempty"`
+
+ // SkewedColumnValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnvalues
+ SkewedColumnValues *types.Value `json:"SkewedColumnValues,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_SkewedInfo) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.SkewedInfo"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_storagedescriptor.go b/goformation/cloudformation/glue/aws-glue-table_storagedescriptor.go
new file mode 100644
index 0000000000..b566bc64aa
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_storagedescriptor.go
@@ -0,0 +1,97 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_StorageDescriptor AWS CloudFormation Resource (AWS::Glue::Table.StorageDescriptor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html
+type Table_StorageDescriptor struct {
+
+ // BucketColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-bucketcolumns
+ BucketColumns *types.Value `json:"BucketColumns,omitempty"`
+
+ // Columns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-columns
+ Columns []Table_Column `json:"Columns,omitempty"`
+
+ // Compressed AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-compressed
+ Compressed *types.Value `json:"Compressed,omitempty"`
+
+ // InputFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-inputformat
+ InputFormat *types.Value `json:"InputFormat,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // NumberOfBuckets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-numberofbuckets
+ NumberOfBuckets *types.Value `json:"NumberOfBuckets,omitempty"`
+
+ // OutputFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-outputformat
+ OutputFormat *types.Value `json:"OutputFormat,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // SchemaReference AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-schemareference
+ SchemaReference *Table_SchemaReference `json:"SchemaReference,omitempty"`
+
+ // SerdeInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-serdeinfo
+ SerdeInfo *Table_SerdeInfo `json:"SerdeInfo,omitempty"`
+
+ // SkewedInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-skewedinfo
+ SkewedInfo *Table_SkewedInfo `json:"SkewedInfo,omitempty"`
+
+ // SortColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-sortcolumns
+ SortColumns []Table_Order `json:"SortColumns,omitempty"`
+
+ // StoredAsSubDirectories AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-storagedescriptor.html#cfn-glue-table-storagedescriptor-storedassubdirectories
+ StoredAsSubDirectories *types.Value `json:"StoredAsSubDirectories,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_StorageDescriptor) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.StorageDescriptor"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_tableidentifier.go b/goformation/cloudformation/glue/aws-glue-table_tableidentifier.go
new file mode 100644
index 0000000000..6ec30d3b72
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_tableidentifier.go
@@ -0,0 +1,47 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_TableIdentifier AWS CloudFormation Resource (AWS::Glue::Table.TableIdentifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html
+type Table_TableIdentifier struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html#cfn-glue-table-tableidentifier-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html#cfn-glue-table-tableidentifier-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableidentifier.html#cfn-glue-table-tableidentifier-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_TableIdentifier) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.TableIdentifier"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-table_tableinput.go b/goformation/cloudformation/glue/aws-glue-table_tableinput.go
new file mode 100644
index 0000000000..01e8552a21
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-table_tableinput.go
@@ -0,0 +1,87 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Table_TableInput AWS CloudFormation Resource (AWS::Glue::Table.TableInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html
+type Table_TableInput struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Owner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-owner
+ Owner *types.Value `json:"Owner,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // PartitionKeys AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-partitionkeys
+ PartitionKeys []Table_Column `json:"PartitionKeys,omitempty"`
+
+ // Retention AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-retention
+ Retention *types.Value `json:"Retention,omitempty"`
+
+ // StorageDescriptor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-storagedescriptor
+ StorageDescriptor *Table_StorageDescriptor `json:"StorageDescriptor,omitempty"`
+
+ // TableType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-tabletype
+ TableType *types.Value `json:"TableType,omitempty"`
+
+ // TargetTable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-targettable
+ TargetTable *Table_TableIdentifier `json:"TargetTable,omitempty"`
+
+ // ViewExpandedText AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-viewexpandedtext
+ ViewExpandedText *types.Value `json:"ViewExpandedText,omitempty"`
+
+ // ViewOriginalText AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-vieworiginaltext
+ ViewOriginalText *types.Value `json:"ViewOriginalText,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Table_TableInput) AWSCloudFormationType() string {
+ return "AWS::Glue::Table.TableInput"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-trigger.go b/goformation/cloudformation/glue/aws-glue-trigger.go
new file mode 100644
index 0000000000..1fd5ef75f0
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-trigger.go
@@ -0,0 +1,148 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trigger AWS CloudFormation Resource (AWS::Glue::Trigger)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html
+type Trigger struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-actions
+ Actions []Trigger_Action `json:"Actions,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Predicate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-predicate
+ Predicate *Trigger_Predicate `json:"Predicate,omitempty"`
+
+ // Schedule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-schedule
+ Schedule *types.Value `json:"Schedule,omitempty"`
+
+ // StartOnCreation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-startoncreation
+ StartOnCreation *types.Value `json:"StartOnCreation,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // WorkflowName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-workflowname
+ WorkflowName *types.Value `json:"WorkflowName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trigger) AWSCloudFormationType() string {
+ return "AWS::Glue::Trigger"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Trigger) MarshalJSON() ([]byte, error) {
+ type Properties Trigger
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Trigger) UnmarshalJSON(b []byte) error {
+ type Properties Trigger
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Trigger(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/glue/aws-glue-trigger_action.go b/goformation/cloudformation/glue/aws-glue-trigger_action.go
new file mode 100644
index 0000000000..91ff74cfd7
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-trigger_action.go
@@ -0,0 +1,62 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trigger_Action AWS CloudFormation Resource (AWS::Glue::Trigger.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html
+type Trigger_Action struct {
+
+ // Arguments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-arguments
+ Arguments interface{} `json:"Arguments,omitempty"`
+
+ // CrawlerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-crawlername
+ CrawlerName *types.Value `json:"CrawlerName,omitempty"`
+
+ // JobName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-jobname
+ JobName *types.Value `json:"JobName,omitempty"`
+
+ // NotificationProperty AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-notificationproperty
+ NotificationProperty *Trigger_NotificationProperty `json:"NotificationProperty,omitempty"`
+
+ // SecurityConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-securityconfiguration
+ SecurityConfiguration *types.Value `json:"SecurityConfiguration,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-action.html#cfn-glue-trigger-action-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trigger_Action) AWSCloudFormationType() string {
+ return "AWS::Glue::Trigger.Action"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-trigger_condition.go b/goformation/cloudformation/glue/aws-glue-trigger_condition.go
new file mode 100644
index 0000000000..1409ca0af9
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-trigger_condition.go
@@ -0,0 +1,57 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trigger_Condition AWS CloudFormation Resource (AWS::Glue::Trigger.Condition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html
+type Trigger_Condition struct {
+
+ // CrawlState AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html#cfn-glue-trigger-condition-crawlstate
+ CrawlState *types.Value `json:"CrawlState,omitempty"`
+
+ // CrawlerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html#cfn-glue-trigger-condition-crawlername
+ CrawlerName *types.Value `json:"CrawlerName,omitempty"`
+
+ // JobName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html#cfn-glue-trigger-condition-jobname
+ JobName *types.Value `json:"JobName,omitempty"`
+
+ // LogicalOperator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html#cfn-glue-trigger-condition-logicaloperator
+ LogicalOperator *types.Value `json:"LogicalOperator,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-condition.html#cfn-glue-trigger-condition-state
+ State *types.Value `json:"State,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trigger_Condition) AWSCloudFormationType() string {
+ return "AWS::Glue::Trigger.Condition"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-trigger_notificationproperty.go b/goformation/cloudformation/glue/aws-glue-trigger_notificationproperty.go
new file mode 100644
index 0000000000..f8abb8e920
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-trigger_notificationproperty.go
@@ -0,0 +1,37 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trigger_NotificationProperty AWS CloudFormation Resource (AWS::Glue::Trigger.NotificationProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-notificationproperty.html
+type Trigger_NotificationProperty struct {
+
+ // NotifyDelayAfter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-notificationproperty.html#cfn-glue-trigger-notificationproperty-notifydelayafter
+ NotifyDelayAfter *types.Value `json:"NotifyDelayAfter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trigger_NotificationProperty) AWSCloudFormationType() string {
+ return "AWS::Glue::Trigger.NotificationProperty"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-trigger_predicate.go b/goformation/cloudformation/glue/aws-glue-trigger_predicate.go
new file mode 100644
index 0000000000..0f4c3e7dc2
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-trigger_predicate.go
@@ -0,0 +1,42 @@
+package glue
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Trigger_Predicate AWS CloudFormation Resource (AWS::Glue::Trigger.Predicate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html
+type Trigger_Predicate struct {
+
+ // Conditions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html#cfn-glue-trigger-predicate-conditions
+ Conditions []Trigger_Condition `json:"Conditions,omitempty"`
+
+ // Logical AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-trigger-predicate.html#cfn-glue-trigger-predicate-logical
+ Logical *types.Value `json:"Logical,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Trigger_Predicate) AWSCloudFormationType() string {
+ return "AWS::Glue::Trigger.Predicate"
+}
diff --git a/goformation/cloudformation/glue/aws-glue-workflow.go b/goformation/cloudformation/glue/aws-glue-workflow.go
new file mode 100644
index 0000000000..df37fad405
--- /dev/null
+++ b/goformation/cloudformation/glue/aws-glue-workflow.go
@@ -0,0 +1,123 @@
+package glue
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Workflow AWS CloudFormation Resource (AWS::Glue::Workflow)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html
+type Workflow struct {
+
+ // DefaultRunProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html#cfn-glue-workflow-defaultrunproperties
+ DefaultRunProperties interface{} `json:"DefaultRunProperties,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html#cfn-glue-workflow-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html#cfn-glue-workflow-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-workflow.html#cfn-glue-workflow-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Workflow) AWSCloudFormationType() string {
+ return "AWS::Glue::Workflow"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Workflow) MarshalJSON() ([]byte, error) {
+ type Properties Workflow
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Workflow) UnmarshalJSON(b []byte) error {
+ type Properties Workflow
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Workflow(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition.go b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition.go
new file mode 100644
index 0000000000..d67e7c177f
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition.go
@@ -0,0 +1,118 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorDefinition AWS CloudFormation Resource (AWS::Greengrass::ConnectorDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html
+type ConnectorDefinition struct {
+
+ // InitialVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html#cfn-greengrass-connectordefinition-initialversion
+ InitialVersion *ConnectorDefinition_ConnectorDefinitionVersion `json:"InitialVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html#cfn-greengrass-connectordefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html#cfn-greengrass-connectordefinition-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorDefinition) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ConnectorDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConnectorDefinition) MarshalJSON() ([]byte, error) {
+ type Properties ConnectorDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConnectorDefinition) UnmarshalJSON(b []byte) error {
+ type Properties ConnectorDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConnectorDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition_connector.go b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition_connector.go
new file mode 100644
index 0000000000..7f187cb818
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition_connector.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorDefinition_Connector AWS CloudFormation Resource (AWS::Greengrass::ConnectorDefinition.Connector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html
+type ConnectorDefinition_Connector struct {
+
+ // ConnectorArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html#cfn-greengrass-connectordefinition-connector-connectorarn
+ ConnectorArn *types.Value `json:"ConnectorArn,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html#cfn-greengrass-connectordefinition-connector-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html#cfn-greengrass-connectordefinition-connector-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorDefinition_Connector) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ConnectorDefinition.Connector"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition_connectordefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition_connectordefinitionversion.go
new file mode 100644
index 0000000000..00af1cf658
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinition_connectordefinitionversion.go
@@ -0,0 +1,35 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorDefinition_ConnectorDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connectordefinitionversion.html
+type ConnectorDefinition_ConnectorDefinitionVersion struct {
+
+ // Connectors AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connectordefinitionversion.html#cfn-greengrass-connectordefinition-connectordefinitionversion-connectors
+ Connectors []ConnectorDefinition_Connector `json:"Connectors,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorDefinition_ConnectorDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-connectordefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinitionversion.go
new file mode 100644
index 0000000000..e3c87ea6c6
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinitionversion.go
@@ -0,0 +1,113 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::ConnectorDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html
+type ConnectorDefinitionVersion struct {
+
+ // ConnectorDefinitionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html#cfn-greengrass-connectordefinitionversion-connectordefinitionid
+ ConnectorDefinitionId *types.Value `json:"ConnectorDefinitionId,omitempty"`
+
+ // Connectors AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html#cfn-greengrass-connectordefinitionversion-connectors
+ Connectors []ConnectorDefinitionVersion_Connector `json:"Connectors,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ConnectorDefinitionVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ConnectorDefinitionVersion) MarshalJSON() ([]byte, error) {
+ type Properties ConnectorDefinitionVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ConnectorDefinitionVersion) UnmarshalJSON(b []byte) error {
+ type Properties ConnectorDefinitionVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ConnectorDefinitionVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-connectordefinitionversion_connector.go b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinitionversion_connector.go
new file mode 100644
index 0000000000..3d0c38b38c
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-connectordefinitionversion_connector.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ConnectorDefinitionVersion_Connector AWS CloudFormation Resource (AWS::Greengrass::ConnectorDefinitionVersion.Connector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinitionversion-connector.html
+type ConnectorDefinitionVersion_Connector struct {
+
+ // ConnectorArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinitionversion-connector.html#cfn-greengrass-connectordefinitionversion-connector-connectorarn
+ ConnectorArn *types.Value `json:"ConnectorArn,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinitionversion-connector.html#cfn-greengrass-connectordefinitionversion-connector-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinitionversion-connector.html#cfn-greengrass-connectordefinitionversion-connector-parameters
+ Parameters interface{} `json:"Parameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ConnectorDefinitionVersion_Connector) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ConnectorDefinitionVersion.Connector"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-coredefinition.go b/goformation/cloudformation/greengrass/aws-greengrass-coredefinition.go
new file mode 100644
index 0000000000..245eac29be
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-coredefinition.go
@@ -0,0 +1,118 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CoreDefinition AWS CloudFormation Resource (AWS::Greengrass::CoreDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html
+type CoreDefinition struct {
+
+ // InitialVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html#cfn-greengrass-coredefinition-initialversion
+ InitialVersion *CoreDefinition_CoreDefinitionVersion `json:"InitialVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html#cfn-greengrass-coredefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html#cfn-greengrass-coredefinition-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CoreDefinition) AWSCloudFormationType() string {
+ return "AWS::Greengrass::CoreDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CoreDefinition) MarshalJSON() ([]byte, error) {
+ type Properties CoreDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CoreDefinition) UnmarshalJSON(b []byte) error {
+ type Properties CoreDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CoreDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-coredefinition_core.go b/goformation/cloudformation/greengrass/aws-greengrass-coredefinition_core.go
new file mode 100644
index 0000000000..a1f609e277
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-coredefinition_core.go
@@ -0,0 +1,52 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CoreDefinition_Core AWS CloudFormation Resource (AWS::Greengrass::CoreDefinition.Core)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html
+type CoreDefinition_Core struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html#cfn-greengrass-coredefinition-core-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html#cfn-greengrass-coredefinition-core-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // SyncShadow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html#cfn-greengrass-coredefinition-core-syncshadow
+ SyncShadow *types.Value `json:"SyncShadow,omitempty"`
+
+ // ThingArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html#cfn-greengrass-coredefinition-core-thingarn
+ ThingArn *types.Value `json:"ThingArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CoreDefinition_Core) AWSCloudFormationType() string {
+ return "AWS::Greengrass::CoreDefinition.Core"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-coredefinition_coredefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-coredefinition_coredefinitionversion.go
new file mode 100644
index 0000000000..5c6bc1afb2
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-coredefinition_coredefinitionversion.go
@@ -0,0 +1,35 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// CoreDefinition_CoreDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::CoreDefinition.CoreDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-coredefinitionversion.html
+type CoreDefinition_CoreDefinitionVersion struct {
+
+ // Cores AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-coredefinitionversion.html#cfn-greengrass-coredefinition-coredefinitionversion-cores
+ Cores []CoreDefinition_Core `json:"Cores,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CoreDefinition_CoreDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::CoreDefinition.CoreDefinitionVersion"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-coredefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-coredefinitionversion.go
new file mode 100644
index 0000000000..f890928a59
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-coredefinitionversion.go
@@ -0,0 +1,113 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CoreDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::CoreDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html
+type CoreDefinitionVersion struct {
+
+ // CoreDefinitionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html#cfn-greengrass-coredefinitionversion-coredefinitionid
+ CoreDefinitionId *types.Value `json:"CoreDefinitionId,omitempty"`
+
+ // Cores AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html#cfn-greengrass-coredefinitionversion-cores
+ Cores []CoreDefinitionVersion_Core `json:"Cores,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CoreDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::CoreDefinitionVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CoreDefinitionVersion) MarshalJSON() ([]byte, error) {
+ type Properties CoreDefinitionVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CoreDefinitionVersion) UnmarshalJSON(b []byte) error {
+ type Properties CoreDefinitionVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CoreDefinitionVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-coredefinitionversion_core.go b/goformation/cloudformation/greengrass/aws-greengrass-coredefinitionversion_core.go
new file mode 100644
index 0000000000..5bcaee95d7
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-coredefinitionversion_core.go
@@ -0,0 +1,52 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CoreDefinitionVersion_Core AWS CloudFormation Resource (AWS::Greengrass::CoreDefinitionVersion.Core)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html
+type CoreDefinitionVersion_Core struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html#cfn-greengrass-coredefinitionversion-core-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html#cfn-greengrass-coredefinitionversion-core-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // SyncShadow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html#cfn-greengrass-coredefinitionversion-core-syncshadow
+ SyncShadow *types.Value `json:"SyncShadow,omitempty"`
+
+ // ThingArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html#cfn-greengrass-coredefinitionversion-core-thingarn
+ ThingArn *types.Value `json:"ThingArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CoreDefinitionVersion_Core) AWSCloudFormationType() string {
+ return "AWS::Greengrass::CoreDefinitionVersion.Core"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition.go b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition.go
new file mode 100644
index 0000000000..1360858f42
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition.go
@@ -0,0 +1,118 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeviceDefinition AWS CloudFormation Resource (AWS::Greengrass::DeviceDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html
+type DeviceDefinition struct {
+
+ // InitialVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html#cfn-greengrass-devicedefinition-initialversion
+ InitialVersion *DeviceDefinition_DeviceDefinitionVersion `json:"InitialVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html#cfn-greengrass-devicedefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html#cfn-greengrass-devicedefinition-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeviceDefinition) AWSCloudFormationType() string {
+ return "AWS::Greengrass::DeviceDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DeviceDefinition) MarshalJSON() ([]byte, error) {
+ type Properties DeviceDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DeviceDefinition) UnmarshalJSON(b []byte) error {
+ type Properties DeviceDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DeviceDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition_device.go b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition_device.go
new file mode 100644
index 0000000000..da3362b5e7
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition_device.go
@@ -0,0 +1,52 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeviceDefinition_Device AWS CloudFormation Resource (AWS::Greengrass::DeviceDefinition.Device)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html
+type DeviceDefinition_Device struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html#cfn-greengrass-devicedefinition-device-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html#cfn-greengrass-devicedefinition-device-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // SyncShadow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html#cfn-greengrass-devicedefinition-device-syncshadow
+ SyncShadow *types.Value `json:"SyncShadow,omitempty"`
+
+ // ThingArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html#cfn-greengrass-devicedefinition-device-thingarn
+ ThingArn *types.Value `json:"ThingArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeviceDefinition_Device) AWSCloudFormationType() string {
+ return "AWS::Greengrass::DeviceDefinition.Device"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition_devicedefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition_devicedefinitionversion.go
new file mode 100644
index 0000000000..b764e6dc7f
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinition_devicedefinitionversion.go
@@ -0,0 +1,35 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeviceDefinition_DeviceDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-devicedefinitionversion.html
+type DeviceDefinition_DeviceDefinitionVersion struct {
+
+ // Devices AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-devicedefinitionversion.html#cfn-greengrass-devicedefinition-devicedefinitionversion-devices
+ Devices []DeviceDefinition_Device `json:"Devices,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeviceDefinition_DeviceDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-devicedefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinitionversion.go
new file mode 100644
index 0000000000..90c3040884
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinitionversion.go
@@ -0,0 +1,113 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeviceDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::DeviceDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html
+type DeviceDefinitionVersion struct {
+
+ // DeviceDefinitionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html#cfn-greengrass-devicedefinitionversion-devicedefinitionid
+ DeviceDefinitionId *types.Value `json:"DeviceDefinitionId,omitempty"`
+
+ // Devices AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html#cfn-greengrass-devicedefinitionversion-devices
+ Devices []DeviceDefinitionVersion_Device `json:"Devices,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeviceDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::DeviceDefinitionVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DeviceDefinitionVersion) MarshalJSON() ([]byte, error) {
+ type Properties DeviceDefinitionVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DeviceDefinitionVersion) UnmarshalJSON(b []byte) error {
+ type Properties DeviceDefinitionVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DeviceDefinitionVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-devicedefinitionversion_device.go b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinitionversion_device.go
new file mode 100644
index 0000000000..6bbbe6f436
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-devicedefinitionversion_device.go
@@ -0,0 +1,52 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeviceDefinitionVersion_Device AWS CloudFormation Resource (AWS::Greengrass::DeviceDefinitionVersion.Device)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html
+type DeviceDefinitionVersion_Device struct {
+
+ // CertificateArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html#cfn-greengrass-devicedefinitionversion-device-certificatearn
+ CertificateArn *types.Value `json:"CertificateArn,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html#cfn-greengrass-devicedefinitionversion-device-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // SyncShadow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html#cfn-greengrass-devicedefinitionversion-device-syncshadow
+ SyncShadow *types.Value `json:"SyncShadow,omitempty"`
+
+ // ThingArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html#cfn-greengrass-devicedefinitionversion-device-thingarn
+ ThingArn *types.Value `json:"ThingArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeviceDefinitionVersion_Device) AWSCloudFormationType() string {
+ return "AWS::Greengrass::DeviceDefinitionVersion.Device"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition.go
new file mode 100644
index 0000000000..6c4718ea5e
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition.go
@@ -0,0 +1,118 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html
+type FunctionDefinition struct {
+
+ // InitialVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html#cfn-greengrass-functiondefinition-initialversion
+ InitialVersion *FunctionDefinition_FunctionDefinitionVersion `json:"InitialVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html#cfn-greengrass-functiondefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html#cfn-greengrass-functiondefinition-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FunctionDefinition) MarshalJSON() ([]byte, error) {
+ type Properties FunctionDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FunctionDefinition) UnmarshalJSON(b []byte) error {
+ type Properties FunctionDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FunctionDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_defaultconfig.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_defaultconfig.go
new file mode 100644
index 0000000000..0d7ee530f3
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_defaultconfig.go
@@ -0,0 +1,35 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition_DefaultConfig AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition.DefaultConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-defaultconfig.html
+type FunctionDefinition_DefaultConfig struct {
+
+ // Execution AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-defaultconfig.html#cfn-greengrass-functiondefinition-defaultconfig-execution
+ Execution *FunctionDefinition_Execution `json:"Execution,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition_DefaultConfig) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition.DefaultConfig"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_environment.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_environment.go
new file mode 100644
index 0000000000..8b644e24c7
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_environment.go
@@ -0,0 +1,52 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition_Environment AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition.Environment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html
+type FunctionDefinition_Environment struct {
+
+ // AccessSysfs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html#cfn-greengrass-functiondefinition-environment-accesssysfs
+ AccessSysfs *types.Value `json:"AccessSysfs,omitempty"`
+
+ // Execution AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html#cfn-greengrass-functiondefinition-environment-execution
+ Execution *FunctionDefinition_Execution `json:"Execution,omitempty"`
+
+ // ResourceAccessPolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html#cfn-greengrass-functiondefinition-environment-resourceaccesspolicies
+ ResourceAccessPolicies []FunctionDefinition_ResourceAccessPolicy `json:"ResourceAccessPolicies,omitempty"`
+
+ // Variables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html#cfn-greengrass-functiondefinition-environment-variables
+ Variables interface{} `json:"Variables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition_Environment) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition.Environment"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_execution.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_execution.go
new file mode 100644
index 0000000000..9bdc47218c
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_execution.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition_Execution AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition.Execution)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html
+type FunctionDefinition_Execution struct {
+
+ // IsolationMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html#cfn-greengrass-functiondefinition-execution-isolationmode
+ IsolationMode *types.Value `json:"IsolationMode,omitempty"`
+
+ // RunAs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html#cfn-greengrass-functiondefinition-execution-runas
+ RunAs *FunctionDefinition_RunAs `json:"RunAs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition_Execution) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition.Execution"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_function.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_function.go
new file mode 100644
index 0000000000..861d3b5e53
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_function.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition_Function AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition.Function)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html
+type FunctionDefinition_Function struct {
+
+ // FunctionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html#cfn-greengrass-functiondefinition-function-functionarn
+ FunctionArn *types.Value `json:"FunctionArn,omitempty"`
+
+ // FunctionConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html#cfn-greengrass-functiondefinition-function-functionconfiguration
+ FunctionConfiguration *FunctionDefinition_FunctionConfiguration `json:"FunctionConfiguration,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html#cfn-greengrass-functiondefinition-function-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition_Function) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition.Function"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_functionconfiguration.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_functionconfiguration.go
new file mode 100644
index 0000000000..9e8b75fa2b
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_functionconfiguration.go
@@ -0,0 +1,67 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition_FunctionConfiguration AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition.FunctionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html
+type FunctionDefinition_FunctionConfiguration struct {
+
+ // EncodingType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html#cfn-greengrass-functiondefinition-functionconfiguration-encodingtype
+ EncodingType *types.Value `json:"EncodingType,omitempty"`
+
+ // Environment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html#cfn-greengrass-functiondefinition-functionconfiguration-environment
+ Environment *FunctionDefinition_Environment `json:"Environment,omitempty"`
+
+ // ExecArgs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html#cfn-greengrass-functiondefinition-functionconfiguration-execargs
+ ExecArgs *types.Value `json:"ExecArgs,omitempty"`
+
+ // Executable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html#cfn-greengrass-functiondefinition-functionconfiguration-executable
+ Executable *types.Value `json:"Executable,omitempty"`
+
+ // MemorySize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html#cfn-greengrass-functiondefinition-functionconfiguration-memorysize
+ MemorySize *types.Value `json:"MemorySize,omitempty"`
+
+ // Pinned AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html#cfn-greengrass-functiondefinition-functionconfiguration-pinned
+ Pinned *types.Value `json:"Pinned,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html#cfn-greengrass-functiondefinition-functionconfiguration-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition_FunctionConfiguration) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition.FunctionConfiguration"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_functiondefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_functiondefinitionversion.go
new file mode 100644
index 0000000000..43e8d165f2
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_functiondefinitionversion.go
@@ -0,0 +1,40 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition_FunctionDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functiondefinitionversion.html
+type FunctionDefinition_FunctionDefinitionVersion struct {
+
+ // DefaultConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functiondefinitionversion.html#cfn-greengrass-functiondefinition-functiondefinitionversion-defaultconfig
+ DefaultConfig *FunctionDefinition_DefaultConfig `json:"DefaultConfig,omitempty"`
+
+ // Functions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functiondefinitionversion.html#cfn-greengrass-functiondefinition-functiondefinitionversion-functions
+ Functions []FunctionDefinition_Function `json:"Functions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition_FunctionDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_resourceaccesspolicy.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_resourceaccesspolicy.go
new file mode 100644
index 0000000000..5360d4cbee
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_resourceaccesspolicy.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition_ResourceAccessPolicy AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-resourceaccesspolicy.html
+type FunctionDefinition_ResourceAccessPolicy struct {
+
+ // Permission AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-resourceaccesspolicy.html#cfn-greengrass-functiondefinition-resourceaccesspolicy-permission
+ Permission *types.Value `json:"Permission,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-resourceaccesspolicy.html#cfn-greengrass-functiondefinition-resourceaccesspolicy-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition_ResourceAccessPolicy) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_runas.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_runas.go
new file mode 100644
index 0000000000..c961da02dc
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinition_runas.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinition_RunAs AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinition.RunAs)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-runas.html
+type FunctionDefinition_RunAs struct {
+
+ // Gid AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-runas.html#cfn-greengrass-functiondefinition-runas-gid
+ Gid *types.Value `json:"Gid,omitempty"`
+
+ // Uid AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-runas.html#cfn-greengrass-functiondefinition-runas-uid
+ Uid *types.Value `json:"Uid,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinition_RunAs) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinition.RunAs"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion.go
new file mode 100644
index 0000000000..6d77b966c7
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion.go
@@ -0,0 +1,118 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html
+type FunctionDefinitionVersion struct {
+
+ // DefaultConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html#cfn-greengrass-functiondefinitionversion-defaultconfig
+ DefaultConfig *FunctionDefinitionVersion_DefaultConfig `json:"DefaultConfig,omitempty"`
+
+ // FunctionDefinitionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html#cfn-greengrass-functiondefinitionversion-functiondefinitionid
+ FunctionDefinitionId *types.Value `json:"FunctionDefinitionId,omitempty"`
+
+ // Functions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html#cfn-greengrass-functiondefinitionversion-functions
+ Functions []FunctionDefinitionVersion_Function `json:"Functions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinitionVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FunctionDefinitionVersion) MarshalJSON() ([]byte, error) {
+ type Properties FunctionDefinitionVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FunctionDefinitionVersion) UnmarshalJSON(b []byte) error {
+ type Properties FunctionDefinitionVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FunctionDefinitionVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_defaultconfig.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_defaultconfig.go
new file mode 100644
index 0000000000..ae5d1dc74e
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_defaultconfig.go
@@ -0,0 +1,35 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinitionVersion_DefaultConfig AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinitionVersion.DefaultConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html
+type FunctionDefinitionVersion_DefaultConfig struct {
+
+ // Execution AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html#cfn-greengrass-functiondefinitionversion-defaultconfig-execution
+ Execution *FunctionDefinitionVersion_Execution `json:"Execution,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinitionVersion_DefaultConfig) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinitionVersion.DefaultConfig"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_environment.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_environment.go
new file mode 100644
index 0000000000..73e5c52311
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_environment.go
@@ -0,0 +1,52 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinitionVersion_Environment AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinitionVersion.Environment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html
+type FunctionDefinitionVersion_Environment struct {
+
+ // AccessSysfs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html#cfn-greengrass-functiondefinitionversion-environment-accesssysfs
+ AccessSysfs *types.Value `json:"AccessSysfs,omitempty"`
+
+ // Execution AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html#cfn-greengrass-functiondefinitionversion-environment-execution
+ Execution *FunctionDefinitionVersion_Execution `json:"Execution,omitempty"`
+
+ // ResourceAccessPolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html#cfn-greengrass-functiondefinitionversion-environment-resourceaccesspolicies
+ ResourceAccessPolicies []FunctionDefinitionVersion_ResourceAccessPolicy `json:"ResourceAccessPolicies,omitempty"`
+
+ // Variables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html#cfn-greengrass-functiondefinitionversion-environment-variables
+ Variables interface{} `json:"Variables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinitionVersion_Environment) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinitionVersion.Environment"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_execution.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_execution.go
new file mode 100644
index 0000000000..9305d88700
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_execution.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinitionVersion_Execution AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinitionVersion.Execution)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html
+type FunctionDefinitionVersion_Execution struct {
+
+ // IsolationMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html#cfn-greengrass-functiondefinitionversion-execution-isolationmode
+ IsolationMode *types.Value `json:"IsolationMode,omitempty"`
+
+ // RunAs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html#cfn-greengrass-functiondefinitionversion-execution-runas
+ RunAs *FunctionDefinitionVersion_RunAs `json:"RunAs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinitionVersion_Execution) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinitionVersion.Execution"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_function.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_function.go
new file mode 100644
index 0000000000..8531e884e4
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_function.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinitionVersion_Function AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinitionVersion.Function)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-function.html
+type FunctionDefinitionVersion_Function struct {
+
+ // FunctionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-function.html#cfn-greengrass-functiondefinitionversion-function-functionarn
+ FunctionArn *types.Value `json:"FunctionArn,omitempty"`
+
+ // FunctionConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-function.html#cfn-greengrass-functiondefinitionversion-function-functionconfiguration
+ FunctionConfiguration *FunctionDefinitionVersion_FunctionConfiguration `json:"FunctionConfiguration,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-function.html#cfn-greengrass-functiondefinitionversion-function-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinitionVersion_Function) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinitionVersion.Function"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_functionconfiguration.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_functionconfiguration.go
new file mode 100644
index 0000000000..473cceb9b3
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_functionconfiguration.go
@@ -0,0 +1,67 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinitionVersion_FunctionConfiguration AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html
+type FunctionDefinitionVersion_FunctionConfiguration struct {
+
+ // EncodingType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-encodingtype
+ EncodingType *types.Value `json:"EncodingType,omitempty"`
+
+ // Environment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-environment
+ Environment *FunctionDefinitionVersion_Environment `json:"Environment,omitempty"`
+
+ // ExecArgs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-execargs
+ ExecArgs *types.Value `json:"ExecArgs,omitempty"`
+
+ // Executable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-executable
+ Executable *types.Value `json:"Executable,omitempty"`
+
+ // MemorySize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-memorysize
+ MemorySize *types.Value `json:"MemorySize,omitempty"`
+
+ // Pinned AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-pinned
+ Pinned *types.Value `json:"Pinned,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html#cfn-greengrass-functiondefinitionversion-functionconfiguration-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinitionVersion_FunctionConfiguration) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_resourceaccesspolicy.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_resourceaccesspolicy.go
new file mode 100644
index 0000000000..c9ab36de07
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_resourceaccesspolicy.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinitionVersion_ResourceAccessPolicy AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-resourceaccesspolicy.html
+type FunctionDefinitionVersion_ResourceAccessPolicy struct {
+
+ // Permission AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-resourceaccesspolicy.html#cfn-greengrass-functiondefinitionversion-resourceaccesspolicy-permission
+ Permission *types.Value `json:"Permission,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-resourceaccesspolicy.html#cfn-greengrass-functiondefinitionversion-resourceaccesspolicy-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinitionVersion_ResourceAccessPolicy) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_runas.go b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_runas.go
new file mode 100644
index 0000000000..8f76751a60
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-functiondefinitionversion_runas.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FunctionDefinitionVersion_RunAs AWS CloudFormation Resource (AWS::Greengrass::FunctionDefinitionVersion.RunAs)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-runas.html
+type FunctionDefinitionVersion_RunAs struct {
+
+ // Gid AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-runas.html#cfn-greengrass-functiondefinitionversion-runas-gid
+ Gid *types.Value `json:"Gid,omitempty"`
+
+ // Uid AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-runas.html#cfn-greengrass-functiondefinitionversion-runas-uid
+ Uid *types.Value `json:"Uid,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FunctionDefinitionVersion_RunAs) AWSCloudFormationType() string {
+ return "AWS::Greengrass::FunctionDefinitionVersion.RunAs"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-group.go b/goformation/cloudformation/greengrass/aws-greengrass-group.go
new file mode 100644
index 0000000000..15d61b3863
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-group.go
@@ -0,0 +1,123 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Group AWS CloudFormation Resource (AWS::Greengrass::Group)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html
+type Group struct {
+
+ // InitialVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html#cfn-greengrass-group-initialversion
+ InitialVersion *Group_GroupVersion `json:"InitialVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html#cfn-greengrass-group-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html#cfn-greengrass-group-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html#cfn-greengrass-group-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Group) AWSCloudFormationType() string {
+ return "AWS::Greengrass::Group"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Group) MarshalJSON() ([]byte, error) {
+ type Properties Group
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Group) UnmarshalJSON(b []byte) error {
+ type Properties Group
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Group(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-group_groupversion.go b/goformation/cloudformation/greengrass/aws-greengrass-group_groupversion.go
new file mode 100644
index 0000000000..fcb01b7ee4
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-group_groupversion.go
@@ -0,0 +1,67 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Group_GroupVersion AWS CloudFormation Resource (AWS::Greengrass::Group.GroupVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html
+type Group_GroupVersion struct {
+
+ // ConnectorDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html#cfn-greengrass-group-groupversion-connectordefinitionversionarn
+ ConnectorDefinitionVersionArn *types.Value `json:"ConnectorDefinitionVersionArn,omitempty"`
+
+ // CoreDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html#cfn-greengrass-group-groupversion-coredefinitionversionarn
+ CoreDefinitionVersionArn *types.Value `json:"CoreDefinitionVersionArn,omitempty"`
+
+ // DeviceDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html#cfn-greengrass-group-groupversion-devicedefinitionversionarn
+ DeviceDefinitionVersionArn *types.Value `json:"DeviceDefinitionVersionArn,omitempty"`
+
+ // FunctionDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html#cfn-greengrass-group-groupversion-functiondefinitionversionarn
+ FunctionDefinitionVersionArn *types.Value `json:"FunctionDefinitionVersionArn,omitempty"`
+
+ // LoggerDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html#cfn-greengrass-group-groupversion-loggerdefinitionversionarn
+ LoggerDefinitionVersionArn *types.Value `json:"LoggerDefinitionVersionArn,omitempty"`
+
+ // ResourceDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html#cfn-greengrass-group-groupversion-resourcedefinitionversionarn
+ ResourceDefinitionVersionArn *types.Value `json:"ResourceDefinitionVersionArn,omitempty"`
+
+ // SubscriptionDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html#cfn-greengrass-group-groupversion-subscriptiondefinitionversionarn
+ SubscriptionDefinitionVersionArn *types.Value `json:"SubscriptionDefinitionVersionArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Group_GroupVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::Group.GroupVersion"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-groupversion.go b/goformation/cloudformation/greengrass/aws-greengrass-groupversion.go
new file mode 100644
index 0000000000..cf9f13d15e
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-groupversion.go
@@ -0,0 +1,143 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GroupVersion AWS CloudFormation Resource (AWS::Greengrass::GroupVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html
+type GroupVersion struct {
+
+ // ConnectorDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html#cfn-greengrass-groupversion-connectordefinitionversionarn
+ ConnectorDefinitionVersionArn *types.Value `json:"ConnectorDefinitionVersionArn,omitempty"`
+
+ // CoreDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html#cfn-greengrass-groupversion-coredefinitionversionarn
+ CoreDefinitionVersionArn *types.Value `json:"CoreDefinitionVersionArn,omitempty"`
+
+ // DeviceDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html#cfn-greengrass-groupversion-devicedefinitionversionarn
+ DeviceDefinitionVersionArn *types.Value `json:"DeviceDefinitionVersionArn,omitempty"`
+
+ // FunctionDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html#cfn-greengrass-groupversion-functiondefinitionversionarn
+ FunctionDefinitionVersionArn *types.Value `json:"FunctionDefinitionVersionArn,omitempty"`
+
+ // GroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html#cfn-greengrass-groupversion-groupid
+ GroupId *types.Value `json:"GroupId,omitempty"`
+
+ // LoggerDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html#cfn-greengrass-groupversion-loggerdefinitionversionarn
+ LoggerDefinitionVersionArn *types.Value `json:"LoggerDefinitionVersionArn,omitempty"`
+
+ // ResourceDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html#cfn-greengrass-groupversion-resourcedefinitionversionarn
+ ResourceDefinitionVersionArn *types.Value `json:"ResourceDefinitionVersionArn,omitempty"`
+
+ // SubscriptionDefinitionVersionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html#cfn-greengrass-groupversion-subscriptiondefinitionversionarn
+ SubscriptionDefinitionVersionArn *types.Value `json:"SubscriptionDefinitionVersionArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GroupVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::GroupVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GroupVersion) MarshalJSON() ([]byte, error) {
+ type Properties GroupVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GroupVersion) UnmarshalJSON(b []byte) error {
+ type Properties GroupVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GroupVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition.go b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition.go
new file mode 100644
index 0000000000..bd274614df
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition.go
@@ -0,0 +1,118 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoggerDefinition AWS CloudFormation Resource (AWS::Greengrass::LoggerDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html
+type LoggerDefinition struct {
+
+ // InitialVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html#cfn-greengrass-loggerdefinition-initialversion
+ InitialVersion *LoggerDefinition_LoggerDefinitionVersion `json:"InitialVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html#cfn-greengrass-loggerdefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html#cfn-greengrass-loggerdefinition-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoggerDefinition) AWSCloudFormationType() string {
+ return "AWS::Greengrass::LoggerDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LoggerDefinition) MarshalJSON() ([]byte, error) {
+ type Properties LoggerDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LoggerDefinition) UnmarshalJSON(b []byte) error {
+ type Properties LoggerDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LoggerDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition_logger.go b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition_logger.go
new file mode 100644
index 0000000000..c09029deb4
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition_logger.go
@@ -0,0 +1,57 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoggerDefinition_Logger AWS CloudFormation Resource (AWS::Greengrass::LoggerDefinition.Logger)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html
+type LoggerDefinition_Logger struct {
+
+ // Component AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html#cfn-greengrass-loggerdefinition-logger-component
+ Component *types.Value `json:"Component,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html#cfn-greengrass-loggerdefinition-logger-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Level AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html#cfn-greengrass-loggerdefinition-logger-level
+ Level *types.Value `json:"Level,omitempty"`
+
+ // Space AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html#cfn-greengrass-loggerdefinition-logger-space
+ Space *types.Value `json:"Space,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html#cfn-greengrass-loggerdefinition-logger-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoggerDefinition_Logger) AWSCloudFormationType() string {
+ return "AWS::Greengrass::LoggerDefinition.Logger"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition_loggerdefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition_loggerdefinitionversion.go
new file mode 100644
index 0000000000..72cb825f2f
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinition_loggerdefinitionversion.go
@@ -0,0 +1,35 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoggerDefinition_LoggerDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-loggerdefinitionversion.html
+type LoggerDefinition_LoggerDefinitionVersion struct {
+
+ // Loggers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-loggerdefinitionversion.html#cfn-greengrass-loggerdefinition-loggerdefinitionversion-loggers
+ Loggers []LoggerDefinition_Logger `json:"Loggers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoggerDefinition_LoggerDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinitionversion.go
new file mode 100644
index 0000000000..775db0cff6
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinitionversion.go
@@ -0,0 +1,113 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoggerDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::LoggerDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html
+type LoggerDefinitionVersion struct {
+
+ // LoggerDefinitionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html#cfn-greengrass-loggerdefinitionversion-loggerdefinitionid
+ LoggerDefinitionId *types.Value `json:"LoggerDefinitionId,omitempty"`
+
+ // Loggers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html#cfn-greengrass-loggerdefinitionversion-loggers
+ Loggers []LoggerDefinitionVersion_Logger `json:"Loggers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoggerDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::LoggerDefinitionVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LoggerDefinitionVersion) MarshalJSON() ([]byte, error) {
+ type Properties LoggerDefinitionVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LoggerDefinitionVersion) UnmarshalJSON(b []byte) error {
+ type Properties LoggerDefinitionVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LoggerDefinitionVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinitionversion_logger.go b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinitionversion_logger.go
new file mode 100644
index 0000000000..99e74c8921
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-loggerdefinitionversion_logger.go
@@ -0,0 +1,57 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LoggerDefinitionVersion_Logger AWS CloudFormation Resource (AWS::Greengrass::LoggerDefinitionVersion.Logger)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html
+type LoggerDefinitionVersion_Logger struct {
+
+ // Component AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html#cfn-greengrass-loggerdefinitionversion-logger-component
+ Component *types.Value `json:"Component,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html#cfn-greengrass-loggerdefinitionversion-logger-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Level AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html#cfn-greengrass-loggerdefinitionversion-logger-level
+ Level *types.Value `json:"Level,omitempty"`
+
+ // Space AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html#cfn-greengrass-loggerdefinitionversion-logger-space
+ Space *types.Value `json:"Space,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html#cfn-greengrass-loggerdefinitionversion-logger-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LoggerDefinitionVersion_Logger) AWSCloudFormationType() string {
+ return "AWS::Greengrass::LoggerDefinitionVersion.Logger"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition.go
new file mode 100644
index 0000000000..3cd9fbb699
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition.go
@@ -0,0 +1,118 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html
+type ResourceDefinition struct {
+
+ // InitialVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html#cfn-greengrass-resourcedefinition-initialversion
+ InitialVersion *ResourceDefinition_ResourceDefinitionVersion `json:"InitialVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html#cfn-greengrass-resourcedefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html#cfn-greengrass-resourcedefinition-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResourceDefinition) MarshalJSON() ([]byte, error) {
+ type Properties ResourceDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResourceDefinition) UnmarshalJSON(b []byte) error {
+ type Properties ResourceDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResourceDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_groupownersetting.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_groupownersetting.go
new file mode 100644
index 0000000000..4cdd2d175b
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_groupownersetting.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_GroupOwnerSetting AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.GroupOwnerSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html
+type ResourceDefinition_GroupOwnerSetting struct {
+
+ // AutoAddGroupOwner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html#cfn-greengrass-resourcedefinition-groupownersetting-autoaddgroupowner
+ AutoAddGroupOwner *types.Value `json:"AutoAddGroupOwner"`
+
+ // GroupOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html#cfn-greengrass-resourcedefinition-groupownersetting-groupowner
+ GroupOwner *types.Value `json:"GroupOwner,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_GroupOwnerSetting) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.GroupOwnerSetting"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_localdeviceresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_localdeviceresourcedata.go
new file mode 100644
index 0000000000..71f980c5fb
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_localdeviceresourcedata.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_LocalDeviceResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localdeviceresourcedata.html
+type ResourceDefinition_LocalDeviceResourceData struct {
+
+ // GroupOwnerSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localdeviceresourcedata.html#cfn-greengrass-resourcedefinition-localdeviceresourcedata-groupownersetting
+ GroupOwnerSetting *ResourceDefinition_GroupOwnerSetting `json:"GroupOwnerSetting,omitempty"`
+
+ // SourcePath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localdeviceresourcedata.html#cfn-greengrass-resourcedefinition-localdeviceresourcedata-sourcepath
+ SourcePath *types.Value `json:"SourcePath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_LocalDeviceResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_localvolumeresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_localvolumeresourcedata.go
new file mode 100644
index 0000000000..4e9ea889ca
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_localvolumeresourcedata.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_LocalVolumeResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localvolumeresourcedata.html
+type ResourceDefinition_LocalVolumeResourceData struct {
+
+ // DestinationPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localvolumeresourcedata.html#cfn-greengrass-resourcedefinition-localvolumeresourcedata-destinationpath
+ DestinationPath *types.Value `json:"DestinationPath,omitempty"`
+
+ // GroupOwnerSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localvolumeresourcedata.html#cfn-greengrass-resourcedefinition-localvolumeresourcedata-groupownersetting
+ GroupOwnerSetting *ResourceDefinition_GroupOwnerSetting `json:"GroupOwnerSetting,omitempty"`
+
+ // SourcePath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localvolumeresourcedata.html#cfn-greengrass-resourcedefinition-localvolumeresourcedata-sourcepath
+ SourcePath *types.Value `json:"SourcePath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_LocalVolumeResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedatacontainer.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedatacontainer.go
new file mode 100644
index 0000000000..82876c2487
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedatacontainer.go
@@ -0,0 +1,55 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_ResourceDataContainer AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.ResourceDataContainer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html
+type ResourceDefinition_ResourceDataContainer struct {
+
+ // LocalDeviceResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html#cfn-greengrass-resourcedefinition-resourcedatacontainer-localdeviceresourcedata
+ LocalDeviceResourceData *ResourceDefinition_LocalDeviceResourceData `json:"LocalDeviceResourceData,omitempty"`
+
+ // LocalVolumeResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html#cfn-greengrass-resourcedefinition-resourcedatacontainer-localvolumeresourcedata
+ LocalVolumeResourceData *ResourceDefinition_LocalVolumeResourceData `json:"LocalVolumeResourceData,omitempty"`
+
+ // S3MachineLearningModelResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html#cfn-greengrass-resourcedefinition-resourcedatacontainer-s3machinelearningmodelresourcedata
+ S3MachineLearningModelResourceData *ResourceDefinition_S3MachineLearningModelResourceData `json:"S3MachineLearningModelResourceData,omitempty"`
+
+ // SageMakerMachineLearningModelResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html#cfn-greengrass-resourcedefinition-resourcedatacontainer-sagemakermachinelearningmodelresourcedata
+ SageMakerMachineLearningModelResourceData *ResourceDefinition_SageMakerMachineLearningModelResourceData `json:"SageMakerMachineLearningModelResourceData,omitempty"`
+
+ // SecretsManagerSecretResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html#cfn-greengrass-resourcedefinition-resourcedatacontainer-secretsmanagersecretresourcedata
+ SecretsManagerSecretResourceData *ResourceDefinition_SecretsManagerSecretResourceData `json:"SecretsManagerSecretResourceData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_ResourceDataContainer) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.ResourceDataContainer"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedefinitionversion.go
new file mode 100644
index 0000000000..7f00c1d2fd
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedefinitionversion.go
@@ -0,0 +1,35 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_ResourceDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedefinitionversion.html
+type ResourceDefinition_ResourceDefinitionVersion struct {
+
+ // Resources AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedefinitionversion.html#cfn-greengrass-resourcedefinition-resourcedefinitionversion-resources
+ Resources []ResourceDefinition_ResourceInstance `json:"Resources,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_ResourceDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedownloadownersetting.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedownloadownersetting.go
new file mode 100644
index 0000000000..00e0912ea1
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourcedownloadownersetting.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_ResourceDownloadOwnerSetting AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html
+type ResourceDefinition_ResourceDownloadOwnerSetting struct {
+
+ // GroupOwner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html#cfn-greengrass-resourcedefinition-resourcedownloadownersetting-groupowner
+ GroupOwner *types.Value `json:"GroupOwner,omitempty"`
+
+ // GroupPermission AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html#cfn-greengrass-resourcedefinition-resourcedownloadownersetting-grouppermission
+ GroupPermission *types.Value `json:"GroupPermission,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_ResourceDownloadOwnerSetting) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourceinstance.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourceinstance.go
new file mode 100644
index 0000000000..9eabe0295a
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_resourceinstance.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_ResourceInstance AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.ResourceInstance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html
+type ResourceDefinition_ResourceInstance struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html#cfn-greengrass-resourcedefinition-resourceinstance-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html#cfn-greengrass-resourcedefinition-resourceinstance-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ResourceDataContainer AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html#cfn-greengrass-resourcedefinition-resourceinstance-resourcedatacontainer
+ ResourceDataContainer *ResourceDefinition_ResourceDataContainer `json:"ResourceDataContainer,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_ResourceInstance) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.ResourceInstance"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_s3machinelearningmodelresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_s3machinelearningmodelresourcedata.go
new file mode 100644
index 0000000000..2105d316d0
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_s3machinelearningmodelresourcedata.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_S3MachineLearningModelResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-s3machinelearningmodelresourcedata.html
+type ResourceDefinition_S3MachineLearningModelResourceData struct {
+
+ // DestinationPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-s3machinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinition-s3machinelearningmodelresourcedata-destinationpath
+ DestinationPath *types.Value `json:"DestinationPath,omitempty"`
+
+ // OwnerSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-s3machinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinition-s3machinelearningmodelresourcedata-ownersetting
+ OwnerSetting *ResourceDefinition_ResourceDownloadOwnerSetting `json:"OwnerSetting,omitempty"`
+
+ // S3Uri AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-s3machinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinition-s3machinelearningmodelresourcedata-s3uri
+ S3Uri *types.Value `json:"S3Uri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_S3MachineLearningModelResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_sagemakermachinelearningmodelresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_sagemakermachinelearningmodelresourcedata.go
new file mode 100644
index 0000000000..de57216d9a
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_sagemakermachinelearningmodelresourcedata.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_SageMakerMachineLearningModelResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata.html
+type ResourceDefinition_SageMakerMachineLearningModelResourceData struct {
+
+ // DestinationPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata-destinationpath
+ DestinationPath *types.Value `json:"DestinationPath,omitempty"`
+
+ // OwnerSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata-ownersetting
+ OwnerSetting *ResourceDefinition_ResourceDownloadOwnerSetting `json:"OwnerSetting,omitempty"`
+
+ // SageMakerJobArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata-sagemakerjobarn
+ SageMakerJobArn *types.Value `json:"SageMakerJobArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_SageMakerMachineLearningModelResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_secretsmanagersecretresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_secretsmanagersecretresourcedata.go
new file mode 100644
index 0000000000..c06b0481e2
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinition_secretsmanagersecretresourcedata.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinition_SecretsManagerSecretResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-secretsmanagersecretresourcedata.html
+type ResourceDefinition_SecretsManagerSecretResourceData struct {
+
+ // ARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-secretsmanagersecretresourcedata.html#cfn-greengrass-resourcedefinition-secretsmanagersecretresourcedata-arn
+ ARN *types.Value `json:"ARN,omitempty"`
+
+ // AdditionalStagingLabelsToDownload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-secretsmanagersecretresourcedata.html#cfn-greengrass-resourcedefinition-secretsmanagersecretresourcedata-additionalstaginglabelstodownload
+ AdditionalStagingLabelsToDownload *types.Value `json:"AdditionalStagingLabelsToDownload,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinition_SecretsManagerSecretResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion.go
new file mode 100644
index 0000000000..53b1a915e6
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion.go
@@ -0,0 +1,113 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html
+type ResourceDefinitionVersion struct {
+
+ // ResourceDefinitionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html#cfn-greengrass-resourcedefinitionversion-resourcedefinitionid
+ ResourceDefinitionId *types.Value `json:"ResourceDefinitionId,omitempty"`
+
+ // Resources AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html#cfn-greengrass-resourcedefinitionversion-resources
+ Resources []ResourceDefinitionVersion_ResourceInstance `json:"Resources,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResourceDefinitionVersion) MarshalJSON() ([]byte, error) {
+ type Properties ResourceDefinitionVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResourceDefinitionVersion) UnmarshalJSON(b []byte) error {
+ type Properties ResourceDefinitionVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResourceDefinitionVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_groupownersetting.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_groupownersetting.go
new file mode 100644
index 0000000000..0582efb2f9
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_groupownersetting.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_GroupOwnerSetting AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html
+type ResourceDefinitionVersion_GroupOwnerSetting struct {
+
+ // AutoAddGroupOwner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html#cfn-greengrass-resourcedefinitionversion-groupownersetting-autoaddgroupowner
+ AutoAddGroupOwner *types.Value `json:"AutoAddGroupOwner"`
+
+ // GroupOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html#cfn-greengrass-resourcedefinitionversion-groupownersetting-groupowner
+ GroupOwner *types.Value `json:"GroupOwner,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_GroupOwnerSetting) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_localdeviceresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_localdeviceresourcedata.go
new file mode 100644
index 0000000000..45c1a5d5a5
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_localdeviceresourcedata.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_LocalDeviceResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localdeviceresourcedata.html
+type ResourceDefinitionVersion_LocalDeviceResourceData struct {
+
+ // GroupOwnerSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localdeviceresourcedata.html#cfn-greengrass-resourcedefinitionversion-localdeviceresourcedata-groupownersetting
+ GroupOwnerSetting *ResourceDefinitionVersion_GroupOwnerSetting `json:"GroupOwnerSetting,omitempty"`
+
+ // SourcePath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localdeviceresourcedata.html#cfn-greengrass-resourcedefinitionversion-localdeviceresourcedata-sourcepath
+ SourcePath *types.Value `json:"SourcePath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_LocalDeviceResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_localvolumeresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_localvolumeresourcedata.go
new file mode 100644
index 0000000000..dfb64dde32
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_localvolumeresourcedata.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_LocalVolumeResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localvolumeresourcedata.html
+type ResourceDefinitionVersion_LocalVolumeResourceData struct {
+
+ // DestinationPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localvolumeresourcedata.html#cfn-greengrass-resourcedefinitionversion-localvolumeresourcedata-destinationpath
+ DestinationPath *types.Value `json:"DestinationPath,omitempty"`
+
+ // GroupOwnerSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localvolumeresourcedata.html#cfn-greengrass-resourcedefinitionversion-localvolumeresourcedata-groupownersetting
+ GroupOwnerSetting *ResourceDefinitionVersion_GroupOwnerSetting `json:"GroupOwnerSetting,omitempty"`
+
+ // SourcePath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localvolumeresourcedata.html#cfn-greengrass-resourcedefinitionversion-localvolumeresourcedata-sourcepath
+ SourcePath *types.Value `json:"SourcePath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_LocalVolumeResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourcedatacontainer.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourcedatacontainer.go
new file mode 100644
index 0000000000..25153c5bff
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourcedatacontainer.go
@@ -0,0 +1,55 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_ResourceDataContainer AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html
+type ResourceDefinitionVersion_ResourceDataContainer struct {
+
+ // LocalDeviceResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html#cfn-greengrass-resourcedefinitionversion-resourcedatacontainer-localdeviceresourcedata
+ LocalDeviceResourceData *ResourceDefinitionVersion_LocalDeviceResourceData `json:"LocalDeviceResourceData,omitempty"`
+
+ // LocalVolumeResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html#cfn-greengrass-resourcedefinitionversion-resourcedatacontainer-localvolumeresourcedata
+ LocalVolumeResourceData *ResourceDefinitionVersion_LocalVolumeResourceData `json:"LocalVolumeResourceData,omitempty"`
+
+ // S3MachineLearningModelResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html#cfn-greengrass-resourcedefinitionversion-resourcedatacontainer-s3machinelearningmodelresourcedata
+ S3MachineLearningModelResourceData *ResourceDefinitionVersion_S3MachineLearningModelResourceData `json:"S3MachineLearningModelResourceData,omitempty"`
+
+ // SageMakerMachineLearningModelResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html#cfn-greengrass-resourcedefinitionversion-resourcedatacontainer-sagemakermachinelearningmodelresourcedata
+ SageMakerMachineLearningModelResourceData *ResourceDefinitionVersion_SageMakerMachineLearningModelResourceData `json:"SageMakerMachineLearningModelResourceData,omitempty"`
+
+ // SecretsManagerSecretResourceData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html#cfn-greengrass-resourcedefinitionversion-resourcedatacontainer-secretsmanagersecretresourcedata
+ SecretsManagerSecretResourceData *ResourceDefinitionVersion_SecretsManagerSecretResourceData `json:"SecretsManagerSecretResourceData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_ResourceDataContainer) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourcedownloadownersetting.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourcedownloadownersetting.go
new file mode 100644
index 0000000000..deda6a97da
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourcedownloadownersetting.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_ResourceDownloadOwnerSetting AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html
+type ResourceDefinitionVersion_ResourceDownloadOwnerSetting struct {
+
+ // GroupOwner AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html#cfn-greengrass-resourcedefinitionversion-resourcedownloadownersetting-groupowner
+ GroupOwner *types.Value `json:"GroupOwner,omitempty"`
+
+ // GroupPermission AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html#cfn-greengrass-resourcedefinitionversion-resourcedownloadownersetting-grouppermission
+ GroupPermission *types.Value `json:"GroupPermission,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_ResourceDownloadOwnerSetting) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourceinstance.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourceinstance.go
new file mode 100644
index 0000000000..0d22e98148
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_resourceinstance.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_ResourceInstance AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html
+type ResourceDefinitionVersion_ResourceInstance struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html#cfn-greengrass-resourcedefinitionversion-resourceinstance-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html#cfn-greengrass-resourcedefinitionversion-resourceinstance-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ResourceDataContainer AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html#cfn-greengrass-resourcedefinitionversion-resourceinstance-resourcedatacontainer
+ ResourceDataContainer *ResourceDefinitionVersion_ResourceDataContainer `json:"ResourceDataContainer,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_ResourceInstance) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_s3machinelearningmodelresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_s3machinelearningmodelresourcedata.go
new file mode 100644
index 0000000000..8b369d3f2f
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_s3machinelearningmodelresourcedata.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_S3MachineLearningModelResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata.html
+type ResourceDefinitionVersion_S3MachineLearningModelResourceData struct {
+
+ // DestinationPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata-destinationpath
+ DestinationPath *types.Value `json:"DestinationPath,omitempty"`
+
+ // OwnerSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata-ownersetting
+ OwnerSetting *ResourceDefinitionVersion_ResourceDownloadOwnerSetting `json:"OwnerSetting,omitempty"`
+
+ // S3Uri AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata-s3uri
+ S3Uri *types.Value `json:"S3Uri,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_S3MachineLearningModelResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_sagemakermachinelearningmodelresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_sagemakermachinelearningmodelresourcedata.go
new file mode 100644
index 0000000000..f9d5e78d8e
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_sagemakermachinelearningmodelresourcedata.go
@@ -0,0 +1,47 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_SageMakerMachineLearningModelResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata.html
+type ResourceDefinitionVersion_SageMakerMachineLearningModelResourceData struct {
+
+ // DestinationPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata-destinationpath
+ DestinationPath *types.Value `json:"DestinationPath,omitempty"`
+
+ // OwnerSetting AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata-ownersetting
+ OwnerSetting *ResourceDefinitionVersion_ResourceDownloadOwnerSetting `json:"OwnerSetting,omitempty"`
+
+ // SageMakerJobArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata.html#cfn-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata-sagemakerjobarn
+ SageMakerJobArn *types.Value `json:"SageMakerJobArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_SageMakerMachineLearningModelResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_secretsmanagersecretresourcedata.go b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_secretsmanagersecretresourcedata.go
new file mode 100644
index 0000000000..472f6ade5b
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-resourcedefinitionversion_secretsmanagersecretresourcedata.go
@@ -0,0 +1,42 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceDefinitionVersion_SecretsManagerSecretResourceData AWS CloudFormation Resource (AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata.html
+type ResourceDefinitionVersion_SecretsManagerSecretResourceData struct {
+
+ // ARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata.html#cfn-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata-arn
+ ARN *types.Value `json:"ARN,omitempty"`
+
+ // AdditionalStagingLabelsToDownload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata.html#cfn-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata-additionalstaginglabelstodownload
+ AdditionalStagingLabelsToDownload *types.Value `json:"AdditionalStagingLabelsToDownload,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceDefinitionVersion_SecretsManagerSecretResourceData) AWSCloudFormationType() string {
+ return "AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition.go b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition.go
new file mode 100644
index 0000000000..1ad9701b9c
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition.go
@@ -0,0 +1,118 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubscriptionDefinition AWS CloudFormation Resource (AWS::Greengrass::SubscriptionDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html
+type SubscriptionDefinition struct {
+
+ // InitialVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html#cfn-greengrass-subscriptiondefinition-initialversion
+ InitialVersion *SubscriptionDefinition_SubscriptionDefinitionVersion `json:"InitialVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html#cfn-greengrass-subscriptiondefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html#cfn-greengrass-subscriptiondefinition-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubscriptionDefinition) AWSCloudFormationType() string {
+ return "AWS::Greengrass::SubscriptionDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SubscriptionDefinition) MarshalJSON() ([]byte, error) {
+ type Properties SubscriptionDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SubscriptionDefinition) UnmarshalJSON(b []byte) error {
+ type Properties SubscriptionDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SubscriptionDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition_subscription.go b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition_subscription.go
new file mode 100644
index 0000000000..508442174b
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition_subscription.go
@@ -0,0 +1,52 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubscriptionDefinition_Subscription AWS CloudFormation Resource (AWS::Greengrass::SubscriptionDefinition.Subscription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html
+type SubscriptionDefinition_Subscription struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html#cfn-greengrass-subscriptiondefinition-subscription-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html#cfn-greengrass-subscriptiondefinition-subscription-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // Subject AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html#cfn-greengrass-subscriptiondefinition-subscription-subject
+ Subject *types.Value `json:"Subject,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html#cfn-greengrass-subscriptiondefinition-subscription-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubscriptionDefinition_Subscription) AWSCloudFormationType() string {
+ return "AWS::Greengrass::SubscriptionDefinition.Subscription"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition_subscriptiondefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition_subscriptiondefinitionversion.go
new file mode 100644
index 0000000000..0dcbf0736e
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinition_subscriptiondefinitionversion.go
@@ -0,0 +1,35 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubscriptionDefinition_SubscriptionDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::SubscriptionDefinition.SubscriptionDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscriptiondefinitionversion.html
+type SubscriptionDefinition_SubscriptionDefinitionVersion struct {
+
+ // Subscriptions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscriptiondefinitionversion.html#cfn-greengrass-subscriptiondefinition-subscriptiondefinitionversion-subscriptions
+ Subscriptions []SubscriptionDefinition_Subscription `json:"Subscriptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubscriptionDefinition_SubscriptionDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::SubscriptionDefinition.SubscriptionDefinitionVersion"
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinitionversion.go b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinitionversion.go
new file mode 100644
index 0000000000..fda3b387ac
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinitionversion.go
@@ -0,0 +1,113 @@
+package greengrass
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubscriptionDefinitionVersion AWS CloudFormation Resource (AWS::Greengrass::SubscriptionDefinitionVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html
+type SubscriptionDefinitionVersion struct {
+
+ // SubscriptionDefinitionId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html#cfn-greengrass-subscriptiondefinitionversion-subscriptiondefinitionid
+ SubscriptionDefinitionId *types.Value `json:"SubscriptionDefinitionId,omitempty"`
+
+ // Subscriptions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html#cfn-greengrass-subscriptiondefinitionversion-subscriptions
+ Subscriptions []SubscriptionDefinitionVersion_Subscription `json:"Subscriptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubscriptionDefinitionVersion) AWSCloudFormationType() string {
+ return "AWS::Greengrass::SubscriptionDefinitionVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SubscriptionDefinitionVersion) MarshalJSON() ([]byte, error) {
+ type Properties SubscriptionDefinitionVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SubscriptionDefinitionVersion) UnmarshalJSON(b []byte) error {
+ type Properties SubscriptionDefinitionVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SubscriptionDefinitionVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinitionversion_subscription.go b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinitionversion_subscription.go
new file mode 100644
index 0000000000..c266cf9a09
--- /dev/null
+++ b/goformation/cloudformation/greengrass/aws-greengrass-subscriptiondefinitionversion_subscription.go
@@ -0,0 +1,52 @@
+package greengrass
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubscriptionDefinitionVersion_Subscription AWS CloudFormation Resource (AWS::Greengrass::SubscriptionDefinitionVersion.Subscription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html
+type SubscriptionDefinitionVersion_Subscription struct {
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html#cfn-greengrass-subscriptiondefinitionversion-subscription-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html#cfn-greengrass-subscriptiondefinitionversion-subscription-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // Subject AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html#cfn-greengrass-subscriptiondefinitionversion-subscription-subject
+ Subject *types.Value `json:"Subject,omitempty"`
+
+ // Target AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html#cfn-greengrass-subscriptiondefinitionversion-subscription-target
+ Target *types.Value `json:"Target,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubscriptionDefinitionVersion_Subscription) AWSCloudFormationType() string {
+ return "AWS::Greengrass::SubscriptionDefinitionVersion.Subscription"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion.go
new file mode 100644
index 0000000000..3ee15e32e3
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion.go
@@ -0,0 +1,118 @@
+package greengrassv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html
+type ComponentVersion struct {
+
+ // InlineRecipe AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html#cfn-greengrassv2-componentversion-inlinerecipe
+ InlineRecipe *types.Value `json:"InlineRecipe,omitempty"`
+
+ // LambdaFunction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html#cfn-greengrassv2-componentversion-lambdafunction
+ LambdaFunction *ComponentVersion_LambdaFunctionRecipeSource `json:"LambdaFunction,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-componentversion.html#cfn-greengrassv2-componentversion-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ComponentVersion) MarshalJSON() ([]byte, error) {
+ type Properties ComponentVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ComponentVersion) UnmarshalJSON(b []byte) error {
+ type Properties ComponentVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ComponentVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_componentdependencyrequirement.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_componentdependencyrequirement.go
new file mode 100644
index 0000000000..60b52c0884
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_componentdependencyrequirement.go
@@ -0,0 +1,42 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_ComponentDependencyRequirement AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.ComponentDependencyRequirement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentdependencyrequirement.html
+type ComponentVersion_ComponentDependencyRequirement struct {
+
+ // DependencyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentdependencyrequirement.html#cfn-greengrassv2-componentversion-componentdependencyrequirement-dependencytype
+ DependencyType *types.Value `json:"DependencyType,omitempty"`
+
+ // VersionRequirement AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentdependencyrequirement.html#cfn-greengrassv2-componentversion-componentdependencyrequirement-versionrequirement
+ VersionRequirement *types.Value `json:"VersionRequirement,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_ComponentDependencyRequirement) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.ComponentDependencyRequirement"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_componentplatform.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_componentplatform.go
new file mode 100644
index 0000000000..d2b2e3a165
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_componentplatform.go
@@ -0,0 +1,42 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_ComponentPlatform AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.ComponentPlatform)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentplatform.html
+type ComponentVersion_ComponentPlatform struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentplatform.html#cfn-greengrassv2-componentversion-componentplatform-attributes
+ Attributes map[string]*types.Value `json:"Attributes,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-componentplatform.html#cfn-greengrassv2-componentversion-componentplatform-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_ComponentPlatform) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.ComponentPlatform"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdacontainerparams.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdacontainerparams.go
new file mode 100644
index 0000000000..b290787209
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdacontainerparams.go
@@ -0,0 +1,52 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_LambdaContainerParams AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.LambdaContainerParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdacontainerparams.html
+type ComponentVersion_LambdaContainerParams struct {
+
+ // Devices AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdacontainerparams.html#cfn-greengrassv2-componentversion-lambdacontainerparams-devices
+ Devices []ComponentVersion_LambdaDeviceMount `json:"Devices,omitempty"`
+
+ // MemorySizeInKB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdacontainerparams.html#cfn-greengrassv2-componentversion-lambdacontainerparams-memorysizeinkb
+ MemorySizeInKB *types.Value `json:"MemorySizeInKB,omitempty"`
+
+ // MountROSysfs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdacontainerparams.html#cfn-greengrassv2-componentversion-lambdacontainerparams-mountrosysfs
+ MountROSysfs *types.Value `json:"MountROSysfs,omitempty"`
+
+ // Volumes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdacontainerparams.html#cfn-greengrassv2-componentversion-lambdacontainerparams-volumes
+ Volumes []ComponentVersion_LambdaVolumeMount `json:"Volumes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_LambdaContainerParams) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.LambdaContainerParams"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdadevicemount.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdadevicemount.go
new file mode 100644
index 0000000000..6578af9766
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdadevicemount.go
@@ -0,0 +1,47 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_LambdaDeviceMount AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdadevicemount.html
+type ComponentVersion_LambdaDeviceMount struct {
+
+ // AddGroupOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdadevicemount.html#cfn-greengrassv2-componentversion-lambdadevicemount-addgroupowner
+ AddGroupOwner *types.Value `json:"AddGroupOwner,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdadevicemount.html#cfn-greengrassv2-componentversion-lambdadevicemount-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Permission AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdadevicemount.html#cfn-greengrassv2-componentversion-lambdadevicemount-permission
+ Permission *types.Value `json:"Permission,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_LambdaDeviceMount) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdaeventsource.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdaeventsource.go
new file mode 100644
index 0000000000..93cc67feac
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdaeventsource.go
@@ -0,0 +1,42 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_LambdaEventSource AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.LambdaEventSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaeventsource.html
+type ComponentVersion_LambdaEventSource struct {
+
+ // Topic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaeventsource.html#cfn-greengrassv2-componentversion-lambdaeventsource-topic
+ Topic *types.Value `json:"Topic,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaeventsource.html#cfn-greengrassv2-componentversion-lambdaeventsource-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_LambdaEventSource) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.LambdaEventSource"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdaexecutionparameters.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdaexecutionparameters.go
new file mode 100644
index 0000000000..2a8129ac76
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdaexecutionparameters.go
@@ -0,0 +1,87 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_LambdaExecutionParameters AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html
+type ComponentVersion_LambdaExecutionParameters struct {
+
+ // EnvironmentVariables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-environmentvariables
+ EnvironmentVariables map[string]*types.Value `json:"EnvironmentVariables,omitempty"`
+
+ // EventSources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-eventsources
+ EventSources []ComponentVersion_LambdaEventSource `json:"EventSources,omitempty"`
+
+ // ExecArgs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-execargs
+ ExecArgs *types.Value `json:"ExecArgs,omitempty"`
+
+ // InputPayloadEncodingType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-inputpayloadencodingtype
+ InputPayloadEncodingType *types.Value `json:"InputPayloadEncodingType,omitempty"`
+
+ // LinuxProcessParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-linuxprocessparams
+ LinuxProcessParams *ComponentVersion_LambdaLinuxProcessParams `json:"LinuxProcessParams,omitempty"`
+
+ // MaxIdleTimeInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-maxidletimeinseconds
+ MaxIdleTimeInSeconds *types.Value `json:"MaxIdleTimeInSeconds,omitempty"`
+
+ // MaxInstancesCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-maxinstancescount
+ MaxInstancesCount *types.Value `json:"MaxInstancesCount,omitempty"`
+
+ // MaxQueueSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-maxqueuesize
+ MaxQueueSize *types.Value `json:"MaxQueueSize,omitempty"`
+
+ // Pinned AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-pinned
+ Pinned *types.Value `json:"Pinned,omitempty"`
+
+ // StatusTimeoutInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-statustimeoutinseconds
+ StatusTimeoutInSeconds *types.Value `json:"StatusTimeoutInSeconds,omitempty"`
+
+ // TimeoutInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdaexecutionparameters.html#cfn-greengrassv2-componentversion-lambdaexecutionparameters-timeoutinseconds
+ TimeoutInSeconds *types.Value `json:"TimeoutInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_LambdaExecutionParameters) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdafunctionrecipesource.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdafunctionrecipesource.go
new file mode 100644
index 0000000000..aff0efbefb
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdafunctionrecipesource.go
@@ -0,0 +1,62 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_LambdaFunctionRecipeSource AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html
+type ComponentVersion_LambdaFunctionRecipeSource struct {
+
+ // ComponentDependencies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html#cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentdependencies
+ ComponentDependencies map[string]ComponentVersion_ComponentDependencyRequirement `json:"ComponentDependencies,omitempty"`
+
+ // ComponentLambdaParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html#cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentlambdaparameters
+ ComponentLambdaParameters *ComponentVersion_LambdaExecutionParameters `json:"ComponentLambdaParameters,omitempty"`
+
+ // ComponentName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html#cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentname
+ ComponentName *types.Value `json:"ComponentName,omitempty"`
+
+ // ComponentPlatforms AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html#cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentplatforms
+ ComponentPlatforms []ComponentVersion_ComponentPlatform `json:"ComponentPlatforms,omitempty"`
+
+ // ComponentVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html#cfn-greengrassv2-componentversion-lambdafunctionrecipesource-componentversion
+ ComponentVersion *types.Value `json:"ComponentVersion,omitempty"`
+
+ // LambdaArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdafunctionrecipesource.html#cfn-greengrassv2-componentversion-lambdafunctionrecipesource-lambdaarn
+ LambdaArn *types.Value `json:"LambdaArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_LambdaFunctionRecipeSource) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdalinuxprocessparams.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdalinuxprocessparams.go
new file mode 100644
index 0000000000..ac0aef591c
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdalinuxprocessparams.go
@@ -0,0 +1,42 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_LambdaLinuxProcessParams AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdalinuxprocessparams.html
+type ComponentVersion_LambdaLinuxProcessParams struct {
+
+ // ContainerParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdalinuxprocessparams.html#cfn-greengrassv2-componentversion-lambdalinuxprocessparams-containerparams
+ ContainerParams *ComponentVersion_LambdaContainerParams `json:"ContainerParams,omitempty"`
+
+ // IsolationMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdalinuxprocessparams.html#cfn-greengrassv2-componentversion-lambdalinuxprocessparams-isolationmode
+ IsolationMode *types.Value `json:"IsolationMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_LambdaLinuxProcessParams) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams"
+}
diff --git a/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdavolumemount.go b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdavolumemount.go
new file mode 100644
index 0000000000..c2a5539b34
--- /dev/null
+++ b/goformation/cloudformation/greengrassv2/aws-greengrassv2-componentversion_lambdavolumemount.go
@@ -0,0 +1,52 @@
+package greengrassv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ComponentVersion_LambdaVolumeMount AWS CloudFormation Resource (AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdavolumemount.html
+type ComponentVersion_LambdaVolumeMount struct {
+
+ // AddGroupOwner AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdavolumemount.html#cfn-greengrassv2-componentversion-lambdavolumemount-addgroupowner
+ AddGroupOwner *types.Value `json:"AddGroupOwner,omitempty"`
+
+ // DestinationPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdavolumemount.html#cfn-greengrassv2-componentversion-lambdavolumemount-destinationpath
+ DestinationPath *types.Value `json:"DestinationPath,omitempty"`
+
+ // Permission AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdavolumemount.html#cfn-greengrassv2-componentversion-lambdavolumemount-permission
+ Permission *types.Value `json:"Permission,omitempty"`
+
+ // SourcePath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrassv2-componentversion-lambdavolumemount.html#cfn-greengrassv2-componentversion-lambdavolumemount-sourcepath
+ SourcePath *types.Value `json:"SourcePath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ComponentVersion_LambdaVolumeMount) AWSCloudFormationType() string {
+ return "AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config.go b/goformation/cloudformation/groundstation/aws-groundstation-config.go
new file mode 100644
index 0000000000..d9097fbdd2
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config.go
@@ -0,0 +1,119 @@
+package groundstation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config AWS CloudFormation Resource (AWS::GroundStation::Config)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-config.html
+type Config struct {
+
+ // ConfigData AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-config.html#cfn-groundstation-config-configdata
+ ConfigData *Config_ConfigData `json:"ConfigData,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-config.html#cfn-groundstation-config-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-config.html#cfn-groundstation-config-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Config) MarshalJSON() ([]byte, error) {
+ type Properties Config
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Config) UnmarshalJSON(b []byte) error {
+ type Properties Config
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Config(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_antennadownlinkconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_antennadownlinkconfig.go
new file mode 100644
index 0000000000..d5261d39f8
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_antennadownlinkconfig.go
@@ -0,0 +1,35 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_AntennaDownlinkConfig AWS CloudFormation Resource (AWS::GroundStation::Config.AntennaDownlinkConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkconfig.html
+type Config_AntennaDownlinkConfig struct {
+
+ // SpectrumConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkconfig.html#cfn-groundstation-config-antennadownlinkconfig-spectrumconfig
+ SpectrumConfig *Config_SpectrumConfig `json:"SpectrumConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_AntennaDownlinkConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.AntennaDownlinkConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_antennadownlinkdemoddecodeconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_antennadownlinkdemoddecodeconfig.go
new file mode 100644
index 0000000000..f0bb918562
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_antennadownlinkdemoddecodeconfig.go
@@ -0,0 +1,45 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_AntennaDownlinkDemodDecodeConfig AWS CloudFormation Resource (AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkdemoddecodeconfig.html
+type Config_AntennaDownlinkDemodDecodeConfig struct {
+
+ // DecodeConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkdemoddecodeconfig.html#cfn-groundstation-config-antennadownlinkdemoddecodeconfig-decodeconfig
+ DecodeConfig *Config_DecodeConfig `json:"DecodeConfig,omitempty"`
+
+ // DemodulationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkdemoddecodeconfig.html#cfn-groundstation-config-antennadownlinkdemoddecodeconfig-demodulationconfig
+ DemodulationConfig *Config_DemodulationConfig `json:"DemodulationConfig,omitempty"`
+
+ // SpectrumConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennadownlinkdemoddecodeconfig.html#cfn-groundstation-config-antennadownlinkdemoddecodeconfig-spectrumconfig
+ SpectrumConfig *Config_SpectrumConfig `json:"SpectrumConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_AntennaDownlinkDemodDecodeConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_antennauplinkconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_antennauplinkconfig.go
new file mode 100644
index 0000000000..363315c718
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_antennauplinkconfig.go
@@ -0,0 +1,47 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_AntennaUplinkConfig AWS CloudFormation Resource (AWS::GroundStation::Config.AntennaUplinkConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennauplinkconfig.html
+type Config_AntennaUplinkConfig struct {
+
+ // SpectrumConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennauplinkconfig.html#cfn-groundstation-config-antennauplinkconfig-spectrumconfig
+ SpectrumConfig *Config_UplinkSpectrumConfig `json:"SpectrumConfig,omitempty"`
+
+ // TargetEirp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennauplinkconfig.html#cfn-groundstation-config-antennauplinkconfig-targeteirp
+ TargetEirp *Config_Eirp `json:"TargetEirp,omitempty"`
+
+ // TransmitDisabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-antennauplinkconfig.html#cfn-groundstation-config-antennauplinkconfig-transmitdisabled
+ TransmitDisabled *types.Value `json:"TransmitDisabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_AntennaUplinkConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.AntennaUplinkConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_configdata.go b/goformation/cloudformation/groundstation/aws-groundstation-config_configdata.go
new file mode 100644
index 0000000000..0b36b66380
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_configdata.go
@@ -0,0 +1,65 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_ConfigData AWS CloudFormation Resource (AWS::GroundStation::Config.ConfigData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html
+type Config_ConfigData struct {
+
+ // AntennaDownlinkConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html#cfn-groundstation-config-configdata-antennadownlinkconfig
+ AntennaDownlinkConfig *Config_AntennaDownlinkConfig `json:"AntennaDownlinkConfig,omitempty"`
+
+ // AntennaDownlinkDemodDecodeConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html#cfn-groundstation-config-configdata-antennadownlinkdemoddecodeconfig
+ AntennaDownlinkDemodDecodeConfig *Config_AntennaDownlinkDemodDecodeConfig `json:"AntennaDownlinkDemodDecodeConfig,omitempty"`
+
+ // AntennaUplinkConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html#cfn-groundstation-config-configdata-antennauplinkconfig
+ AntennaUplinkConfig *Config_AntennaUplinkConfig `json:"AntennaUplinkConfig,omitempty"`
+
+ // DataflowEndpointConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html#cfn-groundstation-config-configdata-dataflowendpointconfig
+ DataflowEndpointConfig *Config_DataflowEndpointConfig `json:"DataflowEndpointConfig,omitempty"`
+
+ // S3RecordingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html#cfn-groundstation-config-configdata-s3recordingconfig
+ S3RecordingConfig *Config_S3RecordingConfig `json:"S3RecordingConfig,omitempty"`
+
+ // TrackingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html#cfn-groundstation-config-configdata-trackingconfig
+ TrackingConfig *Config_TrackingConfig `json:"TrackingConfig,omitempty"`
+
+ // UplinkEchoConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-configdata.html#cfn-groundstation-config-configdata-uplinkechoconfig
+ UplinkEchoConfig *Config_UplinkEchoConfig `json:"UplinkEchoConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_ConfigData) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.ConfigData"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_dataflowendpointconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_dataflowendpointconfig.go
new file mode 100644
index 0000000000..8bdd7553eb
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_dataflowendpointconfig.go
@@ -0,0 +1,42 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_DataflowEndpointConfig AWS CloudFormation Resource (AWS::GroundStation::Config.DataflowEndpointConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-dataflowendpointconfig.html
+type Config_DataflowEndpointConfig struct {
+
+ // DataflowEndpointName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-dataflowendpointconfig.html#cfn-groundstation-config-dataflowendpointconfig-dataflowendpointname
+ DataflowEndpointName *types.Value `json:"DataflowEndpointName,omitempty"`
+
+ // DataflowEndpointRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-dataflowendpointconfig.html#cfn-groundstation-config-dataflowendpointconfig-dataflowendpointregion
+ DataflowEndpointRegion *types.Value `json:"DataflowEndpointRegion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_DataflowEndpointConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.DataflowEndpointConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_decodeconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_decodeconfig.go
new file mode 100644
index 0000000000..e54a6524ec
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_decodeconfig.go
@@ -0,0 +1,37 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_DecodeConfig AWS CloudFormation Resource (AWS::GroundStation::Config.DecodeConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-decodeconfig.html
+type Config_DecodeConfig struct {
+
+ // UnvalidatedJSON AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-decodeconfig.html#cfn-groundstation-config-decodeconfig-unvalidatedjson
+ UnvalidatedJSON *types.Value `json:"UnvalidatedJSON,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_DecodeConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.DecodeConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_demodulationconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_demodulationconfig.go
new file mode 100644
index 0000000000..2d0dde53f5
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_demodulationconfig.go
@@ -0,0 +1,37 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_DemodulationConfig AWS CloudFormation Resource (AWS::GroundStation::Config.DemodulationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-demodulationconfig.html
+type Config_DemodulationConfig struct {
+
+ // UnvalidatedJSON AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-demodulationconfig.html#cfn-groundstation-config-demodulationconfig-unvalidatedjson
+ UnvalidatedJSON *types.Value `json:"UnvalidatedJSON,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_DemodulationConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.DemodulationConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_eirp.go b/goformation/cloudformation/groundstation/aws-groundstation-config_eirp.go
new file mode 100644
index 0000000000..c8435104bc
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_eirp.go
@@ -0,0 +1,42 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_Eirp AWS CloudFormation Resource (AWS::GroundStation::Config.Eirp)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-eirp.html
+type Config_Eirp struct {
+
+ // Units AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-eirp.html#cfn-groundstation-config-eirp-units
+ Units *types.Value `json:"Units,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-eirp.html#cfn-groundstation-config-eirp-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_Eirp) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.Eirp"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_frequency.go b/goformation/cloudformation/groundstation/aws-groundstation-config_frequency.go
new file mode 100644
index 0000000000..e19b57d83e
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_frequency.go
@@ -0,0 +1,42 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_Frequency AWS CloudFormation Resource (AWS::GroundStation::Config.Frequency)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html
+type Config_Frequency struct {
+
+ // Units AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html#cfn-groundstation-config-frequency-units
+ Units *types.Value `json:"Units,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequency.html#cfn-groundstation-config-frequency-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_Frequency) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.Frequency"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_frequencybandwidth.go b/goformation/cloudformation/groundstation/aws-groundstation-config_frequencybandwidth.go
new file mode 100644
index 0000000000..fdfc416d0c
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_frequencybandwidth.go
@@ -0,0 +1,42 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_FrequencyBandwidth AWS CloudFormation Resource (AWS::GroundStation::Config.FrequencyBandwidth)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequencybandwidth.html
+type Config_FrequencyBandwidth struct {
+
+ // Units AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequencybandwidth.html#cfn-groundstation-config-frequencybandwidth-units
+ Units *types.Value `json:"Units,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-frequencybandwidth.html#cfn-groundstation-config-frequencybandwidth-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_FrequencyBandwidth) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.FrequencyBandwidth"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_s3recordingconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_s3recordingconfig.go
new file mode 100644
index 0000000000..4bc7bad7f4
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_s3recordingconfig.go
@@ -0,0 +1,47 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_S3RecordingConfig AWS CloudFormation Resource (AWS::GroundStation::Config.S3RecordingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-s3recordingconfig.html
+type Config_S3RecordingConfig struct {
+
+ // BucketArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-s3recordingconfig.html#cfn-groundstation-config-s3recordingconfig-bucketarn
+ BucketArn *types.Value `json:"BucketArn,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-s3recordingconfig.html#cfn-groundstation-config-s3recordingconfig-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-s3recordingconfig.html#cfn-groundstation-config-s3recordingconfig-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_S3RecordingConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.S3RecordingConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_spectrumconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_spectrumconfig.go
new file mode 100644
index 0000000000..8d98973151
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_spectrumconfig.go
@@ -0,0 +1,47 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_SpectrumConfig AWS CloudFormation Resource (AWS::GroundStation::Config.SpectrumConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html
+type Config_SpectrumConfig struct {
+
+ // Bandwidth AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html#cfn-groundstation-config-spectrumconfig-bandwidth
+ Bandwidth *Config_FrequencyBandwidth `json:"Bandwidth,omitempty"`
+
+ // CenterFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html#cfn-groundstation-config-spectrumconfig-centerfrequency
+ CenterFrequency *Config_Frequency `json:"CenterFrequency,omitempty"`
+
+ // Polarization AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-spectrumconfig.html#cfn-groundstation-config-spectrumconfig-polarization
+ Polarization *types.Value `json:"Polarization,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_SpectrumConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.SpectrumConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_trackingconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_trackingconfig.go
new file mode 100644
index 0000000000..d92768face
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_trackingconfig.go
@@ -0,0 +1,37 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_TrackingConfig AWS CloudFormation Resource (AWS::GroundStation::Config.TrackingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-trackingconfig.html
+type Config_TrackingConfig struct {
+
+ // Autotrack AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-trackingconfig.html#cfn-groundstation-config-trackingconfig-autotrack
+ Autotrack *types.Value `json:"Autotrack,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_TrackingConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.TrackingConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_uplinkechoconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_uplinkechoconfig.go
new file mode 100644
index 0000000000..bd2dfa619f
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_uplinkechoconfig.go
@@ -0,0 +1,42 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_UplinkEchoConfig AWS CloudFormation Resource (AWS::GroundStation::Config.UplinkEchoConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkechoconfig.html
+type Config_UplinkEchoConfig struct {
+
+ // AntennaUplinkConfigArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkechoconfig.html#cfn-groundstation-config-uplinkechoconfig-antennauplinkconfigarn
+ AntennaUplinkConfigArn *types.Value `json:"AntennaUplinkConfigArn,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkechoconfig.html#cfn-groundstation-config-uplinkechoconfig-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_UplinkEchoConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.UplinkEchoConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-config_uplinkspectrumconfig.go b/goformation/cloudformation/groundstation/aws-groundstation-config_uplinkspectrumconfig.go
new file mode 100644
index 0000000000..292b8eff64
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-config_uplinkspectrumconfig.go
@@ -0,0 +1,42 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Config_UplinkSpectrumConfig AWS CloudFormation Resource (AWS::GroundStation::Config.UplinkSpectrumConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkspectrumconfig.html
+type Config_UplinkSpectrumConfig struct {
+
+ // CenterFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkspectrumconfig.html#cfn-groundstation-config-uplinkspectrumconfig-centerfrequency
+ CenterFrequency *Config_Frequency `json:"CenterFrequency,omitempty"`
+
+ // Polarization AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-config-uplinkspectrumconfig.html#cfn-groundstation-config-uplinkspectrumconfig-polarization
+ Polarization *types.Value `json:"Polarization,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Config_UplinkSpectrumConfig) AWSCloudFormationType() string {
+ return "AWS::GroundStation::Config.UplinkSpectrumConfig"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup.go b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup.go
new file mode 100644
index 0000000000..12507163eb
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup.go
@@ -0,0 +1,112 @@
+package groundstation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataflowEndpointGroup AWS CloudFormation Resource (AWS::GroundStation::DataflowEndpointGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html
+type DataflowEndpointGroup struct {
+
+ // EndpointDetails AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html#cfn-groundstation-dataflowendpointgroup-endpointdetails
+ EndpointDetails []DataflowEndpointGroup_EndpointDetails `json:"EndpointDetails,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-dataflowendpointgroup.html#cfn-groundstation-dataflowendpointgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataflowEndpointGroup) AWSCloudFormationType() string {
+ return "AWS::GroundStation::DataflowEndpointGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DataflowEndpointGroup) MarshalJSON() ([]byte, error) {
+ type Properties DataflowEndpointGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DataflowEndpointGroup) UnmarshalJSON(b []byte) error {
+ type Properties DataflowEndpointGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DataflowEndpointGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_dataflowendpoint.go b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_dataflowendpoint.go
new file mode 100644
index 0000000000..caadc0b7f8
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_dataflowendpoint.go
@@ -0,0 +1,47 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataflowEndpointGroup_DataflowEndpoint AWS CloudFormation Resource (AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-dataflowendpoint.html
+type DataflowEndpointGroup_DataflowEndpoint struct {
+
+ // Address AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-dataflowendpoint.html#cfn-groundstation-dataflowendpointgroup-dataflowendpoint-address
+ Address *DataflowEndpointGroup_SocketAddress `json:"Address,omitempty"`
+
+ // Mtu AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-dataflowendpoint.html#cfn-groundstation-dataflowendpointgroup-dataflowendpoint-mtu
+ Mtu *types.Value `json:"Mtu,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-dataflowendpoint.html#cfn-groundstation-dataflowendpointgroup-dataflowendpoint-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataflowEndpointGroup_DataflowEndpoint) AWSCloudFormationType() string {
+ return "AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_endpointdetails.go b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_endpointdetails.go
new file mode 100644
index 0000000000..a6540f2a24
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_endpointdetails.go
@@ -0,0 +1,40 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataflowEndpointGroup_EndpointDetails AWS CloudFormation Resource (AWS::GroundStation::DataflowEndpointGroup.EndpointDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html
+type DataflowEndpointGroup_EndpointDetails struct {
+
+ // Endpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html#cfn-groundstation-dataflowendpointgroup-endpointdetails-endpoint
+ Endpoint *DataflowEndpointGroup_DataflowEndpoint `json:"Endpoint,omitempty"`
+
+ // SecurityDetails AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-endpointdetails.html#cfn-groundstation-dataflowendpointgroup-endpointdetails-securitydetails
+ SecurityDetails *DataflowEndpointGroup_SecurityDetails `json:"SecurityDetails,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataflowEndpointGroup_EndpointDetails) AWSCloudFormationType() string {
+ return "AWS::GroundStation::DataflowEndpointGroup.EndpointDetails"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_securitydetails.go b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_securitydetails.go
new file mode 100644
index 0000000000..2f7db8e598
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_securitydetails.go
@@ -0,0 +1,47 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataflowEndpointGroup_SecurityDetails AWS CloudFormation Resource (AWS::GroundStation::DataflowEndpointGroup.SecurityDetails)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-securitydetails.html
+type DataflowEndpointGroup_SecurityDetails struct {
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-securitydetails.html#cfn-groundstation-dataflowendpointgroup-securitydetails-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-securitydetails.html#cfn-groundstation-dataflowendpointgroup-securitydetails-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-securitydetails.html#cfn-groundstation-dataflowendpointgroup-securitydetails-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataflowEndpointGroup_SecurityDetails) AWSCloudFormationType() string {
+ return "AWS::GroundStation::DataflowEndpointGroup.SecurityDetails"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_socketaddress.go b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_socketaddress.go
new file mode 100644
index 0000000000..7fa8ae56c8
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-dataflowendpointgroup_socketaddress.go
@@ -0,0 +1,42 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataflowEndpointGroup_SocketAddress AWS CloudFormation Resource (AWS::GroundStation::DataflowEndpointGroup.SocketAddress)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-socketaddress.html
+type DataflowEndpointGroup_SocketAddress struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-socketaddress.html#cfn-groundstation-dataflowendpointgroup-socketaddress-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-dataflowendpointgroup-socketaddress.html#cfn-groundstation-dataflowendpointgroup-socketaddress-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataflowEndpointGroup_SocketAddress) AWSCloudFormationType() string {
+ return "AWS::GroundStation::DataflowEndpointGroup.SocketAddress"
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-missionprofile.go b/goformation/cloudformation/groundstation/aws-groundstation-missionprofile.go
new file mode 100644
index 0000000000..854c332192
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-missionprofile.go
@@ -0,0 +1,139 @@
+package groundstation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// MissionProfile AWS CloudFormation Resource (AWS::GroundStation::MissionProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html
+type MissionProfile struct {
+
+ // ContactPostPassDurationSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html#cfn-groundstation-missionprofile-contactpostpassdurationseconds
+ ContactPostPassDurationSeconds *types.Value `json:"ContactPostPassDurationSeconds,omitempty"`
+
+ // ContactPrePassDurationSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html#cfn-groundstation-missionprofile-contactprepassdurationseconds
+ ContactPrePassDurationSeconds *types.Value `json:"ContactPrePassDurationSeconds,omitempty"`
+
+ // DataflowEdges AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html#cfn-groundstation-missionprofile-dataflowedges
+ DataflowEdges []MissionProfile_DataflowEdge `json:"DataflowEdges,omitempty"`
+
+ // MinimumViableContactDurationSeconds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html#cfn-groundstation-missionprofile-minimumviablecontactdurationseconds
+ MinimumViableContactDurationSeconds *types.Value `json:"MinimumViableContactDurationSeconds"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html#cfn-groundstation-missionprofile-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html#cfn-groundstation-missionprofile-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TrackingConfigArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-groundstation-missionprofile.html#cfn-groundstation-missionprofile-trackingconfigarn
+ TrackingConfigArn *types.Value `json:"TrackingConfigArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MissionProfile) AWSCloudFormationType() string {
+ return "AWS::GroundStation::MissionProfile"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MissionProfile) MarshalJSON() ([]byte, error) {
+ type Properties MissionProfile
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MissionProfile) UnmarshalJSON(b []byte) error {
+ type Properties MissionProfile
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MissionProfile(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/groundstation/aws-groundstation-missionprofile_dataflowedge.go b/goformation/cloudformation/groundstation/aws-groundstation-missionprofile_dataflowedge.go
new file mode 100644
index 0000000000..6435a3cfbc
--- /dev/null
+++ b/goformation/cloudformation/groundstation/aws-groundstation-missionprofile_dataflowedge.go
@@ -0,0 +1,42 @@
+package groundstation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MissionProfile_DataflowEdge AWS CloudFormation Resource (AWS::GroundStation::MissionProfile.DataflowEdge)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-missionprofile-dataflowedge.html
+type MissionProfile_DataflowEdge struct {
+
+ // Destination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-missionprofile-dataflowedge.html#cfn-groundstation-missionprofile-dataflowedge-destination
+ Destination *types.Value `json:"Destination,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-groundstation-missionprofile-dataflowedge.html#cfn-groundstation-missionprofile-dataflowedge-source
+ Source *types.Value `json:"Source,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MissionProfile_DataflowEdge) AWSCloudFormationType() string {
+ return "AWS::GroundStation::MissionProfile.DataflowEdge"
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-detector.go b/goformation/cloudformation/guardduty/aws-guardduty-detector.go
new file mode 100644
index 0000000000..b5aa735024
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-detector.go
@@ -0,0 +1,118 @@
+package guardduty
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector AWS CloudFormation Resource (AWS::GuardDuty::Detector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html
+type Detector struct {
+
+ // DataSources AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html#cfn-guardduty-detector-datasources
+ DataSources *Detector_CFNDataSourceConfigurations `json:"DataSources,omitempty"`
+
+ // Enable AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html#cfn-guardduty-detector-enable
+ Enable *types.Value `json:"Enable"`
+
+ // FindingPublishingFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-detector.html#cfn-guardduty-detector-findingpublishingfrequency
+ FindingPublishingFrequency *types.Value `json:"FindingPublishingFrequency,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::Detector"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Detector) MarshalJSON() ([]byte, error) {
+ type Properties Detector
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Detector) UnmarshalJSON(b []byte) error {
+ type Properties Detector
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Detector(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-detector_cfndatasourceconfigurations.go b/goformation/cloudformation/guardduty/aws-guardduty-detector_cfndatasourceconfigurations.go
new file mode 100644
index 0000000000..bd092528d9
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-detector_cfndatasourceconfigurations.go
@@ -0,0 +1,35 @@
+package guardduty
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_CFNDataSourceConfigurations AWS CloudFormation Resource (AWS::GuardDuty::Detector.CFNDataSourceConfigurations)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfndatasourceconfigurations.html
+type Detector_CFNDataSourceConfigurations struct {
+
+ // S3Logs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfndatasourceconfigurations.html#cfn-guardduty-detector-cfndatasourceconfigurations-s3logs
+ S3Logs *Detector_CFNS3LogsConfiguration `json:"S3Logs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_CFNDataSourceConfigurations) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::Detector.CFNDataSourceConfigurations"
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-detector_cfns3logsconfiguration.go b/goformation/cloudformation/guardduty/aws-guardduty-detector_cfns3logsconfiguration.go
new file mode 100644
index 0000000000..b863e7913d
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-detector_cfns3logsconfiguration.go
@@ -0,0 +1,37 @@
+package guardduty
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Detector_CFNS3LogsConfiguration AWS CloudFormation Resource (AWS::GuardDuty::Detector.CFNS3LogsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfns3logsconfiguration.html
+type Detector_CFNS3LogsConfiguration struct {
+
+ // Enable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-detector-cfns3logsconfiguration.html#cfn-guardduty-detector-cfns3logsconfiguration-enable
+ Enable *types.Value `json:"Enable,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Detector_CFNS3LogsConfiguration) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::Detector.CFNS3LogsConfiguration"
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-filter.go b/goformation/cloudformation/guardduty/aws-guardduty-filter.go
new file mode 100644
index 0000000000..09e6585107
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-filter.go
@@ -0,0 +1,133 @@
+package guardduty
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Filter AWS CloudFormation Resource (AWS::GuardDuty::Filter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html
+type Filter struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DetectorId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-detectorid
+ DetectorId *types.Value `json:"DetectorId,omitempty"`
+
+ // FindingCriteria AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-findingcriteria
+ FindingCriteria *Filter_FindingCriteria `json:"FindingCriteria,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Rank AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-filter.html#cfn-guardduty-filter-rank
+ Rank *types.Value `json:"Rank"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Filter) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::Filter"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Filter) MarshalJSON() ([]byte, error) {
+ type Properties Filter
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Filter) UnmarshalJSON(b []byte) error {
+ type Properties Filter
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Filter(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-filter_condition.go b/goformation/cloudformation/guardduty/aws-guardduty-filter_condition.go
new file mode 100644
index 0000000000..3752c3c040
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-filter_condition.go
@@ -0,0 +1,57 @@
+package guardduty
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Filter_Condition AWS CloudFormation Resource (AWS::GuardDuty::Filter.Condition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html
+type Filter_Condition struct {
+
+ // Eq AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-eq
+ Eq *types.Value `json:"Eq,omitempty"`
+
+ // Gte AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-gte
+ Gte *types.Value `json:"Gte,omitempty"`
+
+ // Lt AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-lt
+ Lt *types.Value `json:"Lt,omitempty"`
+
+ // Lte AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-lte
+ Lte *types.Value `json:"Lte,omitempty"`
+
+ // Neq AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-neq
+ Neq *types.Value `json:"Neq,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Filter_Condition) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::Filter.Condition"
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-filter_findingcriteria.go b/goformation/cloudformation/guardduty/aws-guardduty-filter_findingcriteria.go
new file mode 100644
index 0000000000..5ef2eeeb4e
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-filter_findingcriteria.go
@@ -0,0 +1,40 @@
+package guardduty
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Filter_FindingCriteria AWS CloudFormation Resource (AWS::GuardDuty::Filter.FindingCriteria)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html
+type Filter_FindingCriteria struct {
+
+ // Criterion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html#cfn-guardduty-filter-findingcriteria-criterion
+ Criterion interface{} `json:"Criterion,omitempty"`
+
+ // ItemType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-findingcriteria.html#cfn-guardduty-filter-findingcriteria-itemtype
+ ItemType *Filter_Condition `json:"ItemType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Filter_FindingCriteria) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::Filter.FindingCriteria"
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-ipset.go b/goformation/cloudformation/guardduty/aws-guardduty-ipset.go
new file mode 100644
index 0000000000..2ca3f7a262
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-ipset.go
@@ -0,0 +1,128 @@
+package guardduty
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// IPSet AWS CloudFormation Resource (AWS::GuardDuty::IPSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html
+type IPSet struct {
+
+ // Activate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-activate
+ Activate *types.Value `json:"Activate"`
+
+ // DetectorId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-detectorid
+ DetectorId *types.Value `json:"DetectorId,omitempty"`
+
+ // Format AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-ipset.html#cfn-guardduty-ipset-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *IPSet) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::IPSet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r IPSet) MarshalJSON() ([]byte, error) {
+ type Properties IPSet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *IPSet) UnmarshalJSON(b []byte) error {
+ type Properties IPSet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = IPSet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-master.go b/goformation/cloudformation/guardduty/aws-guardduty-master.go
new file mode 100644
index 0000000000..0e1e93cf3f
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-master.go
@@ -0,0 +1,118 @@
+package guardduty
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Master AWS CloudFormation Resource (AWS::GuardDuty::Master)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html
+type Master struct {
+
+ // DetectorId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-detectorid
+ DetectorId *types.Value `json:"DetectorId,omitempty"`
+
+ // InvitationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-invitationid
+ InvitationId *types.Value `json:"InvitationId,omitempty"`
+
+ // MasterId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-master.html#cfn-guardduty-master-masterid
+ MasterId *types.Value `json:"MasterId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Master) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::Master"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Master) MarshalJSON() ([]byte, error) {
+ type Properties Master
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Master) UnmarshalJSON(b []byte) error {
+ type Properties Master
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Master(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-member.go b/goformation/cloudformation/guardduty/aws-guardduty-member.go
new file mode 100644
index 0000000000..8554233da1
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-member.go
@@ -0,0 +1,133 @@
+package guardduty
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member AWS CloudFormation Resource (AWS::GuardDuty::Member)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html
+type Member struct {
+
+ // DetectorId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-detectorid
+ DetectorId *types.Value `json:"DetectorId,omitempty"`
+
+ // DisableEmailNotification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-disableemailnotification
+ DisableEmailNotification *types.Value `json:"DisableEmailNotification,omitempty"`
+
+ // Email AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-email
+ Email *types.Value `json:"Email,omitempty"`
+
+ // MemberId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-memberid
+ MemberId *types.Value `json:"MemberId,omitempty"`
+
+ // Message AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-message
+ Message *types.Value `json:"Message,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-member.html#cfn-guardduty-member-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::Member"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Member) MarshalJSON() ([]byte, error) {
+ type Properties Member
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Member) UnmarshalJSON(b []byte) error {
+ type Properties Member
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Member(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/guardduty/aws-guardduty-threatintelset.go b/goformation/cloudformation/guardduty/aws-guardduty-threatintelset.go
new file mode 100644
index 0000000000..486c3b9c7c
--- /dev/null
+++ b/goformation/cloudformation/guardduty/aws-guardduty-threatintelset.go
@@ -0,0 +1,128 @@
+package guardduty
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ThreatIntelSet AWS CloudFormation Resource (AWS::GuardDuty::ThreatIntelSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html
+type ThreatIntelSet struct {
+
+ // Activate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-activate
+ Activate *types.Value `json:"Activate"`
+
+ // DetectorId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-detectorid
+ DetectorId *types.Value `json:"DetectorId,omitempty"`
+
+ // Format AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-format
+ Format *types.Value `json:"Format,omitempty"`
+
+ // Location AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-location
+ Location *types.Value `json:"Location,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-guardduty-threatintelset.html#cfn-guardduty-threatintelset-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ThreatIntelSet) AWSCloudFormationType() string {
+ return "AWS::GuardDuty::ThreatIntelSet"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ThreatIntelSet) MarshalJSON() ([]byte, error) {
+ type Properties ThreatIntelSet
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ThreatIntelSet) UnmarshalJSON(b []byte) error {
+ type Properties ThreatIntelSet
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ThreatIntelSet(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore.go b/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore.go
new file mode 100644
index 0000000000..d2ca6f2f7a
--- /dev/null
+++ b/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore.go
@@ -0,0 +1,129 @@
+package healthlake
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// FHIRDatastore AWS CloudFormation Resource (AWS::HealthLake::FHIRDatastore)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html
+type FHIRDatastore struct {
+
+ // DatastoreName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-datastorename
+ DatastoreName *types.Value `json:"DatastoreName,omitempty"`
+
+ // DatastoreTypeVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-datastoretypeversion
+ DatastoreTypeVersion *types.Value `json:"DatastoreTypeVersion,omitempty"`
+
+ // PreloadDataConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-preloaddataconfig
+ PreloadDataConfig *FHIRDatastore_PreloadDataConfig `json:"PreloadDataConfig,omitempty"`
+
+ // SseConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-sseconfiguration
+ SseConfiguration *FHIRDatastore_SseConfiguration `json:"SseConfiguration,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-healthlake-fhirdatastore.html#cfn-healthlake-fhirdatastore-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FHIRDatastore) AWSCloudFormationType() string {
+ return "AWS::HealthLake::FHIRDatastore"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FHIRDatastore) MarshalJSON() ([]byte, error) {
+ type Properties FHIRDatastore
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FHIRDatastore) UnmarshalJSON(b []byte) error {
+ type Properties FHIRDatastore
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FHIRDatastore(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_kmsencryptionconfig.go b/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_kmsencryptionconfig.go
new file mode 100644
index 0000000000..d3c2ab06aa
--- /dev/null
+++ b/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_kmsencryptionconfig.go
@@ -0,0 +1,42 @@
+package healthlake
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FHIRDatastore_KmsEncryptionConfig AWS CloudFormation Resource (AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html
+type FHIRDatastore_KmsEncryptionConfig struct {
+
+ // CmkType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html#cfn-healthlake-fhirdatastore-kmsencryptionconfig-cmktype
+ CmkType *types.Value `json:"CmkType,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-kmsencryptionconfig.html#cfn-healthlake-fhirdatastore-kmsencryptionconfig-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FHIRDatastore_KmsEncryptionConfig) AWSCloudFormationType() string {
+ return "AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig"
+}
diff --git a/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_preloaddataconfig.go b/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_preloaddataconfig.go
new file mode 100644
index 0000000000..22eea23bbd
--- /dev/null
+++ b/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_preloaddataconfig.go
@@ -0,0 +1,37 @@
+package healthlake
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FHIRDatastore_PreloadDataConfig AWS CloudFormation Resource (AWS::HealthLake::FHIRDatastore.PreloadDataConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-preloaddataconfig.html
+type FHIRDatastore_PreloadDataConfig struct {
+
+ // PreloadDataType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-preloaddataconfig.html#cfn-healthlake-fhirdatastore-preloaddataconfig-preloaddatatype
+ PreloadDataType *types.Value `json:"PreloadDataType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FHIRDatastore_PreloadDataConfig) AWSCloudFormationType() string {
+ return "AWS::HealthLake::FHIRDatastore.PreloadDataConfig"
+}
diff --git a/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_sseconfiguration.go b/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_sseconfiguration.go
new file mode 100644
index 0000000000..ea8e923214
--- /dev/null
+++ b/goformation/cloudformation/healthlake/aws-healthlake-fhirdatastore_sseconfiguration.go
@@ -0,0 +1,35 @@
+package healthlake
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// FHIRDatastore_SseConfiguration AWS CloudFormation Resource (AWS::HealthLake::FHIRDatastore.SseConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-sseconfiguration.html
+type FHIRDatastore_SseConfiguration struct {
+
+ // KmsEncryptionConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-healthlake-fhirdatastore-sseconfiguration.html#cfn-healthlake-fhirdatastore-sseconfiguration-kmsencryptionconfig
+ KmsEncryptionConfig *FHIRDatastore_KmsEncryptionConfig `json:"KmsEncryptionConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FHIRDatastore_SseConfiguration) AWSCloudFormationType() string {
+ return "AWS::HealthLake::FHIRDatastore.SseConfiguration"
+}
diff --git a/goformation/cloudformation/iam/aws-iam-accesskey.go b/goformation/cloudformation/iam/aws-iam-accesskey.go
new file mode 100644
index 0000000000..114f3fd9f1
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-accesskey.go
@@ -0,0 +1,118 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessKey AWS CloudFormation Resource (AWS::IAM::AccessKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
+type AccessKey struct {
+
+ // Serial AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-serial
+ Serial *types.Value `json:"Serial,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // UserName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html#cfn-iam-accesskey-username
+ UserName *types.Value `json:"UserName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessKey) AWSCloudFormationType() string {
+ return "AWS::IAM::AccessKey"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AccessKey) MarshalJSON() ([]byte, error) {
+ type Properties AccessKey
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AccessKey) UnmarshalJSON(b []byte) error {
+ type Properties AccessKey
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AccessKey(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-group.go b/goformation/cloudformation/iam/aws-iam-group.go
new file mode 100644
index 0000000000..3659b1f6f4
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-group.go
@@ -0,0 +1,123 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Group AWS CloudFormation Resource (AWS::IAM::Group)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
+type Group struct {
+
+ // GroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // ManagedPolicyArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-managepolicyarns
+ ManagedPolicyArns *types.Value `json:"ManagedPolicyArns,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Policies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html#cfn-iam-group-policies
+ Policies []Group_Policy `json:"Policies,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Group) AWSCloudFormationType() string {
+ return "AWS::IAM::Group"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Group) MarshalJSON() ([]byte, error) {
+ type Properties Group
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Group) UnmarshalJSON(b []byte) error {
+ type Properties Group
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Group(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-group_policy.go b/goformation/cloudformation/iam/aws-iam-group_policy.go
new file mode 100644
index 0000000000..8d0e9196df
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-group_policy.go
@@ -0,0 +1,42 @@
+package iam
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Group_Policy AWS CloudFormation Resource (AWS::IAM::Group.Policy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
+type Group_Policy struct {
+
+ // PolicyDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument
+ PolicyDocument interface{} `json:"PolicyDocument,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Group_Policy) AWSCloudFormationType() string {
+ return "AWS::IAM::Group.Policy"
+}
diff --git a/goformation/cloudformation/iam/aws-iam-instanceprofile.go b/goformation/cloudformation/iam/aws-iam-instanceprofile.go
new file mode 100644
index 0000000000..f259e29804
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-instanceprofile.go
@@ -0,0 +1,118 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InstanceProfile AWS CloudFormation Resource (AWS::IAM::InstanceProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
+type InstanceProfile struct {
+
+ // InstanceProfileName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-instanceprofilename
+ InstanceProfileName *types.Value `json:"InstanceProfileName,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Roles AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-roles
+ Roles *types.Value `json:"Roles,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InstanceProfile) AWSCloudFormationType() string {
+ return "AWS::IAM::InstanceProfile"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r InstanceProfile) MarshalJSON() ([]byte, error) {
+ type Properties InstanceProfile
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *InstanceProfile) UnmarshalJSON(b []byte) error {
+ type Properties InstanceProfile
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = InstanceProfile(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-managedpolicy.go b/goformation/cloudformation/iam/aws-iam-managedpolicy.go
new file mode 100644
index 0000000000..0ecd849bfe
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-managedpolicy.go
@@ -0,0 +1,138 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ManagedPolicy AWS CloudFormation Resource (AWS::IAM::ManagedPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html
+type ManagedPolicy struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Groups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-groups
+ Groups *types.Value `json:"Groups,omitempty"`
+
+ // ManagedPolicyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-managedpolicyname
+ ManagedPolicyName *types.Value `json:"ManagedPolicyName,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-ec2-dhcpoptions-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // PolicyDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-policydocument
+ PolicyDocument interface{} `json:"PolicyDocument,omitempty"`
+
+ // Roles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-roles
+ Roles *types.Value `json:"Roles,omitempty"`
+
+ // Users AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html#cfn-iam-managedpolicy-users
+ Users *types.Value `json:"Users,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ManagedPolicy) AWSCloudFormationType() string {
+ return "AWS::IAM::ManagedPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ManagedPolicy) MarshalJSON() ([]byte, error) {
+ type Properties ManagedPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ManagedPolicy) UnmarshalJSON(b []byte) error {
+ type Properties ManagedPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ManagedPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-oidcprovider.go b/goformation/cloudformation/iam/aws-iam-oidcprovider.go
new file mode 100644
index 0000000000..64b5e31850
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-oidcprovider.go
@@ -0,0 +1,124 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// OIDCProvider AWS CloudFormation Resource (AWS::IAM::OIDCProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html
+type OIDCProvider struct {
+
+ // ClientIdList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-clientidlist
+ ClientIdList *types.Value `json:"ClientIdList,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // ThumbprintList AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-thumbprintlist
+ ThumbprintList *types.Value `json:"ThumbprintList,omitempty"`
+
+ // Url AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html#cfn-iam-oidcprovider-url
+ Url *types.Value `json:"Url,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *OIDCProvider) AWSCloudFormationType() string {
+ return "AWS::IAM::OIDCProvider"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r OIDCProvider) MarshalJSON() ([]byte, error) {
+ type Properties OIDCProvider
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *OIDCProvider) UnmarshalJSON(b []byte) error {
+ type Properties OIDCProvider
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = OIDCProvider(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-policy.go b/goformation/cloudformation/iam/aws-iam-policy.go
new file mode 100644
index 0000000000..b4e74307c5
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-policy.go
@@ -0,0 +1,128 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Policy AWS CloudFormation Resource (AWS::IAM::Policy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html
+type Policy struct {
+
+ // Groups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-groups
+ Groups *types.Value `json:"Groups,omitempty"`
+
+ // PolicyDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument
+ PolicyDocument interface{} `json:"PolicyDocument,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // Roles AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-roles
+ Roles *types.Value `json:"Roles,omitempty"`
+
+ // Users AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-users
+ Users *types.Value `json:"Users,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Policy) AWSCloudFormationType() string {
+ return "AWS::IAM::Policy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Policy) MarshalJSON() ([]byte, error) {
+ type Properties Policy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Policy) UnmarshalJSON(b []byte) error {
+ type Properties Policy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Policy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-role.go b/goformation/cloudformation/iam/aws-iam-role.go
new file mode 100644
index 0000000000..eed91091e7
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-role.go
@@ -0,0 +1,149 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Role AWS CloudFormation Resource (AWS::IAM::Role)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
+type Role struct {
+
+ // AssumeRolePolicyDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-assumerolepolicydocument
+ AssumeRolePolicyDocument interface{} `json:"AssumeRolePolicyDocument,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // ManagedPolicyArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-managepolicyarns
+ ManagedPolicyArns *types.Value `json:"ManagedPolicyArns,omitempty"`
+
+ // MaxSessionDuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-maxsessionduration
+ MaxSessionDuration *types.Value `json:"MaxSessionDuration,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // PermissionsBoundary AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary
+ PermissionsBoundary *types.Value `json:"PermissionsBoundary,omitempty"`
+
+ // Policies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies
+ Policies []Role_Policy `json:"Policies,omitempty"`
+
+ // RoleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-rolename
+ RoleName *types.Value `json:"RoleName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Role) AWSCloudFormationType() string {
+ return "AWS::IAM::Role"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Role) MarshalJSON() ([]byte, error) {
+ type Properties Role
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Role) UnmarshalJSON(b []byte) error {
+ type Properties Role
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Role(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-role_policy.go b/goformation/cloudformation/iam/aws-iam-role_policy.go
new file mode 100644
index 0000000000..a286db4692
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-role_policy.go
@@ -0,0 +1,42 @@
+package iam
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Role_Policy AWS CloudFormation Resource (AWS::IAM::Role.Policy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
+type Role_Policy struct {
+
+ // PolicyDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument
+ PolicyDocument interface{} `json:"PolicyDocument,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Role_Policy) AWSCloudFormationType() string {
+ return "AWS::IAM::Role.Policy"
+}
diff --git a/goformation/cloudformation/iam/aws-iam-samlprovider.go b/goformation/cloudformation/iam/aws-iam-samlprovider.go
new file mode 100644
index 0000000000..94a19d1ce6
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-samlprovider.go
@@ -0,0 +1,119 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// SAMLProvider AWS CloudFormation Resource (AWS::IAM::SAMLProvider)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html
+type SAMLProvider struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SamlMetadataDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-samlmetadatadocument
+ SamlMetadataDocument *types.Value `json:"SamlMetadataDocument,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SAMLProvider) AWSCloudFormationType() string {
+ return "AWS::IAM::SAMLProvider"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SAMLProvider) MarshalJSON() ([]byte, error) {
+ type Properties SAMLProvider
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SAMLProvider) UnmarshalJSON(b []byte) error {
+ type Properties SAMLProvider
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SAMLProvider(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-servercertificate.go b/goformation/cloudformation/iam/aws-iam-servercertificate.go
new file mode 100644
index 0000000000..1161cff236
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-servercertificate.go
@@ -0,0 +1,134 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ServerCertificate AWS CloudFormation Resource (AWS::IAM::ServerCertificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html
+type ServerCertificate struct {
+
+ // CertificateBody AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-certificatebody
+ CertificateBody *types.Value `json:"CertificateBody,omitempty"`
+
+ // CertificateChain AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-certificatechain
+ CertificateChain *types.Value `json:"CertificateChain,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // PrivateKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-privatekey
+ PrivateKey *types.Value `json:"PrivateKey,omitempty"`
+
+ // ServerCertificateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-servercertificatename
+ ServerCertificateName *types.Value `json:"ServerCertificateName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html#cfn-iam-servercertificate-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ServerCertificate) AWSCloudFormationType() string {
+ return "AWS::IAM::ServerCertificate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ServerCertificate) MarshalJSON() ([]byte, error) {
+ type Properties ServerCertificate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ServerCertificate) UnmarshalJSON(b []byte) error {
+ type Properties ServerCertificate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ServerCertificate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-servicelinkedrole.go b/goformation/cloudformation/iam/aws-iam-servicelinkedrole.go
new file mode 100644
index 0000000000..f124071343
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-servicelinkedrole.go
@@ -0,0 +1,118 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ServiceLinkedRole AWS CloudFormation Resource (AWS::IAM::ServiceLinkedRole)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html
+type ServiceLinkedRole struct {
+
+ // AWSServiceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-awsservicename
+ AWSServiceName *types.Value `json:"AWSServiceName,omitempty"`
+
+ // CustomSuffix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-customsuffix
+ CustomSuffix *types.Value `json:"CustomSuffix,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html#cfn-iam-servicelinkedrole-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ServiceLinkedRole) AWSCloudFormationType() string {
+ return "AWS::IAM::ServiceLinkedRole"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ServiceLinkedRole) MarshalJSON() ([]byte, error) {
+ type Properties ServiceLinkedRole
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ServiceLinkedRole) UnmarshalJSON(b []byte) error {
+ type Properties ServiceLinkedRole
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ServiceLinkedRole(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-user.go b/goformation/cloudformation/iam/aws-iam-user.go
new file mode 100644
index 0000000000..d0e2824110
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-user.go
@@ -0,0 +1,144 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// User AWS CloudFormation Resource (AWS::IAM::User)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
+type User struct {
+
+ // Groups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-groups
+ Groups *types.Value `json:"Groups,omitempty"`
+
+ // LoginProfile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-loginprofile
+ LoginProfile *User_LoginProfile `json:"LoginProfile,omitempty"`
+
+ // ManagedPolicyArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-managepolicyarns
+ ManagedPolicyArns *types.Value `json:"ManagedPolicyArns,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // PermissionsBoundary AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-permissionsboundary
+ PermissionsBoundary *types.Value `json:"PermissionsBoundary,omitempty"`
+
+ // Policies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-policies
+ Policies []User_Policy `json:"Policies,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // UserName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html#cfn-iam-user-username
+ UserName *types.Value `json:"UserName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *User) AWSCloudFormationType() string {
+ return "AWS::IAM::User"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r User) MarshalJSON() ([]byte, error) {
+ type Properties User
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *User) UnmarshalJSON(b []byte) error {
+ type Properties User
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = User(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-user_loginprofile.go b/goformation/cloudformation/iam/aws-iam-user_loginprofile.go
new file mode 100644
index 0000000000..de19ff625f
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-user_loginprofile.go
@@ -0,0 +1,42 @@
+package iam
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// User_LoginProfile AWS CloudFormation Resource (AWS::IAM::User.LoginProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html
+type User_LoginProfile struct {
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html#cfn-iam-user-loginprofile-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // PasswordResetRequired AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html#cfn-iam-user-loginprofile-passwordresetrequired
+ PasswordResetRequired *types.Value `json:"PasswordResetRequired,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *User_LoginProfile) AWSCloudFormationType() string {
+ return "AWS::IAM::User.LoginProfile"
+}
diff --git a/goformation/cloudformation/iam/aws-iam-user_policy.go b/goformation/cloudformation/iam/aws-iam-user_policy.go
new file mode 100644
index 0000000000..5eb9b4e0bd
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-user_policy.go
@@ -0,0 +1,42 @@
+package iam
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// User_Policy AWS CloudFormation Resource (AWS::IAM::User.Policy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
+type User_Policy struct {
+
+ // PolicyDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policydocument
+ PolicyDocument interface{} `json:"PolicyDocument,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html#cfn-iam-policies-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *User_Policy) AWSCloudFormationType() string {
+ return "AWS::IAM::User.Policy"
+}
diff --git a/goformation/cloudformation/iam/aws-iam-usertogroupaddition.go b/goformation/cloudformation/iam/aws-iam-usertogroupaddition.go
new file mode 100644
index 0000000000..0e3d79b398
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-usertogroupaddition.go
@@ -0,0 +1,113 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// UserToGroupAddition AWS CloudFormation Resource (AWS::IAM::UserToGroupAddition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
+type UserToGroupAddition struct {
+
+ // GroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-groupname
+ GroupName *types.Value `json:"GroupName,omitempty"`
+
+ // Users AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html#cfn-iam-addusertogroup-users
+ Users *types.Value `json:"Users,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *UserToGroupAddition) AWSCloudFormationType() string {
+ return "AWS::IAM::UserToGroupAddition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r UserToGroupAddition) MarshalJSON() ([]byte, error) {
+ type Properties UserToGroupAddition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *UserToGroupAddition) UnmarshalJSON(b []byte) error {
+ type Properties UserToGroupAddition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = UserToGroupAddition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iam/aws-iam-virtualmfadevice.go b/goformation/cloudformation/iam/aws-iam-virtualmfadevice.go
new file mode 100644
index 0000000000..e132b62fee
--- /dev/null
+++ b/goformation/cloudformation/iam/aws-iam-virtualmfadevice.go
@@ -0,0 +1,124 @@
+package iam
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// VirtualMFADevice AWS CloudFormation Resource (AWS::IAM::VirtualMFADevice)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html
+type VirtualMFADevice struct {
+
+ // Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Users AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-users
+ Users *types.Value `json:"Users,omitempty"`
+
+ // VirtualMfaDeviceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html#cfn-iam-virtualmfadevice-virtualmfadevicename
+ VirtualMfaDeviceName *types.Value `json:"VirtualMfaDeviceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *VirtualMFADevice) AWSCloudFormationType() string {
+ return "AWS::IAM::VirtualMFADevice"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r VirtualMFADevice) MarshalJSON() ([]byte, error) {
+ type Properties VirtualMFADevice
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *VirtualMFADevice) UnmarshalJSON(b []byte) error {
+ type Properties VirtualMFADevice
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = VirtualMFADevice(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-component.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-component.go
new file mode 100644
index 0000000000..5ab269b146
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-component.go
@@ -0,0 +1,153 @@
+package imagebuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Component AWS CloudFormation Resource (AWS::ImageBuilder::Component)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html
+type Component struct {
+
+ // ChangeDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-changedescription
+ ChangeDescription *types.Value `json:"ChangeDescription,omitempty"`
+
+ // Data AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-data
+ Data *types.Value `json:"Data,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Platform AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-platform
+ Platform *types.Value `json:"Platform,omitempty"`
+
+ // SupportedOsVersions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-supportedosversions
+ SupportedOsVersions *types.Value `json:"SupportedOsVersions,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // Uri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-uri
+ Uri *types.Value `json:"Uri,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-component.html#cfn-imagebuilder-component-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Component) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::Component"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Component) MarshalJSON() ([]byte, error) {
+ type Properties Component
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Component) UnmarshalJSON(b []byte) error {
+ type Properties Component
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Component(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe.go
new file mode 100644
index 0000000000..101bdf1501
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe.go
@@ -0,0 +1,178 @@
+package imagebuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ContainerRecipe AWS CloudFormation Resource (AWS::ImageBuilder::ContainerRecipe)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html
+type ContainerRecipe struct {
+
+ // Components AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-components
+ Components []ContainerRecipe_ComponentConfiguration `json:"Components,omitempty"`
+
+ // ContainerType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-containertype
+ ContainerType *types.Value `json:"ContainerType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DockerfileTemplateData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-dockerfiletemplatedata
+ DockerfileTemplateData *types.Value `json:"DockerfileTemplateData,omitempty"`
+
+ // DockerfileTemplateUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-dockerfiletemplateuri
+ DockerfileTemplateUri *types.Value `json:"DockerfileTemplateUri,omitempty"`
+
+ // ImageOsVersionOverride AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-imageosversionoverride
+ ImageOsVersionOverride *types.Value `json:"ImageOsVersionOverride,omitempty"`
+
+ // InstanceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-instanceconfiguration
+ InstanceConfiguration *ContainerRecipe_InstanceConfiguration `json:"InstanceConfiguration,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ParentImage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-parentimage
+ ParentImage *types.Value `json:"ParentImage,omitempty"`
+
+ // PlatformOverride AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-platformoverride
+ PlatformOverride *types.Value `json:"PlatformOverride,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // TargetRepository AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-targetrepository
+ TargetRepository *ContainerRecipe_TargetContainerRepository `json:"TargetRepository,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // WorkingDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-containerrecipe.html#cfn-imagebuilder-containerrecipe-workingdirectory
+ WorkingDirectory *types.Value `json:"WorkingDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ContainerRecipe) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ContainerRecipe"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ContainerRecipe) MarshalJSON() ([]byte, error) {
+ type Properties ContainerRecipe
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ContainerRecipe) UnmarshalJSON(b []byte) error {
+ type Properties ContainerRecipe
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ContainerRecipe(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_componentconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_componentconfiguration.go
new file mode 100644
index 0000000000..eb872db474
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_componentconfiguration.go
@@ -0,0 +1,37 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ContainerRecipe_ComponentConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::ContainerRecipe.ComponentConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentconfiguration.html
+type ContainerRecipe_ComponentConfiguration struct {
+
+ // ComponentArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-componentconfiguration.html#cfn-imagebuilder-containerrecipe-componentconfiguration-componentarn
+ ComponentArn *types.Value `json:"ComponentArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ContainerRecipe_ComponentConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ContainerRecipe.ComponentConfiguration"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_ebsinstanceblockdevicespecification.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_ebsinstanceblockdevicespecification.go
new file mode 100644
index 0000000000..4c071831d4
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_ebsinstanceblockdevicespecification.go
@@ -0,0 +1,72 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ContainerRecipe_EbsInstanceBlockDeviceSpecification AWS CloudFormation Resource (AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html
+type ContainerRecipe_EbsInstanceBlockDeviceSpecification struct {
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-deleteontermination
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-encrypted
+ Encrypted *types.Value `json:"Encrypted,omitempty"`
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // SnapshotId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-snapshotid
+ SnapshotId *types.Value `json:"SnapshotId,omitempty"`
+
+ // Throughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-throughput
+ Throughput *types.Value `json:"Throughput,omitempty"`
+
+ // VolumeSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumesize
+ VolumeSize *types.Value `json:"VolumeSize,omitempty"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-containerrecipe-ebsinstanceblockdevicespecification-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ContainerRecipe_EbsInstanceBlockDeviceSpecification) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_instanceblockdevicemapping.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_instanceblockdevicemapping.go
new file mode 100644
index 0000000000..2aca683881
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_instanceblockdevicemapping.go
@@ -0,0 +1,52 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ContainerRecipe_InstanceBlockDeviceMapping AWS CloudFormation Resource (AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html
+type ContainerRecipe_InstanceBlockDeviceMapping struct {
+
+ // DeviceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-devicename
+ DeviceName *types.Value `json:"DeviceName,omitempty"`
+
+ // Ebs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-ebs
+ Ebs *ContainerRecipe_EbsInstanceBlockDeviceSpecification `json:"Ebs,omitempty"`
+
+ // NoDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-nodevice
+ NoDevice *types.Value `json:"NoDevice,omitempty"`
+
+ // VirtualName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceblockdevicemapping.html#cfn-imagebuilder-containerrecipe-instanceblockdevicemapping-virtualname
+ VirtualName *types.Value `json:"VirtualName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ContainerRecipe_InstanceBlockDeviceMapping) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_instanceconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_instanceconfiguration.go
new file mode 100644
index 0000000000..0c478e2bfa
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_instanceconfiguration.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ContainerRecipe_InstanceConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html
+type ContainerRecipe_InstanceConfiguration struct {
+
+ // BlockDeviceMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html#cfn-imagebuilder-containerrecipe-instanceconfiguration-blockdevicemappings
+ BlockDeviceMappings []ContainerRecipe_InstanceBlockDeviceMapping `json:"BlockDeviceMappings,omitempty"`
+
+ // Image AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-instanceconfiguration.html#cfn-imagebuilder-containerrecipe-instanceconfiguration-image
+ Image *types.Value `json:"Image,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ContainerRecipe_InstanceConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_targetcontainerrepository.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_targetcontainerrepository.go
new file mode 100644
index 0000000000..eed4e320a3
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-containerrecipe_targetcontainerrepository.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ContainerRecipe_TargetContainerRepository AWS CloudFormation Resource (AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html
+type ContainerRecipe_TargetContainerRepository struct {
+
+ // RepositoryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html#cfn-imagebuilder-containerrecipe-targetcontainerrepository-repositoryname
+ RepositoryName *types.Value `json:"RepositoryName,omitempty"`
+
+ // Service AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-containerrecipe-targetcontainerrepository.html#cfn-imagebuilder-containerrecipe-targetcontainerrepository-service
+ Service *types.Value `json:"Service,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ContainerRecipe_TargetContainerRepository) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration.go
new file mode 100644
index 0000000000..0fba511195
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration.go
@@ -0,0 +1,123 @@
+package imagebuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DistributionConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::DistributionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html
+type DistributionConfiguration struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Distributions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-distributions
+ Distributions []DistributionConfiguration_Distribution `json:"Distributions,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-distributionconfiguration.html#cfn-imagebuilder-distributionconfiguration-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DistributionConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::DistributionConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DistributionConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties DistributionConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DistributionConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties DistributionConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DistributionConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration_distribution.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration_distribution.go
new file mode 100644
index 0000000000..658fc14d2a
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration_distribution.go
@@ -0,0 +1,57 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DistributionConfiguration_Distribution AWS CloudFormation Resource (AWS::ImageBuilder::DistributionConfiguration.Distribution)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html
+type DistributionConfiguration_Distribution struct {
+
+ // AmiDistributionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-amidistributionconfiguration
+ AmiDistributionConfiguration interface{} `json:"AmiDistributionConfiguration,omitempty"`
+
+ // ContainerDistributionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-containerdistributionconfiguration
+ ContainerDistributionConfiguration interface{} `json:"ContainerDistributionConfiguration,omitempty"`
+
+ // LaunchTemplateConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-launchtemplateconfigurations
+ LaunchTemplateConfigurations []DistributionConfiguration_LaunchTemplateConfiguration `json:"LaunchTemplateConfigurations,omitempty"`
+
+ // LicenseConfigurationArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-licenseconfigurationarns
+ LicenseConfigurationArns *types.Value `json:"LicenseConfigurationArns,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DistributionConfiguration_Distribution) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::DistributionConfiguration.Distribution"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration_launchtemplateconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration_launchtemplateconfiguration.go
new file mode 100644
index 0000000000..dd5010e331
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-distributionconfiguration_launchtemplateconfiguration.go
@@ -0,0 +1,47 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DistributionConfiguration_LaunchTemplateConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::DistributionConfiguration.LaunchTemplateConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html
+type DistributionConfiguration_LaunchTemplateConfiguration struct {
+
+ // AccountId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-accountid
+ AccountId *types.Value `json:"AccountId,omitempty"`
+
+ // LaunchTemplateId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-launchtemplateid
+ LaunchTemplateId *types.Value `json:"LaunchTemplateId,omitempty"`
+
+ // SetDefaultVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-launchtemplateconfiguration.html#cfn-imagebuilder-distributionconfiguration-launchtemplateconfiguration-setdefaultversion
+ SetDefaultVersion *types.Value `json:"SetDefaultVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DistributionConfiguration_LaunchTemplateConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::DistributionConfiguration.LaunchTemplateConfiguration"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-image.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-image.go
new file mode 100644
index 0000000000..0ed6e1da38
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-image.go
@@ -0,0 +1,138 @@
+package imagebuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Image AWS CloudFormation Resource (AWS::ImageBuilder::Image)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html
+type Image struct {
+
+ // ContainerRecipeArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-containerrecipearn
+ ContainerRecipeArn *types.Value `json:"ContainerRecipeArn,omitempty"`
+
+ // DistributionConfigurationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-distributionconfigurationarn
+ DistributionConfigurationArn *types.Value `json:"DistributionConfigurationArn,omitempty"`
+
+ // EnhancedImageMetadataEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-enhancedimagemetadataenabled
+ EnhancedImageMetadataEnabled *types.Value `json:"EnhancedImageMetadataEnabled,omitempty"`
+
+ // ImageRecipeArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-imagerecipearn
+ ImageRecipeArn *types.Value `json:"ImageRecipeArn,omitempty"`
+
+ // ImageTestsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-imagetestsconfiguration
+ ImageTestsConfiguration *Image_ImageTestsConfiguration `json:"ImageTestsConfiguration,omitempty"`
+
+ // InfrastructureConfigurationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-infrastructureconfigurationarn
+ InfrastructureConfigurationArn *types.Value `json:"InfrastructureConfigurationArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-image.html#cfn-imagebuilder-image-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Image) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::Image"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Image) MarshalJSON() ([]byte, error) {
+ type Properties Image
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Image) UnmarshalJSON(b []byte) error {
+ type Properties Image
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Image(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-image_imagetestsconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-image_imagetestsconfiguration.go
new file mode 100644
index 0000000000..08e2101c4d
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-image_imagetestsconfiguration.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Image_ImageTestsConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::Image.ImageTestsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-image-imagetestsconfiguration.html
+type Image_ImageTestsConfiguration struct {
+
+ // ImageTestsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-image-imagetestsconfiguration.html#cfn-imagebuilder-image-imagetestsconfiguration-imagetestsenabled
+ ImageTestsEnabled *types.Value `json:"ImageTestsEnabled,omitempty"`
+
+ // TimeoutMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-image-imagetestsconfiguration.html#cfn-imagebuilder-image-imagetestsconfiguration-timeoutminutes
+ TimeoutMinutes *types.Value `json:"TimeoutMinutes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Image_ImageTestsConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::Image.ImageTestsConfiguration"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline.go
new file mode 100644
index 0000000000..faffc3106d
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline.go
@@ -0,0 +1,158 @@
+package imagebuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImagePipeline AWS CloudFormation Resource (AWS::ImageBuilder::ImagePipeline)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html
+type ImagePipeline struct {
+
+ // ContainerRecipeArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-containerrecipearn
+ ContainerRecipeArn *types.Value `json:"ContainerRecipeArn,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DistributionConfigurationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-distributionconfigurationarn
+ DistributionConfigurationArn *types.Value `json:"DistributionConfigurationArn,omitempty"`
+
+ // EnhancedImageMetadataEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-enhancedimagemetadataenabled
+ EnhancedImageMetadataEnabled *types.Value `json:"EnhancedImageMetadataEnabled,omitempty"`
+
+ // ImageRecipeArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-imagerecipearn
+ ImageRecipeArn *types.Value `json:"ImageRecipeArn,omitempty"`
+
+ // ImageTestsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-imagetestsconfiguration
+ ImageTestsConfiguration *ImagePipeline_ImageTestsConfiguration `json:"ImageTestsConfiguration,omitempty"`
+
+ // InfrastructureConfigurationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-infrastructureconfigurationarn
+ InfrastructureConfigurationArn *types.Value `json:"InfrastructureConfigurationArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Schedule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-schedule
+ Schedule *ImagePipeline_Schedule `json:"Schedule,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagepipeline.html#cfn-imagebuilder-imagepipeline-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImagePipeline) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImagePipeline"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ImagePipeline) MarshalJSON() ([]byte, error) {
+ type Properties ImagePipeline
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ImagePipeline) UnmarshalJSON(b []byte) error {
+ type Properties ImagePipeline
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ImagePipeline(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline_imagetestsconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline_imagetestsconfiguration.go
new file mode 100644
index 0000000000..9c072e8231
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline_imagetestsconfiguration.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImagePipeline_ImageTestsConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html
+type ImagePipeline_ImageTestsConfiguration struct {
+
+ // ImageTestsEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html#cfn-imagebuilder-imagepipeline-imagetestsconfiguration-imagetestsenabled
+ ImageTestsEnabled *types.Value `json:"ImageTestsEnabled,omitempty"`
+
+ // TimeoutMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-imagetestsconfiguration.html#cfn-imagebuilder-imagepipeline-imagetestsconfiguration-timeoutminutes
+ TimeoutMinutes *types.Value `json:"TimeoutMinutes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImagePipeline_ImageTestsConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline_schedule.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline_schedule.go
new file mode 100644
index 0000000000..24d902227d
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagepipeline_schedule.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImagePipeline_Schedule AWS CloudFormation Resource (AWS::ImageBuilder::ImagePipeline.Schedule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html
+type ImagePipeline_Schedule struct {
+
+ // PipelineExecutionStartCondition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html#cfn-imagebuilder-imagepipeline-schedule-pipelineexecutionstartcondition
+ PipelineExecutionStartCondition *types.Value `json:"PipelineExecutionStartCondition,omitempty"`
+
+ // ScheduleExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagepipeline-schedule.html#cfn-imagebuilder-imagepipeline-schedule-scheduleexpression
+ ScheduleExpression *types.Value `json:"ScheduleExpression,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImagePipeline_Schedule) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImagePipeline.Schedule"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe.go
new file mode 100644
index 0000000000..3c4bae5191
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe.go
@@ -0,0 +1,148 @@
+package imagebuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageRecipe AWS CloudFormation Resource (AWS::ImageBuilder::ImageRecipe)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html
+type ImageRecipe struct {
+
+ // AdditionalInstanceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration
+ AdditionalInstanceConfiguration *ImageRecipe_AdditionalInstanceConfiguration `json:"AdditionalInstanceConfiguration,omitempty"`
+
+ // BlockDeviceMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-blockdevicemappings
+ BlockDeviceMappings []ImageRecipe_InstanceBlockDeviceMapping `json:"BlockDeviceMappings,omitempty"`
+
+ // Components AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-components
+ Components []ImageRecipe_ComponentConfiguration `json:"Components,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ParentImage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-parentimage
+ ParentImage *types.Value `json:"ParentImage,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // WorkingDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-imagerecipe.html#cfn-imagebuilder-imagerecipe-workingdirectory
+ WorkingDirectory *types.Value `json:"WorkingDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageRecipe) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImageRecipe"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ImageRecipe) MarshalJSON() ([]byte, error) {
+ type Properties ImageRecipe
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ImageRecipe) UnmarshalJSON(b []byte) error {
+ type Properties ImageRecipe
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ImageRecipe(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_additionalinstanceconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_additionalinstanceconfiguration.go
new file mode 100644
index 0000000000..8716dcd07c
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_additionalinstanceconfiguration.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageRecipe_AdditionalInstanceConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::ImageRecipe.AdditionalInstanceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration.html
+type ImageRecipe_AdditionalInstanceConfiguration struct {
+
+ // SystemsManagerAgent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration.html#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-systemsmanageragent
+ SystemsManagerAgent *ImageRecipe_SystemsManagerAgent `json:"SystemsManagerAgent,omitempty"`
+
+ // UserDataOverride AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-additionalinstanceconfiguration.html#cfn-imagebuilder-imagerecipe-additionalinstanceconfiguration-userdataoverride
+ UserDataOverride *types.Value `json:"UserDataOverride,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageRecipe_AdditionalInstanceConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImageRecipe.AdditionalInstanceConfiguration"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_componentconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_componentconfiguration.go
new file mode 100644
index 0000000000..4031badb4b
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_componentconfiguration.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageRecipe_ComponentConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::ImageRecipe.ComponentConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentconfiguration.html
+type ImageRecipe_ComponentConfiguration struct {
+
+ // ComponentArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentconfiguration.html#cfn-imagebuilder-imagerecipe-componentconfiguration-componentarn
+ ComponentArn *types.Value `json:"ComponentArn,omitempty"`
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentconfiguration.html#cfn-imagebuilder-imagerecipe-componentconfiguration-parameters
+ Parameters []ImageRecipe_ComponentParameter `json:"Parameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageRecipe_ComponentConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_componentparameter.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_componentparameter.go
new file mode 100644
index 0000000000..9e4cca14c6
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_componentparameter.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageRecipe_ComponentParameter AWS CloudFormation Resource (AWS::ImageBuilder::ImageRecipe.ComponentParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentparameter.html
+type ImageRecipe_ComponentParameter struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentparameter.html#cfn-imagebuilder-imagerecipe-componentparameter-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-componentparameter.html#cfn-imagebuilder-imagerecipe-componentparameter-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageRecipe_ComponentParameter) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImageRecipe.ComponentParameter"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_ebsinstanceblockdevicespecification.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_ebsinstanceblockdevicespecification.go
new file mode 100644
index 0000000000..2091c8c92d
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_ebsinstanceblockdevicespecification.go
@@ -0,0 +1,72 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageRecipe_EbsInstanceBlockDeviceSpecification AWS CloudFormation Resource (AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html
+type ImageRecipe_EbsInstanceBlockDeviceSpecification struct {
+
+ // DeleteOnTermination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-deleteontermination
+ DeleteOnTermination *types.Value `json:"DeleteOnTermination,omitempty"`
+
+ // Encrypted AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-encrypted
+ Encrypted *types.Value `json:"Encrypted,omitempty"`
+
+ // Iops AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-iops
+ Iops *types.Value `json:"Iops,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // SnapshotId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-snapshotid
+ SnapshotId *types.Value `json:"SnapshotId,omitempty"`
+
+ // Throughput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-throughput
+ Throughput *types.Value `json:"Throughput,omitempty"`
+
+ // VolumeSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumesize
+ VolumeSize *types.Value `json:"VolumeSize,omitempty"`
+
+ // VolumeType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification.html#cfn-imagebuilder-imagerecipe-ebsinstanceblockdevicespecification-volumetype
+ VolumeType *types.Value `json:"VolumeType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageRecipe_EbsInstanceBlockDeviceSpecification) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_instanceblockdevicemapping.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_instanceblockdevicemapping.go
new file mode 100644
index 0000000000..3766828358
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_instanceblockdevicemapping.go
@@ -0,0 +1,52 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageRecipe_InstanceBlockDeviceMapping AWS CloudFormation Resource (AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html
+type ImageRecipe_InstanceBlockDeviceMapping struct {
+
+ // DeviceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-devicename
+ DeviceName *types.Value `json:"DeviceName,omitempty"`
+
+ // Ebs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-ebs
+ Ebs *ImageRecipe_EbsInstanceBlockDeviceSpecification `json:"Ebs,omitempty"`
+
+ // NoDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-nodevice
+ NoDevice *types.Value `json:"NoDevice,omitempty"`
+
+ // VirtualName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-instanceblockdevicemapping.html#cfn-imagebuilder-imagerecipe-instanceblockdevicemapping-virtualname
+ VirtualName *types.Value `json:"VirtualName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageRecipe_InstanceBlockDeviceMapping) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_systemsmanageragent.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_systemsmanageragent.go
new file mode 100644
index 0000000000..da40adf0fa
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-imagerecipe_systemsmanageragent.go
@@ -0,0 +1,37 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ImageRecipe_SystemsManagerAgent AWS CloudFormation Resource (AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-systemsmanageragent.html
+type ImageRecipe_SystemsManagerAgent struct {
+
+ // UninstallAfterBuild AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-imagerecipe-systemsmanageragent.html#cfn-imagebuilder-imagerecipe-systemsmanageragent-uninstallafterbuild
+ UninstallAfterBuild *types.Value `json:"UninstallAfterBuild,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ImageRecipe_SystemsManagerAgent) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go
new file mode 100644
index 0000000000..487c29af8e
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration.go
@@ -0,0 +1,168 @@
+package imagebuilder
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InfrastructureConfiguration AWS CloudFormation Resource (AWS::ImageBuilder::InfrastructureConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html
+type InfrastructureConfiguration struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // InstanceMetadataOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions
+ InstanceMetadataOptions *InfrastructureConfiguration_InstanceMetadataOptions `json:"InstanceMetadataOptions,omitempty"`
+
+ // InstanceProfileName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-instanceprofilename
+ InstanceProfileName *types.Value `json:"InstanceProfileName,omitempty"`
+
+ // InstanceTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-instancetypes
+ InstanceTypes *types.Value `json:"InstanceTypes,omitempty"`
+
+ // KeyPair AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-keypair
+ KeyPair *types.Value `json:"KeyPair,omitempty"`
+
+ // Logging AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-logging
+ Logging *InfrastructureConfiguration_Logging `json:"Logging,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ResourceTags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-resourcetags
+ ResourceTags map[string]*types.Value `json:"ResourceTags,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SnsTopicArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-snstopicarn
+ SnsTopicArn *types.Value `json:"SnsTopicArn,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-tags
+ Tags map[string]*types.Value `json:"Tags,omitempty"`
+
+ // TerminateInstanceOnFailure AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-imagebuilder-infrastructureconfiguration.html#cfn-imagebuilder-infrastructureconfiguration-terminateinstanceonfailure
+ TerminateInstanceOnFailure *types.Value `json:"TerminateInstanceOnFailure,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InfrastructureConfiguration) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::InfrastructureConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r InfrastructureConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties InfrastructureConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *InfrastructureConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties InfrastructureConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = InfrastructureConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_instancemetadataoptions.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_instancemetadataoptions.go
new file mode 100644
index 0000000000..2377546bb0
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_instancemetadataoptions.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InfrastructureConfiguration_InstanceMetadataOptions AWS CloudFormation Resource (AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html
+type InfrastructureConfiguration_InstanceMetadataOptions struct {
+
+ // HttpPutResponseHopLimit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httpputresponsehoplimit
+ HttpPutResponseHopLimit *types.Value `json:"HttpPutResponseHopLimit,omitempty"`
+
+ // HttpTokens AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-instancemetadataoptions.html#cfn-imagebuilder-infrastructureconfiguration-instancemetadataoptions-httptokens
+ HttpTokens *types.Value `json:"HttpTokens,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InfrastructureConfiguration_InstanceMetadataOptions) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_logging.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_logging.go
new file mode 100644
index 0000000000..0e862e0a14
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_logging.go
@@ -0,0 +1,35 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// InfrastructureConfiguration_Logging AWS CloudFormation Resource (AWS::ImageBuilder::InfrastructureConfiguration.Logging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-logging.html
+type InfrastructureConfiguration_Logging struct {
+
+ // S3Logs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-logging.html#cfn-imagebuilder-infrastructureconfiguration-logging-s3logs
+ S3Logs *InfrastructureConfiguration_S3Logs `json:"S3Logs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InfrastructureConfiguration_Logging) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::InfrastructureConfiguration.Logging"
+}
diff --git a/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_s3logs.go b/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_s3logs.go
new file mode 100644
index 0000000000..7360829fe2
--- /dev/null
+++ b/goformation/cloudformation/imagebuilder/aws-imagebuilder-infrastructureconfiguration_s3logs.go
@@ -0,0 +1,42 @@
+package imagebuilder
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// InfrastructureConfiguration_S3Logs AWS CloudFormation Resource (AWS::ImageBuilder::InfrastructureConfiguration.S3Logs)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html
+type InfrastructureConfiguration_S3Logs struct {
+
+ // S3BucketName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html#cfn-imagebuilder-infrastructureconfiguration-s3logs-s3bucketname
+ S3BucketName *types.Value `json:"S3BucketName,omitempty"`
+
+ // S3KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-infrastructureconfiguration-s3logs.html#cfn-imagebuilder-infrastructureconfiguration-s3logs-s3keyprefix
+ S3KeyPrefix *types.Value `json:"S3KeyPrefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InfrastructureConfiguration_S3Logs) AWSCloudFormationType() string {
+ return "AWS::ImageBuilder::InfrastructureConfiguration.S3Logs"
+}
diff --git a/goformation/cloudformation/inspector/aws-inspector-assessmenttarget.go b/goformation/cloudformation/inspector/aws-inspector-assessmenttarget.go
new file mode 100644
index 0000000000..ffffd6489e
--- /dev/null
+++ b/goformation/cloudformation/inspector/aws-inspector-assessmenttarget.go
@@ -0,0 +1,113 @@
+package inspector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssessmentTarget AWS CloudFormation Resource (AWS::Inspector::AssessmentTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html
+type AssessmentTarget struct {
+
+ // AssessmentTargetName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-assessmenttargetname
+ AssessmentTargetName *types.Value `json:"AssessmentTargetName,omitempty"`
+
+ // ResourceGroupArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttarget.html#cfn-inspector-assessmenttarget-resourcegrouparn
+ ResourceGroupArn *types.Value `json:"ResourceGroupArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssessmentTarget) AWSCloudFormationType() string {
+ return "AWS::Inspector::AssessmentTarget"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AssessmentTarget) MarshalJSON() ([]byte, error) {
+ type Properties AssessmentTarget
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AssessmentTarget) UnmarshalJSON(b []byte) error {
+ type Properties AssessmentTarget
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AssessmentTarget(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/inspector/aws-inspector-assessmenttemplate.go b/goformation/cloudformation/inspector/aws-inspector-assessmenttemplate.go
new file mode 100644
index 0000000000..ca7e58de3d
--- /dev/null
+++ b/goformation/cloudformation/inspector/aws-inspector-assessmenttemplate.go
@@ -0,0 +1,129 @@
+package inspector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssessmentTemplate AWS CloudFormation Resource (AWS::Inspector::AssessmentTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html
+type AssessmentTemplate struct {
+
+ // AssessmentTargetArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-assessmenttargetarn
+ AssessmentTargetArn *types.Value `json:"AssessmentTargetArn,omitempty"`
+
+ // AssessmentTemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-assessmenttemplatename
+ AssessmentTemplateName *types.Value `json:"AssessmentTemplateName,omitempty"`
+
+ // DurationInSeconds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-durationinseconds
+ DurationInSeconds *types.Value `json:"DurationInSeconds"`
+
+ // RulesPackageArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-rulespackagearns
+ RulesPackageArns *types.Value `json:"RulesPackageArns,omitempty"`
+
+ // UserAttributesForFindings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-assessmenttemplate.html#cfn-inspector-assessmenttemplate-userattributesforfindings
+ UserAttributesForFindings []cloudformation.Tag `json:"UserAttributesForFindings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssessmentTemplate) AWSCloudFormationType() string {
+ return "AWS::Inspector::AssessmentTemplate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AssessmentTemplate) MarshalJSON() ([]byte, error) {
+ type Properties AssessmentTemplate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AssessmentTemplate) UnmarshalJSON(b []byte) error {
+ type Properties AssessmentTemplate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AssessmentTemplate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/inspector/aws-inspector-resourcegroup.go b/goformation/cloudformation/inspector/aws-inspector-resourcegroup.go
new file mode 100644
index 0000000000..495e13336f
--- /dev/null
+++ b/goformation/cloudformation/inspector/aws-inspector-resourcegroup.go
@@ -0,0 +1,107 @@
+package inspector
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceGroup AWS CloudFormation Resource (AWS::Inspector::ResourceGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html
+type ResourceGroup struct {
+
+ // ResourceGroupTags AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-inspector-resourcegroup.html#cfn-inspector-resourcegroup-resourcegrouptags
+ ResourceGroupTags []cloudformation.Tag `json:"ResourceGroupTags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceGroup) AWSCloudFormationType() string {
+ return "AWS::Inspector::ResourceGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResourceGroup) MarshalJSON() ([]byte, error) {
+ type Properties ResourceGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResourceGroup) UnmarshalJSON(b []byte) error {
+ type Properties ResourceGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResourceGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/intrinsics.go b/goformation/cloudformation/intrinsics.go
new file mode 100644
index 0000000000..e098f4430c
--- /dev/null
+++ b/goformation/cloudformation/intrinsics.go
@@ -0,0 +1,244 @@
+package cloudformation
+
+import (
+ "encoding/base64"
+ "fmt"
+ "strings"
+
+ "goformation/v4/intrinsics"
+)
+
+func strWrap(fn func(interface{}) string) intrinsics.IntrinsicHandler {
+ return func(name string, input interface{}, template interface{}) interface{} {
+ return fn(input)
+ }
+}
+
+// Splits the string base on a . delimiter
+func strSplit2Wrap(fn func(string, string) string) intrinsics.IntrinsicHandler {
+ delim := "."
+ return func(name string, input interface{}, template interface{}) interface{} {
+ switch v := input.(type) {
+ case string:
+ arr := strings.SplitN(v, delim, 2)
+ if len(arr) != 2 {
+ return nil
+ }
+ return fn(arr[0], arr[1])
+ case []interface{}:
+ if len(v) != 2 {
+ return nil
+ }
+
+ str1, ok := v[0].(string)
+ if !ok {
+ return nil
+ }
+
+ str2, ok := v[1].(string)
+ if !ok {
+ return nil
+ }
+
+ return fn(str1, str2)
+ }
+ return nil
+ }
+}
+
+func str2Wrap(fn func(interface{}, interface{}) string) intrinsics.IntrinsicHandler {
+ return func(name string, input interface{}, template interface{}) interface{} {
+ // Check that the input is an array
+ if arr, ok := input.([]interface{}); ok {
+ if len(arr) != 2 {
+ return nil
+ }
+ return fn(arr[0], arr[1])
+ }
+ return nil
+ }
+}
+
+func str3Wrap(fn func(interface{}, interface{}, interface{}) string) intrinsics.IntrinsicHandler {
+ return func(name string, input interface{}, template interface{}) interface{} {
+ if arr, ok := input.([]interface{}); ok {
+ if len(arr) != 3 {
+ return nil
+ }
+ return fn(arr[0], arr[1], arr[2])
+ }
+ return nil
+ }
+}
+
+func str2AWrap(fn func(interface{}, []string) string) intrinsics.IntrinsicHandler {
+ return func(name string, input interface{}, template interface{}) interface{} {
+ if arr, ok := input.([]interface{}); ok {
+ switch len(arr) {
+ case 0:
+ return nil
+ case 1:
+ return fn(arr[0], []string{})
+ case 2:
+ if ls, ok := arr[1].([]interface{}); ok {
+ return fn(arr[0], interfaceAtostrA(ls))
+ }
+ }
+ return nil
+ }
+ return nil
+ }
+}
+
+func strAWrap(fn func([]string) string) intrinsics.IntrinsicHandler {
+ return func(name string, input interface{}, template interface{}) interface{} {
+ if arr, ok := input.([]interface{}); ok {
+ return fn(interfaceAtostrA(arr))
+ }
+ return nil
+ }
+}
+
+var EncoderIntrinsics = map[string]intrinsics.IntrinsicHandler{
+ "Fn::Base64": strWrap(Base64),
+ "Fn::And": strAWrap(And),
+ "Fn::Equals": str2Wrap(Equals),
+ "Fn::If": str3Wrap(If),
+ "Fn::Not": strAWrap(Not),
+ "Fn::Or": strAWrap(Or),
+ "Fn::FindInMap": str3Wrap(FindInMap),
+ "Fn::GetAtt": strSplit2Wrap(GetAtt),
+ "Fn::GetAZs": strWrap(GetAZs),
+ "Fn::ImportValue": strWrap(ImportValue),
+ "Fn::Join": str2Wrap(Join),
+ "Fn::Select": str2AWrap(Select),
+ "Fn::Split": str2Wrap(Split),
+ "Fn::Sub": strWrap(Sub),
+ "Ref": strWrap(Ref),
+ "Fn::Cidr": str3Wrap(CIDR),
+}
+
+// str -> str fns
+
+// Ref creates a CloudFormation Reference to another resource in the template
+func Ref(logicalName interface{}) string {
+ return encode(fmt.Sprintf(`{ "Ref": %q }`, logicalName))
+}
+
+// ImportValue returns the value of an output exported by another stack. You typically use this function to create cross-stack references. In the following example template snippets, Stack A exports VPC security group values and Stack B imports them.
+func ImportValue(name interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::ImportValue": %q }`, name))
+}
+
+// Base64 returns the Base64 representation of the input string. This function is typically used to pass encoded data to Amazon EC2 instances by way of the UserData property
+func Base64(input interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::Base64": %q }`, input))
+}
+
+// GetAZs returns an array that lists Availability Zones for a specified region. Because customers have access to different Availability Zones, the intrinsic function Fn::GetAZs enables template authors to write templates that adapt to the calling user's access. That way you don't have to hard-code a full list of Availability Zones for a specified region.
+func GetAZs(region interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::GetAZs": %q }`, region))
+}
+
+// Sub substitutes variables in an input string with values that you specify. In your templates, you can use this function to construct commands or outputs that include values that aren't available until you create or update a stack.
+func Sub(value interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::Sub" : %q }`, value))
+}
+
+// (str, str) -> str
+
+// GetAtt returns the value of an attribute from a resource in the template.
+func GetAtt(logicalName string, attribute string) string {
+ return encode(fmt.Sprintf(`{ "Fn::GetAtt" : [ %q, %q ] }`, logicalName, attribute))
+}
+
+// Split splits a string into a list of string values so that you can select an element from the resulting string list, use the Fn::Split intrinsic function. Specify the location of splits with a delimiter, such as , (a comma). After you split a string, use the Fn::Select function to pick a specific element.
+func Split(delimiter, source interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::Split" : [ %q, %q ] }`, delimiter, source))
+}
+
+// Equals compares if two values are equal. Returns true if the two values are equal or false if they aren't.
+func Equals(value1, value2 interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::Equals" : [ %q, %q ] }`, value1, value2))
+}
+
+// (str, str, str) -> str
+
+// CIDR returns an array of CIDR address blocks. The number of CIDR blocks returned is dependent on the count parameter.
+func CIDR(ipBlock, count, cidrBits interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::Cidr" : [ %q, %q, %q ] }`, ipBlock, count, cidrBits))
+}
+
+// FindInMap returns the value corresponding to keys in a two-level map that is declared in the Mappings section.
+func FindInMap(mapName, topLevelKey, secondLevelKey interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::FindInMap" : [ %q, %q, %q ] }`, mapName, topLevelKey, secondLevelKey))
+}
+
+// If returns one value if the specified condition evaluates to true and another value if the specified condition evaluates to false. Currently, AWS CloudFormation supports the Fn::If intrinsic function in the metadata attribute, update policy attribute, and property values in the Resources section and Outputs sections of a template. You can use the AWS::NoValue pseudo parameter as a return value to remove the corresponding property.
+func If(value, ifEqual, ifNotEqual interface{}) string {
+ return encode(fmt.Sprintf(`{ "Fn::If" : [ %q, %q, %q ] }`, value, ifEqual, ifNotEqual))
+}
+
+// (str, []str) -> str
+
+// Join appends a set of values into a single value, separated by the specified delimiter. If a delimiter is the empty string, the set of values are concatenated with no delimiter.
+func Join(delimiter interface{}, value interface{}) string {
+ switch v := value.(type) {
+ case []string:
+ return encode(fmt.Sprintf(`{ "Fn::Join": [ %q, [ %v ] ] }`, delimiter, printList(value.([]string))))
+ case []interface{}:
+ return encode(fmt.Sprintf(`{ "Fn::Join": [ %q, [ %v ] ] }`, delimiter, printList(interfaceAtostrA(value.([]interface{})))))
+ case string:
+ return encode(fmt.Sprintf(`{ "Fn::Join": [ %q, %q ] }`, delimiter, value))
+ default:
+ fmt.Printf("Unsupported type for Join: %T\n", v)
+ return encode(fmt.Sprintf(`{ "Fn::Join": [ %q, %q ] }`, delimiter, value))
+ }
+}
+
+// Select returns a single object from a list of objects by index.
+func Select(index interface{}, list []string) string {
+ if len(list) == 1 {
+ return encode(fmt.Sprintf(`{ "Fn::Select": [ %q, %q ] }`, index, list[0]))
+ }
+ return encode(fmt.Sprintf(`{ "Fn::Select": [ %q, [ %v ] ] }`, index, printList(list)))
+}
+
+// ([]str) -> str
+
+// And returns true if all the specified conditions evaluate to true, or returns false if any one of the conditions evaluates to false. Fn::And acts as an AND operator. The minimum number of conditions that you can include is 2, and the maximum is 10.
+func And(conditions []string) string {
+ return encode(fmt.Sprintf(`{ "Fn::And": [ %v ] }`, printList(conditions)))
+}
+
+// Not returns true for a condition that evaluates to false or returns false for a condition that evaluates to true. Fn::Not acts as a NOT operator.
+func Not(conditions []string) string {
+ return encode(fmt.Sprintf(`{ "Fn::Not": [ %v ] }`, printList(conditions)))
+}
+
+// Or returns true if any one of the specified conditions evaluate to true, or returns false if all of the conditions evaluates to false. Fn::Or acts as an OR operator. The minimum number of conditions that you can include is 2, and the maximum is 10.
+func Or(conditions []string) string {
+ return encode(fmt.Sprintf(`{ "Fn::Or": [ %v ] }`, printList(conditions)))
+}
+
+// encode takes a string representation of an intrinsic function, and base64 encodes it.
+// This prevents the escaping issues when nesting multiple layers of intrinsic functions.
+func encode(value string) string {
+ return base64.StdEncoding.EncodeToString([]byte(value))
+}
+
+func printList(values []string) string {
+ escaped := make([]string, len(values))
+ for i := range values {
+ escaped[i] = fmt.Sprintf("%q", values[i])
+ }
+ return strings.Join(escaped, `,`)
+}
+
+func interfaceAtostrA(values []interface{}) []string {
+ converted := make([]string, len(values))
+ for i := range values {
+ converted[i] = fmt.Sprintf("%v", values[i])
+ }
+ return converted
+}
diff --git a/goformation/cloudformation/intrinsics_test.go b/goformation/cloudformation/intrinsics_test.go
new file mode 100644
index 0000000000..7746062d7b
--- /dev/null
+++ b/goformation/cloudformation/intrinsics_test.go
@@ -0,0 +1,132 @@
+package cloudformation_test
+
+import (
+ "fmt"
+ "strings"
+
+ "goformation/v4"
+
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+)
+
+var _ = Describe("Goformation", func() {
+ Context("with a YAML template that contains an intrinsic", func() {
+
+ tests := []struct {
+ Name string
+ Input string
+ Expected string
+ }{
+ {
+ Name: "Ref",
+ Input: `!Ref tvalue`,
+ Expected: `{"Ref":"tvalue"}`,
+ },
+ {
+ Name: "ImportValue",
+ Input: `!ImportValue tvalue`,
+ Expected: `{"Fn::ImportValue":"tvalue"}`,
+ },
+ {
+ Name: "Base64",
+ Input: `!Base64 tvalue`,
+ Expected: `{"Fn::Base64":"tvalue"}`,
+ },
+ {
+ Name: "GetAZs",
+ Input: `!GetAZs tvalue`,
+ Expected: `{"Fn::GetAZs":"tvalue"}`,
+ },
+ {
+ Name: "Sub",
+ Input: `!Sub tvalue`,
+ Expected: `{"Fn::Sub":"tvalue"}`,
+ },
+ {
+ Name: "GetAtt",
+ Input: `!GetAtt object.property`,
+ Expected: `{"Fn::GetAtt":["object","property"]}`,
+ },
+ {
+ Name: "Split",
+ Input: `!Split [d, sss]`,
+ Expected: `{"Fn::Split":["d","sss"]}`,
+ },
+ {
+ Name: "Equals",
+ Input: `!Equals [a, b]`,
+ Expected: `{"Fn::Equals":["a","b"]}`,
+ },
+ {
+ Name: "CIDR",
+ Input: `!Cidr [a, b, c]`,
+ Expected: `{"Fn::Cidr":["a","b","c"]}`,
+ },
+ {
+ Name: "FindInMap",
+ Input: `!FindInMap [a, b, c]`,
+ Expected: `{"Fn::FindInMap":["a","b","c"]}`,
+ },
+ {
+ Name: "If",
+ Input: `!If [a, b, c]`,
+ Expected: `{"Fn::If":["a","b","c"]}`,
+ },
+ {
+ Name: "Join",
+ Input: `!Join [a, [b, c]]`,
+ Expected: `{"Fn::Join":["a",["b","c"]]}`,
+ },
+ {
+ Name: "Select",
+ Input: `!Select [a, [b, c]]`,
+ Expected: `{"Fn::Select":["a",["b","c"]]}`,
+ },
+ {
+ Name: "And",
+ Input: `!And [a, b, c]`,
+ Expected: `{"Fn::And":["a","b","c"]}`,
+ },
+ {
+ Name: "Not",
+ Input: `!Not [a, b, c]`,
+ Expected: `{"Fn::Not":["a","b","c"]}`,
+ },
+ {
+ Name: "Or",
+ Input: `!Or [a, b, c]`,
+ Expected: `{"Fn::Or":["a","b","c"]}`,
+ },
+ }
+
+ for _, test := range tests {
+ test := test
+
+ It("should replace "+test.Name+" with the JSON expanded value", func() {
+ templateYamlStr := `
+Resources:
+ TestBucket:
+ Type: AWS::S3::Bucket
+ Properties:
+ BucketName: %s`
+ inputTemplate := fmt.Sprintf(templateYamlStr, test.Input)
+ template, err := goformation.ParseYAML([]byte(inputTemplate))
+
+ Expect(err).To(BeNil())
+
+ raw, err := template.JSON()
+ output := string(raw)
+ Expect(err).To(BeNil())
+ output = strings.Replace(output, " ", "", -1)
+ output = strings.Replace(output, "\n", "", -1)
+
+ templateJSON := fmt.Sprintf(
+ `{"Resources":{"TestBucket":{"Type":"AWS::S3::Bucket","Properties":{"BucketName":%s}}}}`,
+ test.Expected,
+ )
+ Expect(output).To(BeEquivalentTo(templateJSON))
+ })
+ }
+ })
+})
diff --git a/goformation/cloudformation/iot/aws-iot-accountauditconfiguration.go b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration.go
new file mode 100644
index 0000000000..801604d129
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration.go
@@ -0,0 +1,123 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccountAuditConfiguration AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html
+type AccountAuditConfiguration struct {
+
+ // AccountId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html#cfn-iot-accountauditconfiguration-accountid
+ AccountId *types.Value `json:"AccountId,omitempty"`
+
+ // AuditCheckConfigurations AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations
+ AuditCheckConfigurations *AccountAuditConfiguration_AuditCheckConfigurations `json:"AuditCheckConfigurations,omitempty"`
+
+ // AuditNotificationTargetConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html#cfn-iot-accountauditconfiguration-auditnotificationtargetconfigurations
+ AuditNotificationTargetConfigurations *AccountAuditConfiguration_AuditNotificationTargetConfigurations `json:"AuditNotificationTargetConfigurations,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-accountauditconfiguration.html#cfn-iot-accountauditconfiguration-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccountAuditConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoT::AccountAuditConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AccountAuditConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties AccountAuditConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AccountAuditConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties AccountAuditConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AccountAuditConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfiguration.go b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfiguration.go
new file mode 100644
index 0000000000..2b751c3780
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfiguration.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccountAuditConfiguration_AuditCheckConfiguration AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html
+type AccountAuditConfiguration_AuditCheckConfiguration struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfiguration.html#cfn-iot-accountauditconfiguration-auditcheckconfiguration-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccountAuditConfiguration_AuditCheckConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfigurations.go b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfigurations.go
new file mode 100644
index 0000000000..f1eea672f0
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditcheckconfigurations.go
@@ -0,0 +1,100 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccountAuditConfiguration_AuditCheckConfigurations AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html
+type AccountAuditConfiguration_AuditCheckConfigurations struct {
+
+ // AuthenticatedCognitoRoleOverlyPermissiveCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-authenticatedcognitoroleoverlypermissivecheck
+ AuthenticatedCognitoRoleOverlyPermissiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"AuthenticatedCognitoRoleOverlyPermissiveCheck,omitempty"`
+
+ // CaCertificateExpiringCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-cacertificateexpiringcheck
+ CaCertificateExpiringCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"CaCertificateExpiringCheck,omitempty"`
+
+ // CaCertificateKeyQualityCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-cacertificatekeyqualitycheck
+ CaCertificateKeyQualityCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"CaCertificateKeyQualityCheck,omitempty"`
+
+ // ConflictingClientIdsCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-conflictingclientidscheck
+ ConflictingClientIdsCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"ConflictingClientIdsCheck,omitempty"`
+
+ // DeviceCertificateExpiringCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-devicecertificateexpiringcheck
+ DeviceCertificateExpiringCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"DeviceCertificateExpiringCheck,omitempty"`
+
+ // DeviceCertificateKeyQualityCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-devicecertificatekeyqualitycheck
+ DeviceCertificateKeyQualityCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"DeviceCertificateKeyQualityCheck,omitempty"`
+
+ // DeviceCertificateSharedCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-devicecertificatesharedcheck
+ DeviceCertificateSharedCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"DeviceCertificateSharedCheck,omitempty"`
+
+ // IotPolicyOverlyPermissiveCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-iotpolicyoverlypermissivecheck
+ IotPolicyOverlyPermissiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"IotPolicyOverlyPermissiveCheck,omitempty"`
+
+ // IotRoleAliasAllowsAccessToUnusedServicesCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-iotrolealiasallowsaccesstounusedservicescheck
+ IotRoleAliasAllowsAccessToUnusedServicesCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"IotRoleAliasAllowsAccessToUnusedServicesCheck,omitempty"`
+
+ // IotRoleAliasOverlyPermissiveCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-iotrolealiasoverlypermissivecheck
+ IotRoleAliasOverlyPermissiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"IotRoleAliasOverlyPermissiveCheck,omitempty"`
+
+ // LoggingDisabledCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-loggingdisabledcheck
+ LoggingDisabledCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"LoggingDisabledCheck,omitempty"`
+
+ // RevokedCaCertificateStillActiveCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-revokedcacertificatestillactivecheck
+ RevokedCaCertificateStillActiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"RevokedCaCertificateStillActiveCheck,omitempty"`
+
+ // RevokedDeviceCertificateStillActiveCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-revokeddevicecertificatestillactivecheck
+ RevokedDeviceCertificateStillActiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"RevokedDeviceCertificateStillActiveCheck,omitempty"`
+
+ // UnauthenticatedCognitoRoleOverlyPermissiveCheck AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditcheckconfigurations.html#cfn-iot-accountauditconfiguration-auditcheckconfigurations-unauthenticatedcognitoroleoverlypermissivecheck
+ UnauthenticatedCognitoRoleOverlyPermissiveCheck *AccountAuditConfiguration_AuditCheckConfiguration `json:"UnauthenticatedCognitoRoleOverlyPermissiveCheck,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccountAuditConfiguration_AuditCheckConfigurations) AWSCloudFormationType() string {
+ return "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtarget.go b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtarget.go
new file mode 100644
index 0000000000..a7d9f475a7
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtarget.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccountAuditConfiguration_AuditNotificationTarget AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html
+type AccountAuditConfiguration_AuditNotificationTarget struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html#cfn-iot-accountauditconfiguration-auditnotificationtarget-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html#cfn-iot-accountauditconfiguration-auditnotificationtarget-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // TargetArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtarget.html#cfn-iot-accountauditconfiguration-auditnotificationtarget-targetarn
+ TargetArn *types.Value `json:"TargetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccountAuditConfiguration_AuditNotificationTarget) AWSCloudFormationType() string {
+ return "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtargetconfigurations.go b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtargetconfigurations.go
new file mode 100644
index 0000000000..7ec1e066b1
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-accountauditconfiguration_auditnotificationtargetconfigurations.go
@@ -0,0 +1,35 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccountAuditConfiguration_AuditNotificationTargetConfigurations AWS CloudFormation Resource (AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtargetconfigurations.html
+type AccountAuditConfiguration_AuditNotificationTargetConfigurations struct {
+
+ // Sns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-accountauditconfiguration-auditnotificationtargetconfigurations.html#cfn-iot-accountauditconfiguration-auditnotificationtargetconfigurations-sns
+ Sns *AccountAuditConfiguration_AuditNotificationTarget `json:"Sns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccountAuditConfiguration_AuditNotificationTargetConfigurations) AWSCloudFormationType() string {
+ return "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-authorizer.go b/goformation/cloudformation/iot/aws-iot-authorizer.go
new file mode 100644
index 0000000000..b22fadc3d4
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-authorizer.go
@@ -0,0 +1,139 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Authorizer AWS CloudFormation Resource (AWS::IoT::Authorizer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html
+type Authorizer struct {
+
+ // AuthorizerFunctionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html#cfn-iot-authorizer-authorizerfunctionarn
+ AuthorizerFunctionArn *types.Value `json:"AuthorizerFunctionArn,omitempty"`
+
+ // AuthorizerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html#cfn-iot-authorizer-authorizername
+ AuthorizerName *types.Value `json:"AuthorizerName,omitempty"`
+
+ // SigningDisabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html#cfn-iot-authorizer-signingdisabled
+ SigningDisabled *types.Value `json:"SigningDisabled,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html#cfn-iot-authorizer-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html#cfn-iot-authorizer-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TokenKeyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html#cfn-iot-authorizer-tokenkeyname
+ TokenKeyName *types.Value `json:"TokenKeyName,omitempty"`
+
+ // TokenSigningPublicKeys AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html#cfn-iot-authorizer-tokensigningpublickeys
+ TokenSigningPublicKeys map[string]*types.Value `json:"TokenSigningPublicKeys,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Authorizer) AWSCloudFormationType() string {
+ return "AWS::IoT::Authorizer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Authorizer) MarshalJSON() ([]byte, error) {
+ type Properties Authorizer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Authorizer) UnmarshalJSON(b []byte) error {
+ type Properties Authorizer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Authorizer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-authorizer_tags.go b/goformation/cloudformation/iot/aws-iot-authorizer_tags.go
new file mode 100644
index 0000000000..c41cb39bd2
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-authorizer_tags.go
@@ -0,0 +1,35 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Authorizer_Tags AWS CloudFormation Resource (AWS::IoT::Authorizer.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-authorizer-tags.html
+type Authorizer_Tags struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-authorizer-tags.html#cfn-iot-authorizer-tags-tags
+ Tags []interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Authorizer_Tags) AWSCloudFormationType() string {
+ return "AWS::IoT::Authorizer.Tags"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-authorizer_tokensigningpublickeys.go b/goformation/cloudformation/iot/aws-iot-authorizer_tokensigningpublickeys.go
new file mode 100644
index 0000000000..0e20b1059b
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-authorizer_tokensigningpublickeys.go
@@ -0,0 +1,30 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Authorizer_TokenSigningPublicKeys AWS CloudFormation Resource (AWS::IoT::Authorizer.TokenSigningPublicKeys)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-authorizer-tokensigningpublickeys.html
+type Authorizer_TokenSigningPublicKeys struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Authorizer_TokenSigningPublicKeys) AWSCloudFormationType() string {
+ return "AWS::IoT::Authorizer.TokenSigningPublicKeys"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-certificate.go b/goformation/cloudformation/iot/aws-iot-certificate.go
new file mode 100644
index 0000000000..40d664bf60
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-certificate.go
@@ -0,0 +1,128 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Certificate AWS CloudFormation Resource (AWS::IoT::Certificate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html
+type Certificate struct {
+
+ // CACertificatePem AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-cacertificatepem
+ CACertificatePem *types.Value `json:"CACertificatePem,omitempty"`
+
+ // CertificateMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-certificatemode
+ CertificateMode *types.Value `json:"CertificateMode,omitempty"`
+
+ // CertificatePem AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-certificatepem
+ CertificatePem *types.Value `json:"CertificatePem,omitempty"`
+
+ // CertificateSigningRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-certificatesigningrequest
+ CertificateSigningRequest *types.Value `json:"CertificateSigningRequest,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-certificate.html#cfn-iot-certificate-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Certificate) AWSCloudFormationType() string {
+ return "AWS::IoT::Certificate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Certificate) MarshalJSON() ([]byte, error) {
+ type Properties Certificate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Certificate) UnmarshalJSON(b []byte) error {
+ type Properties Certificate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Certificate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-custommetric.go b/goformation/cloudformation/iot/aws-iot-custommetric.go
new file mode 100644
index 0000000000..e8ee7dbba0
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-custommetric.go
@@ -0,0 +1,124 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// CustomMetric AWS CloudFormation Resource (AWS::IoT::CustomMetric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html
+type CustomMetric struct {
+
+ // DisplayName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html#cfn-iot-custommetric-displayname
+ DisplayName *types.Value `json:"DisplayName,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html#cfn-iot-custommetric-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // MetricType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html#cfn-iot-custommetric-metrictype
+ MetricType *types.Value `json:"MetricType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-custommetric.html#cfn-iot-custommetric-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomMetric) AWSCloudFormationType() string {
+ return "AWS::IoT::CustomMetric"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CustomMetric) MarshalJSON() ([]byte, error) {
+ type Properties CustomMetric
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CustomMetric) UnmarshalJSON(b []byte) error {
+ type Properties CustomMetric
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CustomMetric(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-dimension.go b/goformation/cloudformation/iot/aws-iot-dimension.go
new file mode 100644
index 0000000000..49f7649e61
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-dimension.go
@@ -0,0 +1,124 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dimension AWS CloudFormation Resource (AWS::IoT::Dimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html
+type Dimension struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html#cfn-iot-dimension-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // StringValues AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html#cfn-iot-dimension-stringvalues
+ StringValues *types.Value `json:"StringValues,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html#cfn-iot-dimension-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-dimension.html#cfn-iot-dimension-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dimension) AWSCloudFormationType() string {
+ return "AWS::IoT::Dimension"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Dimension) MarshalJSON() ([]byte, error) {
+ type Properties Dimension
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Dimension) UnmarshalJSON(b []byte) error {
+ type Properties Dimension
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Dimension(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-domainconfiguration.go b/goformation/cloudformation/iot/aws-iot-domainconfiguration.go
new file mode 100644
index 0000000000..006553efc3
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-domainconfiguration.go
@@ -0,0 +1,144 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainConfiguration AWS CloudFormation Resource (AWS::IoT::DomainConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html
+type DomainConfiguration struct {
+
+ // AuthorizerConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-authorizerconfig
+ AuthorizerConfig *DomainConfiguration_AuthorizerConfig `json:"AuthorizerConfig,omitempty"`
+
+ // DomainConfigurationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-domainconfigurationname
+ DomainConfigurationName *types.Value `json:"DomainConfigurationName,omitempty"`
+
+ // DomainConfigurationStatus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-domainconfigurationstatus
+ DomainConfigurationStatus *types.Value `json:"DomainConfigurationStatus,omitempty"`
+
+ // DomainName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-domainname
+ DomainName *types.Value `json:"DomainName,omitempty"`
+
+ // ServerCertificateArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-servercertificatearns
+ ServerCertificateArns *types.Value `json:"ServerCertificateArns,omitempty"`
+
+ // ServiceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-servicetype
+ ServiceType *types.Value `json:"ServiceType,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // ValidationCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html#cfn-iot-domainconfiguration-validationcertificatearn
+ ValidationCertificateArn *types.Value `json:"ValidationCertificateArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoT::DomainConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DomainConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties DomainConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DomainConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties DomainConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DomainConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-domainconfiguration_authorizerconfig.go b/goformation/cloudformation/iot/aws-iot-domainconfiguration_authorizerconfig.go
new file mode 100644
index 0000000000..a2b5b1a156
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-domainconfiguration_authorizerconfig.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainConfiguration_AuthorizerConfig AWS CloudFormation Resource (AWS::IoT::DomainConfiguration.AuthorizerConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html
+type DomainConfiguration_AuthorizerConfig struct {
+
+ // AllowAuthorizerOverride AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html#cfn-iot-domainconfiguration-authorizerconfig-allowauthorizeroverride
+ AllowAuthorizerOverride *types.Value `json:"AllowAuthorizerOverride,omitempty"`
+
+ // DefaultAuthorizerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html#cfn-iot-domainconfiguration-authorizerconfig-defaultauthorizername
+ DefaultAuthorizerName *types.Value `json:"DefaultAuthorizerName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainConfiguration_AuthorizerConfig) AWSCloudFormationType() string {
+ return "AWS::IoT::DomainConfiguration.AuthorizerConfig"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-domainconfiguration_servercertificatesummary.go b/goformation/cloudformation/iot/aws-iot-domainconfiguration_servercertificatesummary.go
new file mode 100644
index 0000000000..ee67e40781
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-domainconfiguration_servercertificatesummary.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainConfiguration_ServerCertificateSummary AWS CloudFormation Resource (AWS::IoT::DomainConfiguration.ServerCertificateSummary)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html
+type DomainConfiguration_ServerCertificateSummary struct {
+
+ // ServerCertificateArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html#cfn-iot-domainconfiguration-servercertificatesummary-servercertificatearn
+ ServerCertificateArn *types.Value `json:"ServerCertificateArn,omitempty"`
+
+ // ServerCertificateStatus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html#cfn-iot-domainconfiguration-servercertificatesummary-servercertificatestatus
+ ServerCertificateStatus *types.Value `json:"ServerCertificateStatus,omitempty"`
+
+ // ServerCertificateStatusDetail AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html#cfn-iot-domainconfiguration-servercertificatesummary-servercertificatestatusdetail
+ ServerCertificateStatusDetail *types.Value `json:"ServerCertificateStatusDetail,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainConfiguration_ServerCertificateSummary) AWSCloudFormationType() string {
+ return "AWS::IoT::DomainConfiguration.ServerCertificateSummary"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-domainconfiguration_tags.go b/goformation/cloudformation/iot/aws-iot-domainconfiguration_tags.go
new file mode 100644
index 0000000000..6cd2210542
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-domainconfiguration_tags.go
@@ -0,0 +1,35 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DomainConfiguration_Tags AWS CloudFormation Resource (AWS::IoT::DomainConfiguration.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-tags.html
+type DomainConfiguration_Tags struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-tags.html#cfn-iot-domainconfiguration-tags-tags
+ Tags []interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DomainConfiguration_Tags) AWSCloudFormationType() string {
+ return "AWS::IoT::DomainConfiguration.Tags"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-fleetmetric.go b/goformation/cloudformation/iot/aws-iot-fleetmetric.go
new file mode 100644
index 0000000000..01915f349c
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-fleetmetric.go
@@ -0,0 +1,154 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// FleetMetric AWS CloudFormation Resource (AWS::IoT::FleetMetric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html
+type FleetMetric struct {
+
+ // AggregationField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-aggregationfield
+ AggregationField *types.Value `json:"AggregationField,omitempty"`
+
+ // AggregationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-aggregationtype
+ AggregationType *FleetMetric_AggregationType `json:"AggregationType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IndexName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Period AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-period
+ Period *types.Value `json:"Period,omitempty"`
+
+ // QueryString AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-querystring
+ QueryString *types.Value `json:"QueryString,omitempty"`
+
+ // QueryVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-queryversion
+ QueryVersion *types.Value `json:"QueryVersion,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-fleetmetric.html#cfn-iot-fleetmetric-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FleetMetric) AWSCloudFormationType() string {
+ return "AWS::IoT::FleetMetric"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FleetMetric) MarshalJSON() ([]byte, error) {
+ type Properties FleetMetric
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FleetMetric) UnmarshalJSON(b []byte) error {
+ type Properties FleetMetric
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FleetMetric(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-fleetmetric_aggregationtype.go b/goformation/cloudformation/iot/aws-iot-fleetmetric_aggregationtype.go
new file mode 100644
index 0000000000..69f118f8ee
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-fleetmetric_aggregationtype.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FleetMetric_AggregationType AWS CloudFormation Resource (AWS::IoT::FleetMetric.AggregationType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-fleetmetric-aggregationtype.html
+type FleetMetric_AggregationType struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-fleetmetric-aggregationtype.html#cfn-iot-fleetmetric-aggregationtype-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Values AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-fleetmetric-aggregationtype.html#cfn-iot-fleetmetric-aggregationtype-values
+ Values *types.Value `json:"Values,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FleetMetric_AggregationType) AWSCloudFormationType() string {
+ return "AWS::IoT::FleetMetric.AggregationType"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-jobtemplate.go b/goformation/cloudformation/iot/aws-iot-jobtemplate.go
new file mode 100644
index 0000000000..57f3ea249d
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-jobtemplate.go
@@ -0,0 +1,154 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobTemplate AWS CloudFormation Resource (AWS::IoT::JobTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html
+type JobTemplate struct {
+
+ // AbortConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-abortconfig
+ AbortConfig interface{} `json:"AbortConfig,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Document AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-document
+ Document *types.Value `json:"Document,omitempty"`
+
+ // DocumentSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-documentsource
+ DocumentSource *types.Value `json:"DocumentSource,omitempty"`
+
+ // JobArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-jobarn
+ JobArn *types.Value `json:"JobArn,omitempty"`
+
+ // JobExecutionsRolloutConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-jobexecutionsrolloutconfig
+ JobExecutionsRolloutConfig interface{} `json:"JobExecutionsRolloutConfig,omitempty"`
+
+ // JobTemplateId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-jobtemplateid
+ JobTemplateId *types.Value `json:"JobTemplateId,omitempty"`
+
+ // PresignedUrlConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-presignedurlconfig
+ PresignedUrlConfig interface{} `json:"PresignedUrlConfig,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TimeoutConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-jobtemplate.html#cfn-iot-jobtemplate-timeoutconfig
+ TimeoutConfig interface{} `json:"TimeoutConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobTemplate) AWSCloudFormationType() string {
+ return "AWS::IoT::JobTemplate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r JobTemplate) MarshalJSON() ([]byte, error) {
+ type Properties JobTemplate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *JobTemplate) UnmarshalJSON(b []byte) error {
+ type Properties JobTemplate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = JobTemplate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-logging.go b/goformation/cloudformation/iot/aws-iot-logging.go
new file mode 100644
index 0000000000..e19dd48418
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-logging.go
@@ -0,0 +1,118 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Logging AWS CloudFormation Resource (AWS::IoT::Logging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html
+type Logging struct {
+
+ // AccountId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html#cfn-iot-logging-accountid
+ AccountId *types.Value `json:"AccountId,omitempty"`
+
+ // DefaultLogLevel AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html#cfn-iot-logging-defaultloglevel
+ DefaultLogLevel *types.Value `json:"DefaultLogLevel,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-logging.html#cfn-iot-logging-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Logging) AWSCloudFormationType() string {
+ return "AWS::IoT::Logging"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Logging) MarshalJSON() ([]byte, error) {
+ type Properties Logging
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Logging) UnmarshalJSON(b []byte) error {
+ type Properties Logging
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Logging(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-mitigationaction.go b/goformation/cloudformation/iot/aws-iot-mitigationaction.go
new file mode 100644
index 0000000000..534b45409c
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-mitigationaction.go
@@ -0,0 +1,124 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// MitigationAction AWS CloudFormation Resource (AWS::IoT::MitigationAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html
+type MitigationAction struct {
+
+ // ActionName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html#cfn-iot-mitigationaction-actionname
+ ActionName *types.Value `json:"ActionName,omitempty"`
+
+ // ActionParams AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html#cfn-iot-mitigationaction-actionparams
+ ActionParams *MitigationAction_ActionParams `json:"ActionParams,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html#cfn-iot-mitigationaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-mitigationaction.html#cfn-iot-mitigationaction-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MitigationAction) AWSCloudFormationType() string {
+ return "AWS::IoT::MitigationAction"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MitigationAction) MarshalJSON() ([]byte, error) {
+ type Properties MitigationAction
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MitigationAction) UnmarshalJSON(b []byte) error {
+ type Properties MitigationAction
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MitigationAction(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-mitigationaction_actionparams.go b/goformation/cloudformation/iot/aws-iot-mitigationaction_actionparams.go
new file mode 100644
index 0000000000..36d22283c5
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-mitigationaction_actionparams.go
@@ -0,0 +1,60 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// MitigationAction_ActionParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.ActionParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html
+type MitigationAction_ActionParams struct {
+
+ // AddThingsToThingGroupParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-addthingstothinggroupparams
+ AddThingsToThingGroupParams *MitigationAction_AddThingsToThingGroupParams `json:"AddThingsToThingGroupParams,omitempty"`
+
+ // EnableIoTLoggingParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-enableiotloggingparams
+ EnableIoTLoggingParams *MitigationAction_EnableIoTLoggingParams `json:"EnableIoTLoggingParams,omitempty"`
+
+ // PublishFindingToSnsParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-publishfindingtosnsparams
+ PublishFindingToSnsParams *MitigationAction_PublishFindingToSnsParams `json:"PublishFindingToSnsParams,omitempty"`
+
+ // ReplaceDefaultPolicyVersionParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-replacedefaultpolicyversionparams
+ ReplaceDefaultPolicyVersionParams *MitigationAction_ReplaceDefaultPolicyVersionParams `json:"ReplaceDefaultPolicyVersionParams,omitempty"`
+
+ // UpdateCACertificateParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-updatecacertificateparams
+ UpdateCACertificateParams *MitigationAction_UpdateCACertificateParams `json:"UpdateCACertificateParams,omitempty"`
+
+ // UpdateDeviceCertificateParams AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-actionparams.html#cfn-iot-mitigationaction-actionparams-updatedevicecertificateparams
+ UpdateDeviceCertificateParams *MitigationAction_UpdateDeviceCertificateParams `json:"UpdateDeviceCertificateParams,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MitigationAction_ActionParams) AWSCloudFormationType() string {
+ return "AWS::IoT::MitigationAction.ActionParams"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-mitigationaction_addthingstothinggroupparams.go b/goformation/cloudformation/iot/aws-iot-mitigationaction_addthingstothinggroupparams.go
new file mode 100644
index 0000000000..d671338cfb
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-mitigationaction_addthingstothinggroupparams.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MitigationAction_AddThingsToThingGroupParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.AddThingsToThingGroupParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html
+type MitigationAction_AddThingsToThingGroupParams struct {
+
+ // OverrideDynamicGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html#cfn-iot-mitigationaction-addthingstothinggroupparams-overridedynamicgroups
+ OverrideDynamicGroups *types.Value `json:"OverrideDynamicGroups,omitempty"`
+
+ // ThingGroupNames AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-addthingstothinggroupparams.html#cfn-iot-mitigationaction-addthingstothinggroupparams-thinggroupnames
+ ThingGroupNames *types.Value `json:"ThingGroupNames,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MitigationAction_AddThingsToThingGroupParams) AWSCloudFormationType() string {
+ return "AWS::IoT::MitigationAction.AddThingsToThingGroupParams"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-mitigationaction_enableiotloggingparams.go b/goformation/cloudformation/iot/aws-iot-mitigationaction_enableiotloggingparams.go
new file mode 100644
index 0000000000..1dd587617b
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-mitigationaction_enableiotloggingparams.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MitigationAction_EnableIoTLoggingParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.EnableIoTLoggingParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html
+type MitigationAction_EnableIoTLoggingParams struct {
+
+ // LogLevel AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html#cfn-iot-mitigationaction-enableiotloggingparams-loglevel
+ LogLevel *types.Value `json:"LogLevel,omitempty"`
+
+ // RoleArnForLogging AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-enableiotloggingparams.html#cfn-iot-mitigationaction-enableiotloggingparams-rolearnforlogging
+ RoleArnForLogging *types.Value `json:"RoleArnForLogging,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MitigationAction_EnableIoTLoggingParams) AWSCloudFormationType() string {
+ return "AWS::IoT::MitigationAction.EnableIoTLoggingParams"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-mitigationaction_publishfindingtosnsparams.go b/goformation/cloudformation/iot/aws-iot-mitigationaction_publishfindingtosnsparams.go
new file mode 100644
index 0000000000..e84183cdec
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-mitigationaction_publishfindingtosnsparams.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MitigationAction_PublishFindingToSnsParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.PublishFindingToSnsParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-publishfindingtosnsparams.html
+type MitigationAction_PublishFindingToSnsParams struct {
+
+ // TopicArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-publishfindingtosnsparams.html#cfn-iot-mitigationaction-publishfindingtosnsparams-topicarn
+ TopicArn *types.Value `json:"TopicArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MitigationAction_PublishFindingToSnsParams) AWSCloudFormationType() string {
+ return "AWS::IoT::MitigationAction.PublishFindingToSnsParams"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-mitigationaction_replacedefaultpolicyversionparams.go b/goformation/cloudformation/iot/aws-iot-mitigationaction_replacedefaultpolicyversionparams.go
new file mode 100644
index 0000000000..ae50798eac
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-mitigationaction_replacedefaultpolicyversionparams.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MitigationAction_ReplaceDefaultPolicyVersionParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html
+type MitigationAction_ReplaceDefaultPolicyVersionParams struct {
+
+ // TemplateName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-replacedefaultpolicyversionparams.html#cfn-iot-mitigationaction-replacedefaultpolicyversionparams-templatename
+ TemplateName *types.Value `json:"TemplateName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MitigationAction_ReplaceDefaultPolicyVersionParams) AWSCloudFormationType() string {
+ return "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-mitigationaction_updatecacertificateparams.go b/goformation/cloudformation/iot/aws-iot-mitigationaction_updatecacertificateparams.go
new file mode 100644
index 0000000000..64a2054663
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-mitigationaction_updatecacertificateparams.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MitigationAction_UpdateCACertificateParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.UpdateCACertificateParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatecacertificateparams.html
+type MitigationAction_UpdateCACertificateParams struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatecacertificateparams.html#cfn-iot-mitigationaction-updatecacertificateparams-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MitigationAction_UpdateCACertificateParams) AWSCloudFormationType() string {
+ return "AWS::IoT::MitigationAction.UpdateCACertificateParams"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-mitigationaction_updatedevicecertificateparams.go b/goformation/cloudformation/iot/aws-iot-mitigationaction_updatedevicecertificateparams.go
new file mode 100644
index 0000000000..f831b5ca92
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-mitigationaction_updatedevicecertificateparams.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MitigationAction_UpdateDeviceCertificateParams AWS CloudFormation Resource (AWS::IoT::MitigationAction.UpdateDeviceCertificateParams)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatedevicecertificateparams.html
+type MitigationAction_UpdateDeviceCertificateParams struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-mitigationaction-updatedevicecertificateparams.html#cfn-iot-mitigationaction-updatedevicecertificateparams-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MitigationAction_UpdateDeviceCertificateParams) AWSCloudFormationType() string {
+ return "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-policy.go b/goformation/cloudformation/iot/aws-iot-policy.go
new file mode 100644
index 0000000000..70f9c2d01d
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-policy.go
@@ -0,0 +1,113 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Policy AWS CloudFormation Resource (AWS::IoT::Policy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html
+type Policy struct {
+
+ // PolicyDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html#cfn-iot-policy-policydocument
+ PolicyDocument interface{} `json:"PolicyDocument,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html#cfn-iot-policy-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Policy) AWSCloudFormationType() string {
+ return "AWS::IoT::Policy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Policy) MarshalJSON() ([]byte, error) {
+ type Properties Policy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Policy) UnmarshalJSON(b []byte) error {
+ type Properties Policy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Policy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-policyprincipalattachment.go b/goformation/cloudformation/iot/aws-iot-policyprincipalattachment.go
new file mode 100644
index 0000000000..fd814b162f
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-policyprincipalattachment.go
@@ -0,0 +1,113 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PolicyPrincipalAttachment AWS CloudFormation Resource (AWS::IoT::PolicyPrincipalAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html
+type PolicyPrincipalAttachment struct {
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html#cfn-iot-policyprincipalattachment-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // Principal AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html#cfn-iot-policyprincipalattachment-principal
+ Principal *types.Value `json:"Principal,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PolicyPrincipalAttachment) AWSCloudFormationType() string {
+ return "AWS::IoT::PolicyPrincipalAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PolicyPrincipalAttachment) MarshalJSON() ([]byte, error) {
+ type Properties PolicyPrincipalAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PolicyPrincipalAttachment) UnmarshalJSON(b []byte) error {
+ type Properties PolicyPrincipalAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PolicyPrincipalAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-provisioningtemplate.go b/goformation/cloudformation/iot/aws-iot-provisioningtemplate.go
new file mode 100644
index 0000000000..d22340aeb8
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-provisioningtemplate.go
@@ -0,0 +1,139 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ProvisioningTemplate AWS CloudFormation Resource (AWS::IoT::ProvisioningTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html
+type ProvisioningTemplate struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // PreProvisioningHook AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-preprovisioninghook
+ PreProvisioningHook *ProvisioningTemplate_ProvisioningHook `json:"PreProvisioningHook,omitempty"`
+
+ // ProvisioningRoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-provisioningrolearn
+ ProvisioningRoleArn *types.Value `json:"ProvisioningRoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TemplateBody AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-templatebody
+ TemplateBody *types.Value `json:"TemplateBody,omitempty"`
+
+ // TemplateName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html#cfn-iot-provisioningtemplate-templatename
+ TemplateName *types.Value `json:"TemplateName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ProvisioningTemplate) AWSCloudFormationType() string {
+ return "AWS::IoT::ProvisioningTemplate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ProvisioningTemplate) MarshalJSON() ([]byte, error) {
+ type Properties ProvisioningTemplate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ProvisioningTemplate) UnmarshalJSON(b []byte) error {
+ type Properties ProvisioningTemplate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ProvisioningTemplate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-provisioningtemplate_provisioninghook.go b/goformation/cloudformation/iot/aws-iot-provisioningtemplate_provisioninghook.go
new file mode 100644
index 0000000000..5870101343
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-provisioningtemplate_provisioninghook.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ProvisioningTemplate_ProvisioningHook AWS CloudFormation Resource (AWS::IoT::ProvisioningTemplate.ProvisioningHook)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html
+type ProvisioningTemplate_ProvisioningHook struct {
+
+ // PayloadVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html#cfn-iot-provisioningtemplate-provisioninghook-payloadversion
+ PayloadVersion *types.Value `json:"PayloadVersion,omitempty"`
+
+ // TargetArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html#cfn-iot-provisioningtemplate-provisioninghook-targetarn
+ TargetArn *types.Value `json:"TargetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ProvisioningTemplate_ProvisioningHook) AWSCloudFormationType() string {
+ return "AWS::IoT::ProvisioningTemplate.ProvisioningHook"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-provisioningtemplate_tags.go b/goformation/cloudformation/iot/aws-iot-provisioningtemplate_tags.go
new file mode 100644
index 0000000000..b98e08f424
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-provisioningtemplate_tags.go
@@ -0,0 +1,35 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ProvisioningTemplate_Tags AWS CloudFormation Resource (AWS::IoT::ProvisioningTemplate.Tags)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-tags.html
+type ProvisioningTemplate_Tags struct {
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-tags.html#cfn-iot-provisioningtemplate-tags-tags
+ Tags []interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ProvisioningTemplate_Tags) AWSCloudFormationType() string {
+ return "AWS::IoT::ProvisioningTemplate.Tags"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-resourcespecificlogging.go b/goformation/cloudformation/iot/aws-iot-resourcespecificlogging.go
new file mode 100644
index 0000000000..24446955e6
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-resourcespecificlogging.go
@@ -0,0 +1,118 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourceSpecificLogging AWS CloudFormation Resource (AWS::IoT::ResourceSpecificLogging)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html
+type ResourceSpecificLogging struct {
+
+ // LogLevel AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html#cfn-iot-resourcespecificlogging-loglevel
+ LogLevel *types.Value `json:"LogLevel,omitempty"`
+
+ // TargetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html#cfn-iot-resourcespecificlogging-targetname
+ TargetName *types.Value `json:"TargetName,omitempty"`
+
+ // TargetType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-resourcespecificlogging.html#cfn-iot-resourcespecificlogging-targettype
+ TargetType *types.Value `json:"TargetType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourceSpecificLogging) AWSCloudFormationType() string {
+ return "AWS::IoT::ResourceSpecificLogging"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResourceSpecificLogging) MarshalJSON() ([]byte, error) {
+ type Properties ResourceSpecificLogging
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResourceSpecificLogging) UnmarshalJSON(b []byte) error {
+ type Properties ResourceSpecificLogging
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResourceSpecificLogging(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-scheduledaudit.go b/goformation/cloudformation/iot/aws-iot-scheduledaudit.go
new file mode 100644
index 0000000000..9c91f2654e
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-scheduledaudit.go
@@ -0,0 +1,134 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ScheduledAudit AWS CloudFormation Resource (AWS::IoT::ScheduledAudit)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html
+type ScheduledAudit struct {
+
+ // DayOfMonth AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-dayofmonth
+ DayOfMonth *types.Value `json:"DayOfMonth,omitempty"`
+
+ // DayOfWeek AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-dayofweek
+ DayOfWeek *types.Value `json:"DayOfWeek,omitempty"`
+
+ // Frequency AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-frequency
+ Frequency *types.Value `json:"Frequency,omitempty"`
+
+ // ScheduledAuditName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-scheduledauditname
+ ScheduledAuditName *types.Value `json:"ScheduledAuditName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TargetCheckNames AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-scheduledaudit.html#cfn-iot-scheduledaudit-targetchecknames
+ TargetCheckNames *types.Value `json:"TargetCheckNames,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ScheduledAudit) AWSCloudFormationType() string {
+ return "AWS::IoT::ScheduledAudit"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ScheduledAudit) MarshalJSON() ([]byte, error) {
+ type Properties ScheduledAudit
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ScheduledAudit) UnmarshalJSON(b []byte) error {
+ type Properties ScheduledAudit
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ScheduledAudit(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile.go b/goformation/cloudformation/iot/aws-iot-securityprofile.go
new file mode 100644
index 0000000000..92df9d878f
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile.go
@@ -0,0 +1,139 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile AWS CloudFormation Resource (AWS::IoT::SecurityProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html
+type SecurityProfile struct {
+
+ // AdditionalMetricsToRetainV2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-additionalmetricstoretainv2
+ AdditionalMetricsToRetainV2 []SecurityProfile_MetricToRetain `json:"AdditionalMetricsToRetainV2,omitempty"`
+
+ // AlertTargets AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-alerttargets
+ AlertTargets map[string]SecurityProfile_AlertTarget `json:"AlertTargets,omitempty"`
+
+ // Behaviors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-behaviors
+ Behaviors []SecurityProfile_Behavior `json:"Behaviors,omitempty"`
+
+ // SecurityProfileDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-securityprofiledescription
+ SecurityProfileDescription *types.Value `json:"SecurityProfileDescription,omitempty"`
+
+ // SecurityProfileName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-securityprofilename
+ SecurityProfileName *types.Value `json:"SecurityProfileName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TargetArns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-securityprofile.html#cfn-iot-securityprofile-targetarns
+ TargetArns *types.Value `json:"TargetArns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SecurityProfile) MarshalJSON() ([]byte, error) {
+ type Properties SecurityProfile
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SecurityProfile) UnmarshalJSON(b []byte) error {
+ type Properties SecurityProfile
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SecurityProfile(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile_alerttarget.go b/goformation/cloudformation/iot/aws-iot-securityprofile_alerttarget.go
new file mode 100644
index 0000000000..e86a80302e
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile_alerttarget.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile_AlertTarget AWS CloudFormation Resource (AWS::IoT::SecurityProfile.AlertTarget)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html
+type SecurityProfile_AlertTarget struct {
+
+ // AlertTargetArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html#cfn-iot-securityprofile-alerttarget-alerttargetarn
+ AlertTargetArn *types.Value `json:"AlertTargetArn,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html#cfn-iot-securityprofile-alerttarget-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile_AlertTarget) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile.AlertTarget"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile_behavior.go b/goformation/cloudformation/iot/aws-iot-securityprofile_behavior.go
new file mode 100644
index 0000000000..498e26ac30
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile_behavior.go
@@ -0,0 +1,57 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile_Behavior AWS CloudFormation Resource (AWS::IoT::SecurityProfile.Behavior)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html
+type SecurityProfile_Behavior struct {
+
+ // Criteria AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-criteria
+ Criteria *SecurityProfile_BehaviorCriteria `json:"Criteria,omitempty"`
+
+ // Metric AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-metric
+ Metric *types.Value `json:"Metric,omitempty"`
+
+ // MetricDimension AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-metricdimension
+ MetricDimension *SecurityProfile_MetricDimension `json:"MetricDimension,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SuppressAlerts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behavior.html#cfn-iot-securityprofile-behavior-suppressalerts
+ SuppressAlerts *types.Value `json:"SuppressAlerts,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile_Behavior) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile.Behavior"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile_behaviorcriteria.go b/goformation/cloudformation/iot/aws-iot-securityprofile_behaviorcriteria.go
new file mode 100644
index 0000000000..93105a5c7e
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile_behaviorcriteria.go
@@ -0,0 +1,67 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile_BehaviorCriteria AWS CloudFormation Resource (AWS::IoT::SecurityProfile.BehaviorCriteria)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html
+type SecurityProfile_BehaviorCriteria struct {
+
+ // ComparisonOperator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-comparisonoperator
+ ComparisonOperator *types.Value `json:"ComparisonOperator,omitempty"`
+
+ // ConsecutiveDatapointsToAlarm AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-consecutivedatapointstoalarm
+ ConsecutiveDatapointsToAlarm *types.Value `json:"ConsecutiveDatapointsToAlarm,omitempty"`
+
+ // ConsecutiveDatapointsToClear AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-consecutivedatapointstoclear
+ ConsecutiveDatapointsToClear *types.Value `json:"ConsecutiveDatapointsToClear,omitempty"`
+
+ // DurationSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-durationseconds
+ DurationSeconds *types.Value `json:"DurationSeconds,omitempty"`
+
+ // MlDetectionConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-mldetectionconfig
+ MlDetectionConfig *SecurityProfile_MachineLearningDetectionConfig `json:"MlDetectionConfig,omitempty"`
+
+ // StatisticalThreshold AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-statisticalthreshold
+ StatisticalThreshold *SecurityProfile_StatisticalThreshold `json:"StatisticalThreshold,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-behaviorcriteria.html#cfn-iot-securityprofile-behaviorcriteria-value
+ Value *SecurityProfile_MetricValue `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile_BehaviorCriteria) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile.BehaviorCriteria"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile_machinelearningdetectionconfig.go b/goformation/cloudformation/iot/aws-iot-securityprofile_machinelearningdetectionconfig.go
new file mode 100644
index 0000000000..280ca30fdc
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile_machinelearningdetectionconfig.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile_MachineLearningDetectionConfig AWS CloudFormation Resource (AWS::IoT::SecurityProfile.MachineLearningDetectionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-machinelearningdetectionconfig.html
+type SecurityProfile_MachineLearningDetectionConfig struct {
+
+ // ConfidenceLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-machinelearningdetectionconfig.html#cfn-iot-securityprofile-machinelearningdetectionconfig-confidencelevel
+ ConfidenceLevel *types.Value `json:"ConfidenceLevel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile_MachineLearningDetectionConfig) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile_metricdimension.go b/goformation/cloudformation/iot/aws-iot-securityprofile_metricdimension.go
new file mode 100644
index 0000000000..4ea959c730
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile_metricdimension.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile_MetricDimension AWS CloudFormation Resource (AWS::IoT::SecurityProfile.MetricDimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html
+type SecurityProfile_MetricDimension struct {
+
+ // DimensionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html#cfn-iot-securityprofile-metricdimension-dimensionname
+ DimensionName *types.Value `json:"DimensionName,omitempty"`
+
+ // Operator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricdimension.html#cfn-iot-securityprofile-metricdimension-operator
+ Operator *types.Value `json:"Operator,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile_MetricDimension) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile.MetricDimension"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile_metrictoretain.go b/goformation/cloudformation/iot/aws-iot-securityprofile_metrictoretain.go
new file mode 100644
index 0000000000..9989ee80f1
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile_metrictoretain.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile_MetricToRetain AWS CloudFormation Resource (AWS::IoT::SecurityProfile.MetricToRetain)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html
+type SecurityProfile_MetricToRetain struct {
+
+ // Metric AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html#cfn-iot-securityprofile-metrictoretain-metric
+ Metric *types.Value `json:"Metric,omitempty"`
+
+ // MetricDimension AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metrictoretain.html#cfn-iot-securityprofile-metrictoretain-metricdimension
+ MetricDimension *SecurityProfile_MetricDimension `json:"MetricDimension,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile_MetricToRetain) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile.MetricToRetain"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile_metricvalue.go b/goformation/cloudformation/iot/aws-iot-securityprofile_metricvalue.go
new file mode 100644
index 0000000000..bf1fc14e93
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile_metricvalue.go
@@ -0,0 +1,62 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile_MetricValue AWS CloudFormation Resource (AWS::IoT::SecurityProfile.MetricValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html
+type SecurityProfile_MetricValue struct {
+
+ // Cidrs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-cidrs
+ Cidrs *types.Value `json:"Cidrs,omitempty"`
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // Number AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-number
+ Number *types.Value `json:"Number,omitempty"`
+
+ // Numbers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-numbers
+ Numbers *types.Value `json:"Numbers,omitempty"`
+
+ // Ports AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-ports
+ Ports *types.Value `json:"Ports,omitempty"`
+
+ // Strings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-metricvalue.html#cfn-iot-securityprofile-metricvalue-strings
+ Strings *types.Value `json:"Strings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile_MetricValue) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile.MetricValue"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-securityprofile_statisticalthreshold.go b/goformation/cloudformation/iot/aws-iot-securityprofile_statisticalthreshold.go
new file mode 100644
index 0000000000..a7327f89d8
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-securityprofile_statisticalthreshold.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SecurityProfile_StatisticalThreshold AWS CloudFormation Resource (AWS::IoT::SecurityProfile.StatisticalThreshold)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-statisticalthreshold.html
+type SecurityProfile_StatisticalThreshold struct {
+
+ // Statistic AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-statisticalthreshold.html#cfn-iot-securityprofile-statisticalthreshold-statistic
+ Statistic *types.Value `json:"Statistic,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SecurityProfile_StatisticalThreshold) AWSCloudFormationType() string {
+ return "AWS::IoT::SecurityProfile.StatisticalThreshold"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-thing.go b/goformation/cloudformation/iot/aws-iot-thing.go
new file mode 100644
index 0000000000..dd71c4d981
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-thing.go
@@ -0,0 +1,113 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Thing AWS CloudFormation Resource (AWS::IoT::Thing)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html
+type Thing struct {
+
+ // AttributePayload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html#cfn-iot-thing-attributepayload
+ AttributePayload *Thing_AttributePayload `json:"AttributePayload,omitempty"`
+
+ // ThingName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html#cfn-iot-thing-thingname
+ ThingName *types.Value `json:"ThingName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Thing) AWSCloudFormationType() string {
+ return "AWS::IoT::Thing"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Thing) MarshalJSON() ([]byte, error) {
+ type Properties Thing
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Thing) UnmarshalJSON(b []byte) error {
+ type Properties Thing
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Thing(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-thing_attributepayload.go b/goformation/cloudformation/iot/aws-iot-thing_attributepayload.go
new file mode 100644
index 0000000000..1a51eaf9f0
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-thing_attributepayload.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Thing_AttributePayload AWS CloudFormation Resource (AWS::IoT::Thing.AttributePayload)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html
+type Thing_AttributePayload struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html#cfn-iot-thing-attributepayload-attributes
+ Attributes map[string]*types.Value `json:"Attributes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Thing_AttributePayload) AWSCloudFormationType() string {
+ return "AWS::IoT::Thing.AttributePayload"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-thingprincipalattachment.go b/goformation/cloudformation/iot/aws-iot-thingprincipalattachment.go
new file mode 100644
index 0000000000..5fe26deafa
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-thingprincipalattachment.go
@@ -0,0 +1,113 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ThingPrincipalAttachment AWS CloudFormation Resource (AWS::IoT::ThingPrincipalAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html
+type ThingPrincipalAttachment struct {
+
+ // Principal AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html#cfn-iot-thingprincipalattachment-principal
+ Principal *types.Value `json:"Principal,omitempty"`
+
+ // ThingName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html#cfn-iot-thingprincipalattachment-thingname
+ ThingName *types.Value `json:"ThingName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ThingPrincipalAttachment) AWSCloudFormationType() string {
+ return "AWS::IoT::ThingPrincipalAttachment"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ThingPrincipalAttachment) MarshalJSON() ([]byte, error) {
+ type Properties ThingPrincipalAttachment
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ThingPrincipalAttachment) UnmarshalJSON(b []byte) error {
+ type Properties ThingPrincipalAttachment
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ThingPrincipalAttachment(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule.go b/goformation/cloudformation/iot/aws-iot-topicrule.go
new file mode 100644
index 0000000000..be43a673ad
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule.go
@@ -0,0 +1,119 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule AWS CloudFormation Resource (AWS::IoT::TopicRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html
+type TopicRule struct {
+
+ // RuleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html#cfn-iot-topicrule-rulename
+ RuleName *types.Value `json:"RuleName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html#cfn-iot-topicrule-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TopicRulePayload AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html#cfn-iot-topicrule-topicrulepayload
+ TopicRulePayload *TopicRule_TopicRulePayload `json:"TopicRulePayload,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TopicRule) MarshalJSON() ([]byte, error) {
+ type Properties TopicRule
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TopicRule) UnmarshalJSON(b []byte) error {
+ type Properties TopicRule
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TopicRule(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_action.go b/goformation/cloudformation/iot/aws-iot-topicrule_action.go
new file mode 100644
index 0000000000..786d056d7f
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_action.go
@@ -0,0 +1,135 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_Action AWS CloudFormation Resource (AWS::IoT::TopicRule.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html
+type TopicRule_Action struct {
+
+ // CloudwatchAlarm AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-cloudwatchalarm
+ CloudwatchAlarm *TopicRule_CloudwatchAlarmAction `json:"CloudwatchAlarm,omitempty"`
+
+ // CloudwatchLogs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-cloudwatchlogs
+ CloudwatchLogs *TopicRule_CloudwatchLogsAction `json:"CloudwatchLogs,omitempty"`
+
+ // CloudwatchMetric AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-cloudwatchmetric
+ CloudwatchMetric *TopicRule_CloudwatchMetricAction `json:"CloudwatchMetric,omitempty"`
+
+ // DynamoDB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-dynamodb
+ DynamoDB *TopicRule_DynamoDBAction `json:"DynamoDB,omitempty"`
+
+ // DynamoDBv2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-dynamodbv2
+ DynamoDBv2 *TopicRule_DynamoDBv2Action `json:"DynamoDBv2,omitempty"`
+
+ // Elasticsearch AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-elasticsearch
+ Elasticsearch *TopicRule_ElasticsearchAction `json:"Elasticsearch,omitempty"`
+
+ // Firehose AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-firehose
+ Firehose *TopicRule_FirehoseAction `json:"Firehose,omitempty"`
+
+ // Http AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-http
+ Http *TopicRule_HttpAction `json:"Http,omitempty"`
+
+ // IotAnalytics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-iotanalytics
+ IotAnalytics *TopicRule_IotAnalyticsAction `json:"IotAnalytics,omitempty"`
+
+ // IotEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-iotevents
+ IotEvents *TopicRule_IotEventsAction `json:"IotEvents,omitempty"`
+
+ // IotSiteWise AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-iotsitewise
+ IotSiteWise *TopicRule_IotSiteWiseAction `json:"IotSiteWise,omitempty"`
+
+ // Kafka AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-kafka
+ Kafka *TopicRule_KafkaAction `json:"Kafka,omitempty"`
+
+ // Kinesis AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-kinesis
+ Kinesis *TopicRule_KinesisAction `json:"Kinesis,omitempty"`
+
+ // Lambda AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-lambda
+ Lambda *TopicRule_LambdaAction `json:"Lambda,omitempty"`
+
+ // OpenSearch AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-opensearch
+ OpenSearch *TopicRule_OpenSearchAction `json:"OpenSearch,omitempty"`
+
+ // Republish AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-republish
+ Republish *TopicRule_RepublishAction `json:"Republish,omitempty"`
+
+ // S3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-s3
+ S3 *TopicRule_S3Action `json:"S3,omitempty"`
+
+ // Sns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-sns
+ Sns *TopicRule_SnsAction `json:"Sns,omitempty"`
+
+ // Sqs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-sqs
+ Sqs *TopicRule_SqsAction `json:"Sqs,omitempty"`
+
+ // StepFunctions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-stepfunctions
+ StepFunctions *TopicRule_StepFunctionsAction `json:"StepFunctions,omitempty"`
+
+ // Timestream AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html#cfn-iot-topicrule-action-timestream
+ Timestream *TopicRule_TimestreamAction `json:"Timestream,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_Action) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.Action"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertytimestamp.go b/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertytimestamp.go
new file mode 100644
index 0000000000..5a222cb783
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertytimestamp.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_AssetPropertyTimestamp AWS CloudFormation Resource (AWS::IoT::TopicRule.AssetPropertyTimestamp)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html
+type TopicRule_AssetPropertyTimestamp struct {
+
+ // OffsetInNanos AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html#cfn-iot-topicrule-assetpropertytimestamp-offsetinnanos
+ OffsetInNanos *types.Value `json:"OffsetInNanos,omitempty"`
+
+ // TimeInSeconds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertytimestamp.html#cfn-iot-topicrule-assetpropertytimestamp-timeinseconds
+ TimeInSeconds *types.Value `json:"TimeInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_AssetPropertyTimestamp) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.AssetPropertyTimestamp"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertyvalue.go b/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertyvalue.go
new file mode 100644
index 0000000000..2da9919077
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertyvalue.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_AssetPropertyValue AWS CloudFormation Resource (AWS::IoT::TopicRule.AssetPropertyValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html
+type TopicRule_AssetPropertyValue struct {
+
+ // Quality AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html#cfn-iot-topicrule-assetpropertyvalue-quality
+ Quality *types.Value `json:"Quality,omitempty"`
+
+ // Timestamp AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html#cfn-iot-topicrule-assetpropertyvalue-timestamp
+ Timestamp *TopicRule_AssetPropertyTimestamp `json:"Timestamp,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html#cfn-iot-topicrule-assetpropertyvalue-value
+ Value *TopicRule_AssetPropertyVariant `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_AssetPropertyValue) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.AssetPropertyValue"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertyvariant.go b/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertyvariant.go
new file mode 100644
index 0000000000..c79dbeb137
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_assetpropertyvariant.go
@@ -0,0 +1,52 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_AssetPropertyVariant AWS CloudFormation Resource (AWS::IoT::TopicRule.AssetPropertyVariant)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html
+type TopicRule_AssetPropertyVariant struct {
+
+ // BooleanValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html#cfn-iot-topicrule-assetpropertyvariant-booleanvalue
+ BooleanValue *types.Value `json:"BooleanValue,omitempty"`
+
+ // DoubleValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html#cfn-iot-topicrule-assetpropertyvariant-doublevalue
+ DoubleValue *types.Value `json:"DoubleValue,omitempty"`
+
+ // IntegerValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html#cfn-iot-topicrule-assetpropertyvariant-integervalue
+ IntegerValue *types.Value `json:"IntegerValue,omitempty"`
+
+ // StringValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvariant.html#cfn-iot-topicrule-assetpropertyvariant-stringvalue
+ StringValue *types.Value `json:"StringValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_AssetPropertyVariant) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.AssetPropertyVariant"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchalarmaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchalarmaction.go
new file mode 100644
index 0000000000..da4755b80a
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchalarmaction.go
@@ -0,0 +1,52 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_CloudwatchAlarmAction AWS CloudFormation Resource (AWS::IoT::TopicRule.CloudwatchAlarmAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html
+type TopicRule_CloudwatchAlarmAction struct {
+
+ // AlarmName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-alarmname
+ AlarmName *types.Value `json:"AlarmName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // StateReason AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-statereason
+ StateReason *types.Value `json:"StateReason,omitempty"`
+
+ // StateValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html#cfn-iot-topicrule-cloudwatchalarmaction-statevalue
+ StateValue *types.Value `json:"StateValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_CloudwatchAlarmAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.CloudwatchAlarmAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchlogsaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchlogsaction.go
new file mode 100644
index 0000000000..53f012e4b1
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchlogsaction.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_CloudwatchLogsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.CloudwatchLogsAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchlogsaction.html
+type TopicRule_CloudwatchLogsAction struct {
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchlogsaction.html#cfn-iot-topicrule-cloudwatchlogsaction-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchlogsaction.html#cfn-iot-topicrule-cloudwatchlogsaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_CloudwatchLogsAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.CloudwatchLogsAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchmetricaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchmetricaction.go
new file mode 100644
index 0000000000..b62348f027
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_cloudwatchmetricaction.go
@@ -0,0 +1,62 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_CloudwatchMetricAction AWS CloudFormation Resource (AWS::IoT::TopicRule.CloudwatchMetricAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html
+type TopicRule_CloudwatchMetricAction struct {
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // MetricNamespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricnamespace
+ MetricNamespace *types.Value `json:"MetricNamespace,omitempty"`
+
+ // MetricTimestamp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metrictimestamp
+ MetricTimestamp *types.Value `json:"MetricTimestamp,omitempty"`
+
+ // MetricUnit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricunit
+ MetricUnit *types.Value `json:"MetricUnit,omitempty"`
+
+ // MetricValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-metricvalue
+ MetricValue *types.Value `json:"MetricValue,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html#cfn-iot-topicrule-cloudwatchmetricaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_CloudwatchMetricAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.CloudwatchMetricAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_dynamodbaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_dynamodbaction.go
new file mode 100644
index 0000000000..3e199ba3bf
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_dynamodbaction.go
@@ -0,0 +1,77 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_DynamoDBAction AWS CloudFormation Resource (AWS::IoT::TopicRule.DynamoDBAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html
+type TopicRule_DynamoDBAction struct {
+
+ // HashKeyField AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeyfield
+ HashKeyField *types.Value `json:"HashKeyField,omitempty"`
+
+ // HashKeyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeytype
+ HashKeyType *types.Value `json:"HashKeyType,omitempty"`
+
+ // HashKeyValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-hashkeyvalue
+ HashKeyValue *types.Value `json:"HashKeyValue,omitempty"`
+
+ // PayloadField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-payloadfield
+ PayloadField *types.Value `json:"PayloadField,omitempty"`
+
+ // RangeKeyField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeyfield
+ RangeKeyField *types.Value `json:"RangeKeyField,omitempty"`
+
+ // RangeKeyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeytype
+ RangeKeyType *types.Value `json:"RangeKeyType,omitempty"`
+
+ // RangeKeyValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rangekeyvalue
+ RangeKeyValue *types.Value `json:"RangeKeyValue,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html#cfn-iot-topicrule-dynamodbaction-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_DynamoDBAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.DynamoDBAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_dynamodbv2action.go b/goformation/cloudformation/iot/aws-iot-topicrule_dynamodbv2action.go
new file mode 100644
index 0000000000..5c508ce2b8
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_dynamodbv2action.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_DynamoDBv2Action AWS CloudFormation Resource (AWS::IoT::TopicRule.DynamoDBv2Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html
+type TopicRule_DynamoDBv2Action struct {
+
+ // PutItem AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html#cfn-iot-topicrule-dynamodbv2action-putitem
+ PutItem *TopicRule_PutItemInput `json:"PutItem,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html#cfn-iot-topicrule-dynamodbv2action-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_DynamoDBv2Action) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.DynamoDBv2Action"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_elasticsearchaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_elasticsearchaction.go
new file mode 100644
index 0000000000..ea36a7ff83
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_elasticsearchaction.go
@@ -0,0 +1,57 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_ElasticsearchAction AWS CloudFormation Resource (AWS::IoT::TopicRule.ElasticsearchAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html
+type TopicRule_ElasticsearchAction struct {
+
+ // Endpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-endpoint
+ Endpoint *types.Value `json:"Endpoint,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Index AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-index
+ Index *types.Value `json:"Index,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html#cfn-iot-topicrule-elasticsearchaction-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_ElasticsearchAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.ElasticsearchAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_firehoseaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_firehoseaction.go
new file mode 100644
index 0000000000..71cd0f61bc
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_firehoseaction.go
@@ -0,0 +1,52 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_FirehoseAction AWS CloudFormation Resource (AWS::IoT::TopicRule.FirehoseAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html
+type TopicRule_FirehoseAction struct {
+
+ // BatchMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-batchmode
+ BatchMode *types.Value `json:"BatchMode,omitempty"`
+
+ // DeliveryStreamName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-deliverystreamname
+ DeliveryStreamName *types.Value `json:"DeliveryStreamName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Separator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html#cfn-iot-topicrule-firehoseaction-separator
+ Separator *types.Value `json:"Separator,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_FirehoseAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.FirehoseAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_httpaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_httpaction.go
new file mode 100644
index 0000000000..a387c2e033
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_httpaction.go
@@ -0,0 +1,52 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_HttpAction AWS CloudFormation Resource (AWS::IoT::TopicRule.HttpAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html
+type TopicRule_HttpAction struct {
+
+ // Auth AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html#cfn-iot-topicrule-httpaction-auth
+ Auth *TopicRule_HttpAuthorization `json:"Auth,omitempty"`
+
+ // ConfirmationUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html#cfn-iot-topicrule-httpaction-confirmationurl
+ ConfirmationUrl *types.Value `json:"ConfirmationUrl,omitempty"`
+
+ // Headers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html#cfn-iot-topicrule-httpaction-headers
+ Headers []TopicRule_HttpActionHeader `json:"Headers,omitempty"`
+
+ // Url AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html#cfn-iot-topicrule-httpaction-url
+ Url *types.Value `json:"Url,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_HttpAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.HttpAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_httpactionheader.go b/goformation/cloudformation/iot/aws-iot-topicrule_httpactionheader.go
new file mode 100644
index 0000000000..c2e9367cc4
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_httpactionheader.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_HttpActionHeader AWS CloudFormation Resource (AWS::IoT::TopicRule.HttpActionHeader)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html
+type TopicRule_HttpActionHeader struct {
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html#cfn-iot-topicrule-httpactionheader-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html#cfn-iot-topicrule-httpactionheader-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_HttpActionHeader) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.HttpActionHeader"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_httpauthorization.go b/goformation/cloudformation/iot/aws-iot-topicrule_httpauthorization.go
new file mode 100644
index 0000000000..201a534f07
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_httpauthorization.go
@@ -0,0 +1,35 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_HttpAuthorization AWS CloudFormation Resource (AWS::IoT::TopicRule.HttpAuthorization)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html
+type TopicRule_HttpAuthorization struct {
+
+ // Sigv4 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html#cfn-iot-topicrule-httpauthorization-sigv4
+ Sigv4 *TopicRule_SigV4Authorization `json:"Sigv4,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_HttpAuthorization) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.HttpAuthorization"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_iotanalyticsaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_iotanalyticsaction.go
new file mode 100644
index 0000000000..9e1b751927
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_iotanalyticsaction.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_IotAnalyticsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.IotAnalyticsAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html
+type TopicRule_IotAnalyticsAction struct {
+
+ // BatchMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html#cfn-iot-topicrule-iotanalyticsaction-batchmode
+ BatchMode *types.Value `json:"BatchMode,omitempty"`
+
+ // ChannelName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html#cfn-iot-topicrule-iotanalyticsaction-channelname
+ ChannelName *types.Value `json:"ChannelName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html#cfn-iot-topicrule-iotanalyticsaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_IotAnalyticsAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.IotAnalyticsAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_ioteventsaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_ioteventsaction.go
new file mode 100644
index 0000000000..7ca78840d3
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_ioteventsaction.go
@@ -0,0 +1,52 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_IotEventsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.IotEventsAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html
+type TopicRule_IotEventsAction struct {
+
+ // BatchMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html#cfn-iot-topicrule-ioteventsaction-batchmode
+ BatchMode *types.Value `json:"BatchMode,omitempty"`
+
+ // InputName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html#cfn-iot-topicrule-ioteventsaction-inputname
+ InputName *types.Value `json:"InputName,omitempty"`
+
+ // MessageId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html#cfn-iot-topicrule-ioteventsaction-messageid
+ MessageId *types.Value `json:"MessageId,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html#cfn-iot-topicrule-ioteventsaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_IotEventsAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.IotEventsAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_iotsitewiseaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_iotsitewiseaction.go
new file mode 100644
index 0000000000..285ae798dd
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_iotsitewiseaction.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_IotSiteWiseAction AWS CloudFormation Resource (AWS::IoT::TopicRule.IotSiteWiseAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html
+type TopicRule_IotSiteWiseAction struct {
+
+ // PutAssetPropertyValueEntries AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html#cfn-iot-topicrule-iotsitewiseaction-putassetpropertyvalueentries
+ PutAssetPropertyValueEntries []TopicRule_PutAssetPropertyValueEntry `json:"PutAssetPropertyValueEntries,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html#cfn-iot-topicrule-iotsitewiseaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_IotSiteWiseAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.IotSiteWiseAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_kafkaaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_kafkaaction.go
new file mode 100644
index 0000000000..6b86f3f051
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_kafkaaction.go
@@ -0,0 +1,57 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_KafkaAction AWS CloudFormation Resource (AWS::IoT::TopicRule.KafkaAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html
+type TopicRule_KafkaAction struct {
+
+ // ClientProperties AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html#cfn-iot-topicrule-kafkaaction-clientproperties
+ ClientProperties map[string]*types.Value `json:"ClientProperties,omitempty"`
+
+ // DestinationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html#cfn-iot-topicrule-kafkaaction-destinationarn
+ DestinationArn *types.Value `json:"DestinationArn,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html#cfn-iot-topicrule-kafkaaction-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Partition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html#cfn-iot-topicrule-kafkaaction-partition
+ Partition *types.Value `json:"Partition,omitempty"`
+
+ // Topic AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kafkaaction.html#cfn-iot-topicrule-kafkaaction-topic
+ Topic *types.Value `json:"Topic,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_KafkaAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.KafkaAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_kinesisaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_kinesisaction.go
new file mode 100644
index 0000000000..474a9aef46
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_kinesisaction.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_KinesisAction AWS CloudFormation Resource (AWS::IoT::TopicRule.KinesisAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html
+type TopicRule_KinesisAction struct {
+
+ // PartitionKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-partitionkey
+ PartitionKey *types.Value `json:"PartitionKey,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // StreamName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html#cfn-iot-topicrule-kinesisaction-streamname
+ StreamName *types.Value `json:"StreamName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_KinesisAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.KinesisAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_lambdaaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_lambdaaction.go
new file mode 100644
index 0000000000..0394ec0356
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_lambdaaction.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_LambdaAction AWS CloudFormation Resource (AWS::IoT::TopicRule.LambdaAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html
+type TopicRule_LambdaAction struct {
+
+ // FunctionArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html#cfn-iot-topicrule-lambdaaction-functionarn
+ FunctionArn *types.Value `json:"FunctionArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_LambdaAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.LambdaAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_opensearchaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_opensearchaction.go
new file mode 100644
index 0000000000..af10a0a8c3
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_opensearchaction.go
@@ -0,0 +1,57 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_OpenSearchAction AWS CloudFormation Resource (AWS::IoT::TopicRule.OpenSearchAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html
+type TopicRule_OpenSearchAction struct {
+
+ // Endpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-endpoint
+ Endpoint *types.Value `json:"Endpoint,omitempty"`
+
+ // Id AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Index AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-index
+ Index *types.Value `json:"Index,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-opensearchaction.html#cfn-iot-topicrule-opensearchaction-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_OpenSearchAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.OpenSearchAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_putassetpropertyvalueentry.go b/goformation/cloudformation/iot/aws-iot-topicrule_putassetpropertyvalueentry.go
new file mode 100644
index 0000000000..049e10868c
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_putassetpropertyvalueentry.go
@@ -0,0 +1,57 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_PutAssetPropertyValueEntry AWS CloudFormation Resource (AWS::IoT::TopicRule.PutAssetPropertyValueEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html
+type TopicRule_PutAssetPropertyValueEntry struct {
+
+ // AssetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-assetid
+ AssetId *types.Value `json:"AssetId,omitempty"`
+
+ // EntryId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-entryid
+ EntryId *types.Value `json:"EntryId,omitempty"`
+
+ // PropertyAlias AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyalias
+ PropertyAlias *types.Value `json:"PropertyAlias,omitempty"`
+
+ // PropertyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyid
+ PropertyId *types.Value `json:"PropertyId,omitempty"`
+
+ // PropertyValues AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html#cfn-iot-topicrule-putassetpropertyvalueentry-propertyvalues
+ PropertyValues []TopicRule_AssetPropertyValue `json:"PropertyValues,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_PutAssetPropertyValueEntry) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.PutAssetPropertyValueEntry"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_putiteminput.go b/goformation/cloudformation/iot/aws-iot-topicrule_putiteminput.go
new file mode 100644
index 0000000000..2fbe81dc10
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_putiteminput.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_PutItemInput AWS CloudFormation Resource (AWS::IoT::TopicRule.PutItemInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html
+type TopicRule_PutItemInput struct {
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html#cfn-iot-topicrule-putiteminput-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_PutItemInput) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.PutItemInput"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_republishaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_republishaction.go
new file mode 100644
index 0000000000..59434163d9
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_republishaction.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_RepublishAction AWS CloudFormation Resource (AWS::IoT::TopicRule.RepublishAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html
+type TopicRule_RepublishAction struct {
+
+ // Qos AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-qos
+ Qos *types.Value `json:"Qos,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Topic AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html#cfn-iot-topicrule-republishaction-topic
+ Topic *types.Value `json:"Topic,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_RepublishAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.RepublishAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_s3action.go b/goformation/cloudformation/iot/aws-iot-topicrule_s3action.go
new file mode 100644
index 0000000000..a35d3b0cbb
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_s3action.go
@@ -0,0 +1,52 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_S3Action AWS CloudFormation Resource (AWS::IoT::TopicRule.S3Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html
+type TopicRule_S3Action struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // CannedAcl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-cannedacl
+ CannedAcl *types.Value `json:"CannedAcl,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html#cfn-iot-topicrule-s3action-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_S3Action) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.S3Action"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_sigv4authorization.go b/goformation/cloudformation/iot/aws-iot-topicrule_sigv4authorization.go
new file mode 100644
index 0000000000..261482ad2f
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_sigv4authorization.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_SigV4Authorization AWS CloudFormation Resource (AWS::IoT::TopicRule.SigV4Authorization)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html
+type TopicRule_SigV4Authorization struct {
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // SigningRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-signingregion
+ SigningRegion *types.Value `json:"SigningRegion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_SigV4Authorization) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.SigV4Authorization"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_snsaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_snsaction.go
new file mode 100644
index 0000000000..5ad6d6dbaa
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_snsaction.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_SnsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.SnsAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html
+type TopicRule_SnsAction struct {
+
+ // MessageFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-messageformat
+ MessageFormat *types.Value `json:"MessageFormat,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // TargetArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html#cfn-iot-topicrule-snsaction-targetarn
+ TargetArn *types.Value `json:"TargetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_SnsAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.SnsAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_sqsaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_sqsaction.go
new file mode 100644
index 0000000000..2fec425d00
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_sqsaction.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_SqsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.SqsAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html
+type TopicRule_SqsAction struct {
+
+ // QueueUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-queueurl
+ QueueUrl *types.Value `json:"QueueUrl,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // UseBase64 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html#cfn-iot-topicrule-sqsaction-usebase64
+ UseBase64 *types.Value `json:"UseBase64,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_SqsAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.SqsAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_stepfunctionsaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_stepfunctionsaction.go
new file mode 100644
index 0000000000..b9862e6f5a
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_stepfunctionsaction.go
@@ -0,0 +1,47 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_StepFunctionsAction AWS CloudFormation Resource (AWS::IoT::TopicRule.StepFunctionsAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html
+type TopicRule_StepFunctionsAction struct {
+
+ // ExecutionNamePrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html#cfn-iot-topicrule-stepfunctionsaction-executionnameprefix
+ ExecutionNamePrefix *types.Value `json:"ExecutionNamePrefix,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html#cfn-iot-topicrule-stepfunctionsaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // StateMachineName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html#cfn-iot-topicrule-stepfunctionsaction-statemachinename
+ StateMachineName *types.Value `json:"StateMachineName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_StepFunctionsAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.StepFunctionsAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_timestreamaction.go b/goformation/cloudformation/iot/aws-iot-topicrule_timestreamaction.go
new file mode 100644
index 0000000000..6c0b23ee5e
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_timestreamaction.go
@@ -0,0 +1,62 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_TimestreamAction AWS CloudFormation Resource (AWS::IoT::TopicRule.TimestreamAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html
+type TopicRule_TimestreamAction struct {
+
+ // BatchMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-batchmode
+ BatchMode *types.Value `json:"BatchMode,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // Dimensions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-dimensions
+ Dimensions []TopicRule_TimestreamDimension `json:"Dimensions,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // Timestamp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamaction.html#cfn-iot-topicrule-timestreamaction-timestamp
+ Timestamp *TopicRule_TimestreamTimestamp `json:"Timestamp,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_TimestreamAction) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.TimestreamAction"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_timestreamdimension.go b/goformation/cloudformation/iot/aws-iot-topicrule_timestreamdimension.go
new file mode 100644
index 0000000000..52424e1be3
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_timestreamdimension.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_TimestreamDimension AWS CloudFormation Resource (AWS::IoT::TopicRule.TimestreamDimension)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamdimension.html
+type TopicRule_TimestreamDimension struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamdimension.html#cfn-iot-topicrule-timestreamdimension-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamdimension.html#cfn-iot-topicrule-timestreamdimension-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_TimestreamDimension) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.TimestreamDimension"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_timestreamtimestamp.go b/goformation/cloudformation/iot/aws-iot-topicrule_timestreamtimestamp.go
new file mode 100644
index 0000000000..f204b5a1d2
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_timestreamtimestamp.go
@@ -0,0 +1,42 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_TimestreamTimestamp AWS CloudFormation Resource (AWS::IoT::TopicRule.TimestreamTimestamp)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamtimestamp.html
+type TopicRule_TimestreamTimestamp struct {
+
+ // Unit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamtimestamp.html#cfn-iot-topicrule-timestreamtimestamp-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-timestreamtimestamp.html#cfn-iot-topicrule-timestreamtimestamp-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_TimestreamTimestamp) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.TimestreamTimestamp"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicrule_topicrulepayload.go b/goformation/cloudformation/iot/aws-iot-topicrule_topicrulepayload.go
new file mode 100644
index 0000000000..7b60b9b1dd
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicrule_topicrulepayload.go
@@ -0,0 +1,62 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRule_TopicRulePayload AWS CloudFormation Resource (AWS::IoT::TopicRule.TopicRulePayload)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html
+type TopicRule_TopicRulePayload struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-actions
+ Actions []TopicRule_Action `json:"Actions,omitempty"`
+
+ // AwsIotSqlVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion
+ AwsIotSqlVersion *types.Value `json:"AwsIotSqlVersion,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // ErrorAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-erroraction
+ ErrorAction *TopicRule_Action `json:"ErrorAction,omitempty"`
+
+ // RuleDisabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-ruledisabled
+ RuleDisabled *types.Value `json:"RuleDisabled,omitempty"`
+
+ // Sql AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql
+ Sql *types.Value `json:"Sql,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRule_TopicRulePayload) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRule.TopicRulePayload"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicruledestination.go b/goformation/cloudformation/iot/aws-iot-topicruledestination.go
new file mode 100644
index 0000000000..08c7d85e36
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicruledestination.go
@@ -0,0 +1,118 @@
+package iot
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRuleDestination AWS CloudFormation Resource (AWS::IoT::TopicRuleDestination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html
+type TopicRuleDestination struct {
+
+ // HttpUrlProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html#cfn-iot-topicruledestination-httpurlproperties
+ HttpUrlProperties *TopicRuleDestination_HttpUrlDestinationSummary `json:"HttpUrlProperties,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html#cfn-iot-topicruledestination-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // VpcProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html#cfn-iot-topicruledestination-vpcproperties
+ VpcProperties *TopicRuleDestination_VpcDestinationProperties `json:"VpcProperties,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRuleDestination) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRuleDestination"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TopicRuleDestination) MarshalJSON() ([]byte, error) {
+ type Properties TopicRuleDestination
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TopicRuleDestination) UnmarshalJSON(b []byte) error {
+ type Properties TopicRuleDestination
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TopicRuleDestination(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicruledestination_httpurldestinationsummary.go b/goformation/cloudformation/iot/aws-iot-topicruledestination_httpurldestinationsummary.go
new file mode 100644
index 0000000000..cac7189c41
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicruledestination_httpurldestinationsummary.go
@@ -0,0 +1,37 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRuleDestination_HttpUrlDestinationSummary AWS CloudFormation Resource (AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html
+type TopicRuleDestination_HttpUrlDestinationSummary struct {
+
+ // ConfirmationUrl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html#cfn-iot-topicruledestination-httpurldestinationsummary-confirmationurl
+ ConfirmationUrl *types.Value `json:"ConfirmationUrl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRuleDestination_HttpUrlDestinationSummary) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary"
+}
diff --git a/goformation/cloudformation/iot/aws-iot-topicruledestination_vpcdestinationproperties.go b/goformation/cloudformation/iot/aws-iot-topicruledestination_vpcdestinationproperties.go
new file mode 100644
index 0000000000..c0b338eae8
--- /dev/null
+++ b/goformation/cloudformation/iot/aws-iot-topicruledestination_vpcdestinationproperties.go
@@ -0,0 +1,52 @@
+package iot
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TopicRuleDestination_VpcDestinationProperties AWS CloudFormation Resource (AWS::IoT::TopicRuleDestination.VpcDestinationProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html
+type TopicRuleDestination_VpcDestinationProperties struct {
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html#cfn-iot-topicruledestination-vpcdestinationproperties-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecurityGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html#cfn-iot-topicruledestination-vpcdestinationproperties-securitygroups
+ SecurityGroups *types.Value `json:"SecurityGroups,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html#cfn-iot-topicruledestination-vpcdestinationproperties-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // VpcId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html#cfn-iot-topicruledestination-vpcdestinationproperties-vpcid
+ VpcId *types.Value `json:"VpcId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TopicRuleDestination_VpcDestinationProperties) AWSCloudFormationType() string {
+ return "AWS::IoT::TopicRuleDestination.VpcDestinationProperties"
+}
diff --git a/goformation/cloudformation/iot1click/aws-iot1click-device.go b/goformation/cloudformation/iot1click/aws-iot1click-device.go
new file mode 100644
index 0000000000..ece1cd94dd
--- /dev/null
+++ b/goformation/cloudformation/iot1click/aws-iot1click-device.go
@@ -0,0 +1,113 @@
+package iot1click
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Device AWS CloudFormation Resource (AWS::IoT1Click::Device)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-device.html
+type Device struct {
+
+ // DeviceId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-device.html#cfn-iot1click-device-deviceid
+ DeviceId *types.Value `json:"DeviceId,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-device.html#cfn-iot1click-device-enabled
+ Enabled *types.Value `json:"Enabled"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Device) AWSCloudFormationType() string {
+ return "AWS::IoT1Click::Device"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Device) MarshalJSON() ([]byte, error) {
+ type Properties Device
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Device) UnmarshalJSON(b []byte) error {
+ type Properties Device
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Device(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot1click/aws-iot1click-placement.go b/goformation/cloudformation/iot1click/aws-iot1click-placement.go
new file mode 100644
index 0000000000..0b5092d19c
--- /dev/null
+++ b/goformation/cloudformation/iot1click/aws-iot1click-placement.go
@@ -0,0 +1,123 @@
+package iot1click
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Placement AWS CloudFormation Resource (AWS::IoT1Click::Placement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html
+type Placement struct {
+
+ // AssociatedDevices AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html#cfn-iot1click-placement-associateddevices
+ AssociatedDevices interface{} `json:"AssociatedDevices,omitempty"`
+
+ // Attributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html#cfn-iot1click-placement-attributes
+ Attributes interface{} `json:"Attributes,omitempty"`
+
+ // PlacementName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html#cfn-iot1click-placement-placementname
+ PlacementName *types.Value `json:"PlacementName,omitempty"`
+
+ // ProjectName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html#cfn-iot1click-placement-projectname
+ ProjectName *types.Value `json:"ProjectName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Placement) AWSCloudFormationType() string {
+ return "AWS::IoT1Click::Placement"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Placement) MarshalJSON() ([]byte, error) {
+ type Properties Placement
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Placement) UnmarshalJSON(b []byte) error {
+ type Properties Placement
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Placement(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot1click/aws-iot1click-project.go b/goformation/cloudformation/iot1click/aws-iot1click-project.go
new file mode 100644
index 0000000000..2a8a2079ae
--- /dev/null
+++ b/goformation/cloudformation/iot1click/aws-iot1click-project.go
@@ -0,0 +1,118 @@
+package iot1click
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project AWS CloudFormation Resource (AWS::IoT1Click::Project)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html
+type Project struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html#cfn-iot1click-project-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // PlacementTemplate AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html#cfn-iot1click-project-placementtemplate
+ PlacementTemplate *Project_PlacementTemplate `json:"PlacementTemplate,omitempty"`
+
+ // ProjectName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html#cfn-iot1click-project-projectname
+ ProjectName *types.Value `json:"ProjectName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project) AWSCloudFormationType() string {
+ return "AWS::IoT1Click::Project"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Project) MarshalJSON() ([]byte, error) {
+ type Properties Project
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Project) UnmarshalJSON(b []byte) error {
+ type Properties Project
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Project(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iot1click/aws-iot1click-project_devicetemplate.go b/goformation/cloudformation/iot1click/aws-iot1click-project_devicetemplate.go
new file mode 100644
index 0000000000..5914be07ce
--- /dev/null
+++ b/goformation/cloudformation/iot1click/aws-iot1click-project_devicetemplate.go
@@ -0,0 +1,42 @@
+package iot1click
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_DeviceTemplate AWS CloudFormation Resource (AWS::IoT1Click::Project.DeviceTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-devicetemplate.html
+type Project_DeviceTemplate struct {
+
+ // CallbackOverrides AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-devicetemplate.html#cfn-iot1click-project-devicetemplate-callbackoverrides
+ CallbackOverrides interface{} `json:"CallbackOverrides,omitempty"`
+
+ // DeviceType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-devicetemplate.html#cfn-iot1click-project-devicetemplate-devicetype
+ DeviceType *types.Value `json:"DeviceType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_DeviceTemplate) AWSCloudFormationType() string {
+ return "AWS::IoT1Click::Project.DeviceTemplate"
+}
diff --git a/goformation/cloudformation/iot1click/aws-iot1click-project_placementtemplate.go b/goformation/cloudformation/iot1click/aws-iot1click-project_placementtemplate.go
new file mode 100644
index 0000000000..bfdbda22b1
--- /dev/null
+++ b/goformation/cloudformation/iot1click/aws-iot1click-project_placementtemplate.go
@@ -0,0 +1,40 @@
+package iot1click
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project_PlacementTemplate AWS CloudFormation Resource (AWS::IoT1Click::Project.PlacementTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-placementtemplate.html
+type Project_PlacementTemplate struct {
+
+ // DefaultAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-placementtemplate.html#cfn-iot1click-project-placementtemplate-defaultattributes
+ DefaultAttributes interface{} `json:"DefaultAttributes,omitempty"`
+
+ // DeviceTemplates AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-placementtemplate.html#cfn-iot1click-project-placementtemplate-devicetemplates
+ DeviceTemplates interface{} `json:"DeviceTemplates,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project_PlacementTemplate) AWSCloudFormationType() string {
+ return "AWS::IoT1Click::Project.PlacementTemplate"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel.go
new file mode 100644
index 0000000000..f3e1f4b261
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel.go
@@ -0,0 +1,124 @@
+package iotanalytics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel AWS CloudFormation Resource (AWS::IoTAnalytics::Channel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html
+type Channel struct {
+
+ // ChannelName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-channelname
+ ChannelName *types.Value `json:"ChannelName,omitempty"`
+
+ // ChannelStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-channelstorage
+ ChannelStorage *Channel_ChannelStorage `json:"ChannelStorage,omitempty"`
+
+ // RetentionPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-retentionperiod
+ RetentionPeriod *Channel_RetentionPeriod `json:"RetentionPeriod,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-channel.html#cfn-iotanalytics-channel-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Channel"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Channel) MarshalJSON() ([]byte, error) {
+ type Properties Channel
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Channel) UnmarshalJSON(b []byte) error {
+ type Properties Channel
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Channel(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_channelstorage.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_channelstorage.go
new file mode 100644
index 0000000000..a8dd69657b
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_channelstorage.go
@@ -0,0 +1,40 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_ChannelStorage AWS CloudFormation Resource (AWS::IoTAnalytics::Channel.ChannelStorage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html
+type Channel_ChannelStorage struct {
+
+ // CustomerManagedS3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html#cfn-iotanalytics-channel-channelstorage-customermanageds3
+ CustomerManagedS3 *Channel_CustomerManagedS3 `json:"CustomerManagedS3,omitempty"`
+
+ // ServiceManagedS3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-channelstorage.html#cfn-iotanalytics-channel-channelstorage-servicemanageds3
+ ServiceManagedS3 *Channel_ServiceManagedS3 `json:"ServiceManagedS3,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_ChannelStorage) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Channel.ChannelStorage"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_customermanageds3.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_customermanageds3.go
new file mode 100644
index 0000000000..96aad90fad
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_customermanageds3.go
@@ -0,0 +1,47 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_CustomerManagedS3 AWS CloudFormation Resource (AWS::IoTAnalytics::Channel.CustomerManagedS3)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html
+type Channel_CustomerManagedS3 struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html#cfn-iotanalytics-channel-customermanageds3-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html#cfn-iotanalytics-channel-customermanageds3-keyprefix
+ KeyPrefix *types.Value `json:"KeyPrefix,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-customermanageds3.html#cfn-iotanalytics-channel-customermanageds3-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_CustomerManagedS3) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Channel.CustomerManagedS3"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_retentionperiod.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_retentionperiod.go
new file mode 100644
index 0000000000..d71f57b997
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_retentionperiod.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Channel.RetentionPeriod)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html
+type Channel_RetentionPeriod struct {
+
+ // NumberOfDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html#cfn-iotanalytics-channel-retentionperiod-numberofdays
+ NumberOfDays *types.Value `json:"NumberOfDays,omitempty"`
+
+ // Unlimited AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-retentionperiod.html#cfn-iotanalytics-channel-retentionperiod-unlimited
+ Unlimited *types.Value `json:"Unlimited,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_RetentionPeriod) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Channel.RetentionPeriod"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_servicemanageds3.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_servicemanageds3.go
new file mode 100644
index 0000000000..b3b0b7ed96
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-channel_servicemanageds3.go
@@ -0,0 +1,30 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_ServiceManagedS3 AWS CloudFormation Resource (AWS::IoTAnalytics::Channel.ServiceManagedS3)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-channel-servicemanageds3.html
+type Channel_ServiceManagedS3 struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_ServiceManagedS3) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Channel.ServiceManagedS3"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset.go
new file mode 100644
index 0000000000..eba7162718
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset.go
@@ -0,0 +1,144 @@
+package iotanalytics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html
+type Dataset struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-actions
+ Actions []Dataset_Action `json:"Actions,omitempty"`
+
+ // ContentDeliveryRules AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-contentdeliveryrules
+ ContentDeliveryRules []Dataset_DatasetContentDeliveryRule `json:"ContentDeliveryRules,omitempty"`
+
+ // DatasetName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-datasetname
+ DatasetName *types.Value `json:"DatasetName,omitempty"`
+
+ // LateDataRules AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-latedatarules
+ LateDataRules []Dataset_LateDataRule `json:"LateDataRules,omitempty"`
+
+ // RetentionPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-retentionperiod
+ RetentionPeriod *Dataset_RetentionPeriod `json:"RetentionPeriod,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Triggers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-triggers
+ Triggers []Dataset_Trigger `json:"Triggers,omitempty"`
+
+ // VersioningConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-dataset.html#cfn-iotanalytics-dataset-versioningconfiguration
+ VersioningConfiguration *Dataset_VersioningConfiguration `json:"VersioningConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Dataset) MarshalJSON() ([]byte, error) {
+ type Properties Dataset
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Dataset) UnmarshalJSON(b []byte) error {
+ type Properties Dataset
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Dataset(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_action.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_action.go
new file mode 100644
index 0000000000..ebe5b3de76
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_action.go
@@ -0,0 +1,47 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_Action AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html
+type Dataset_Action struct {
+
+ // ActionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html#cfn-iotanalytics-dataset-action-actionname
+ ActionName *types.Value `json:"ActionName,omitempty"`
+
+ // ContainerAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html#cfn-iotanalytics-dataset-action-containeraction
+ ContainerAction *Dataset_ContainerAction `json:"ContainerAction,omitempty"`
+
+ // QueryAction AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-action.html#cfn-iotanalytics-dataset-action-queryaction
+ QueryAction *Dataset_QueryAction `json:"QueryAction,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_Action) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.Action"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_containeraction.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_containeraction.go
new file mode 100644
index 0000000000..5dcdcb4ff8
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_containeraction.go
@@ -0,0 +1,52 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_ContainerAction AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.ContainerAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html
+type Dataset_ContainerAction struct {
+
+ // ExecutionRoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html#cfn-iotanalytics-dataset-containeraction-executionrolearn
+ ExecutionRoleArn *types.Value `json:"ExecutionRoleArn,omitempty"`
+
+ // Image AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html#cfn-iotanalytics-dataset-containeraction-image
+ Image *types.Value `json:"Image,omitempty"`
+
+ // ResourceConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html#cfn-iotanalytics-dataset-containeraction-resourceconfiguration
+ ResourceConfiguration *Dataset_ResourceConfiguration `json:"ResourceConfiguration,omitempty"`
+
+ // Variables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-containeraction.html#cfn-iotanalytics-dataset-containeraction-variables
+ Variables []Dataset_Variable `json:"Variables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_ContainerAction) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.ContainerAction"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentdeliveryrule.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentdeliveryrule.go
new file mode 100644
index 0000000000..d9af64c18e
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentdeliveryrule.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DatasetContentDeliveryRule AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule.html
+type Dataset_DatasetContentDeliveryRule struct {
+
+ // Destination AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule.html#cfn-iotanalytics-dataset-datasetcontentdeliveryrule-destination
+ Destination *Dataset_DatasetContentDeliveryRuleDestination `json:"Destination,omitempty"`
+
+ // EntryName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryrule.html#cfn-iotanalytics-dataset-datasetcontentdeliveryrule-entryname
+ EntryName *types.Value `json:"EntryName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DatasetContentDeliveryRule) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentdeliveryruledestination.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentdeliveryruledestination.go
new file mode 100644
index 0000000000..b68788b2fc
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentdeliveryruledestination.go
@@ -0,0 +1,40 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DatasetContentDeliveryRuleDestination AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination.html
+type Dataset_DatasetContentDeliveryRuleDestination struct {
+
+ // IotEventsDestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination.html#cfn-iotanalytics-dataset-datasetcontentdeliveryruledestination-ioteventsdestinationconfiguration
+ IotEventsDestinationConfiguration *Dataset_IotEventsDestinationConfiguration `json:"IotEventsDestinationConfiguration,omitempty"`
+
+ // S3DestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-datasetcontentdeliveryruledestination.html#cfn-iotanalytics-dataset-datasetcontentdeliveryruledestination-s3destinationconfiguration
+ S3DestinationConfiguration *Dataset_S3DestinationConfiguration `json:"S3DestinationConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DatasetContentDeliveryRuleDestination) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentversionvalue.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentversionvalue.go
new file mode 100644
index 0000000000..c946b207fb
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_datasetcontentversionvalue.go
@@ -0,0 +1,37 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DatasetContentVersionValue AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DatasetContentVersionValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-datasetcontentversionvalue.html
+type Dataset_DatasetContentVersionValue struct {
+
+ // DatasetName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-datasetcontentversionvalue.html#cfn-iotanalytics-dataset-variable-datasetcontentversionvalue-datasetname
+ DatasetName *types.Value `json:"DatasetName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DatasetContentVersionValue) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_deltatime.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_deltatime.go
new file mode 100644
index 0000000000..92c1cb1557
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_deltatime.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DeltaTime AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DeltaTime)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html
+type Dataset_DeltaTime struct {
+
+ // OffsetSeconds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html#cfn-iotanalytics-dataset-deltatime-offsetseconds
+ OffsetSeconds *types.Value `json:"OffsetSeconds"`
+
+ // TimeExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatime.html#cfn-iotanalytics-dataset-deltatime-timeexpression
+ TimeExpression *types.Value `json:"TimeExpression,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DeltaTime) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.DeltaTime"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_deltatimesessionwindowconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_deltatimesessionwindowconfiguration.go
new file mode 100644
index 0000000000..351973c6dc
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_deltatimesessionwindowconfiguration.go
@@ -0,0 +1,37 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_DeltaTimeSessionWindowConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration.html
+type Dataset_DeltaTimeSessionWindowConfiguration struct {
+
+ // TimeoutInMinutes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-deltatimesessionwindowconfiguration.html#cfn-iotanalytics-dataset-deltatimesessionwindowconfiguration-timeoutinminutes
+ TimeoutInMinutes *types.Value `json:"TimeoutInMinutes"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_DeltaTimeSessionWindowConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_filter.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_filter.go
new file mode 100644
index 0000000000..3440f7dd0a
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_filter.go
@@ -0,0 +1,35 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_Filter AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Filter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-filter.html
+type Dataset_Filter struct {
+
+ // DeltaTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-filter.html#cfn-iotanalytics-dataset-filter-deltatime
+ DeltaTime *Dataset_DeltaTime `json:"DeltaTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_Filter) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.Filter"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_glueconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_glueconfiguration.go
new file mode 100644
index 0000000000..7c40dfaa49
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_glueconfiguration.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_GlueConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.GlueConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-glueconfiguration.html
+type Dataset_GlueConfiguration struct {
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-glueconfiguration.html#cfn-iotanalytics-dataset-glueconfiguration-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-glueconfiguration.html#cfn-iotanalytics-dataset-glueconfiguration-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_GlueConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.GlueConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_ioteventsdestinationconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_ioteventsdestinationconfiguration.go
new file mode 100644
index 0000000000..74492ae8af
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_ioteventsdestinationconfiguration.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_IotEventsDestinationConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration.html
+type Dataset_IotEventsDestinationConfiguration struct {
+
+ // InputName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration.html#cfn-iotanalytics-dataset-ioteventsdestinationconfiguration-inputname
+ InputName *types.Value `json:"InputName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-ioteventsdestinationconfiguration.html#cfn-iotanalytics-dataset-ioteventsdestinationconfiguration-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_IotEventsDestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_latedatarule.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_latedatarule.go
new file mode 100644
index 0000000000..0c0f339394
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_latedatarule.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_LateDataRule AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.LateDataRule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedatarule.html
+type Dataset_LateDataRule struct {
+
+ // RuleConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedatarule.html#cfn-iotanalytics-dataset-latedatarule-ruleconfiguration
+ RuleConfiguration *Dataset_LateDataRuleConfiguration `json:"RuleConfiguration,omitempty"`
+
+ // RuleName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedatarule.html#cfn-iotanalytics-dataset-latedatarule-rulename
+ RuleName *types.Value `json:"RuleName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_LateDataRule) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.LateDataRule"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_latedataruleconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_latedataruleconfiguration.go
new file mode 100644
index 0000000000..e230157bcf
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_latedataruleconfiguration.go
@@ -0,0 +1,35 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_LateDataRuleConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedataruleconfiguration.html
+type Dataset_LateDataRuleConfiguration struct {
+
+ // DeltaTimeSessionWindowConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-latedataruleconfiguration.html#cfn-iotanalytics-dataset-latedataruleconfiguration-deltatimesessionwindowconfiguration
+ DeltaTimeSessionWindowConfiguration *Dataset_DeltaTimeSessionWindowConfiguration `json:"DeltaTimeSessionWindowConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_LateDataRuleConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_outputfileurivalue.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_outputfileurivalue.go
new file mode 100644
index 0000000000..ff25ef7974
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_outputfileurivalue.go
@@ -0,0 +1,37 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_OutputFileUriValue AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.OutputFileUriValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-outputfileurivalue.html
+type Dataset_OutputFileUriValue struct {
+
+ // FileName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable-outputfileurivalue.html#cfn-iotanalytics-dataset-variable-outputfileurivalue-filename
+ FileName *types.Value `json:"FileName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_OutputFileUriValue) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.OutputFileUriValue"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_queryaction.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_queryaction.go
new file mode 100644
index 0000000000..be53ea2a2e
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_queryaction.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_QueryAction AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.QueryAction)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html
+type Dataset_QueryAction struct {
+
+ // Filters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html#cfn-iotanalytics-dataset-queryaction-filters
+ Filters []Dataset_Filter `json:"Filters,omitempty"`
+
+ // SqlQuery AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-queryaction.html#cfn-iotanalytics-dataset-queryaction-sqlquery
+ SqlQuery *types.Value `json:"SqlQuery,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_QueryAction) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.QueryAction"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_resourceconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_resourceconfiguration.go
new file mode 100644
index 0000000000..82bb671681
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_resourceconfiguration.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_ResourceConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.ResourceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html
+type Dataset_ResourceConfiguration struct {
+
+ // ComputeType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html#cfn-iotanalytics-dataset-resourceconfiguration-computetype
+ ComputeType *types.Value `json:"ComputeType,omitempty"`
+
+ // VolumeSizeInGB AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-resourceconfiguration.html#cfn-iotanalytics-dataset-resourceconfiguration-volumesizeingb
+ VolumeSizeInGB *types.Value `json:"VolumeSizeInGB"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_ResourceConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.ResourceConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_retentionperiod.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_retentionperiod.go
new file mode 100644
index 0000000000..bae4d3c6c7
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_retentionperiod.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.RetentionPeriod)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html
+type Dataset_RetentionPeriod struct {
+
+ // NumberOfDays AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html#cfn-iotanalytics-dataset-retentionperiod-numberofdays
+ NumberOfDays *types.Value `json:"NumberOfDays"`
+
+ // Unlimited AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-retentionperiod.html#cfn-iotanalytics-dataset-retentionperiod-unlimited
+ Unlimited *types.Value `json:"Unlimited"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_RetentionPeriod) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.RetentionPeriod"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_s3destinationconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_s3destinationconfiguration.go
new file mode 100644
index 0000000000..4727e717ae
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_s3destinationconfiguration.go
@@ -0,0 +1,52 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_S3DestinationConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.S3DestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-s3destinationconfiguration.html
+type Dataset_S3DestinationConfiguration struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-s3destinationconfiguration.html#cfn-iotanalytics-dataset-s3destinationconfiguration-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // GlueConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-s3destinationconfiguration.html#cfn-iotanalytics-dataset-s3destinationconfiguration-glueconfiguration
+ GlueConfiguration *Dataset_GlueConfiguration `json:"GlueConfiguration,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-s3destinationconfiguration.html#cfn-iotanalytics-dataset-s3destinationconfiguration-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-s3destinationconfiguration.html#cfn-iotanalytics-dataset-s3destinationconfiguration-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_S3DestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.S3DestinationConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_schedule.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_schedule.go
new file mode 100644
index 0000000000..398c66d2e6
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_schedule.go
@@ -0,0 +1,37 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_Schedule AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Schedule)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger-schedule.html
+type Dataset_Schedule struct {
+
+ // ScheduleExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger-schedule.html#cfn-iotanalytics-dataset-trigger-schedule-scheduleexpression
+ ScheduleExpression *types.Value `json:"ScheduleExpression,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_Schedule) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.Schedule"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_trigger.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_trigger.go
new file mode 100644
index 0000000000..be995748dd
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_trigger.go
@@ -0,0 +1,40 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_Trigger AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Trigger)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html
+type Dataset_Trigger struct {
+
+ // Schedule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html#cfn-iotanalytics-dataset-trigger-schedule
+ Schedule *Dataset_Schedule `json:"Schedule,omitempty"`
+
+ // TriggeringDataset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-trigger.html#cfn-iotanalytics-dataset-trigger-triggeringdataset
+ TriggeringDataset *Dataset_TriggeringDataset `json:"TriggeringDataset,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_Trigger) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.Trigger"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_triggeringdataset.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_triggeringdataset.go
new file mode 100644
index 0000000000..6903add83a
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_triggeringdataset.go
@@ -0,0 +1,37 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_TriggeringDataset AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.TriggeringDataset)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-triggeringdataset.html
+type Dataset_TriggeringDataset struct {
+
+ // DatasetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-triggeringdataset.html#cfn-iotanalytics-dataset-triggeringdataset-datasetname
+ DatasetName *types.Value `json:"DatasetName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_TriggeringDataset) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.TriggeringDataset"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_variable.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_variable.go
new file mode 100644
index 0000000000..d6ddb5c9f2
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_variable.go
@@ -0,0 +1,57 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_Variable AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.Variable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html
+type Dataset_Variable struct {
+
+ // DatasetContentVersionValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-datasetcontentversionvalue
+ DatasetContentVersionValue *Dataset_DatasetContentVersionValue `json:"DatasetContentVersionValue,omitempty"`
+
+ // DoubleValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-doublevalue
+ DoubleValue *types.Value `json:"DoubleValue,omitempty"`
+
+ // OutputFileUriValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-outputfileurivalue
+ OutputFileUriValue *Dataset_OutputFileUriValue `json:"OutputFileUriValue,omitempty"`
+
+ // StringValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-stringvalue
+ StringValue *types.Value `json:"StringValue,omitempty"`
+
+ // VariableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-variable.html#cfn-iotanalytics-dataset-variable-variablename
+ VariableName *types.Value `json:"VariableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_Variable) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.Variable"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_versioningconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_versioningconfiguration.go
new file mode 100644
index 0000000000..6d1ef4feb6
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-dataset_versioningconfiguration.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dataset_VersioningConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Dataset.VersioningConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-versioningconfiguration.html
+type Dataset_VersioningConfiguration struct {
+
+ // MaxVersions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-versioningconfiguration.html#cfn-iotanalytics-dataset-versioningconfiguration-maxversions
+ MaxVersions *types.Value `json:"MaxVersions,omitempty"`
+
+ // Unlimited AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-dataset-versioningconfiguration.html#cfn-iotanalytics-dataset-versioningconfiguration-unlimited
+ Unlimited *types.Value `json:"Unlimited,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dataset_VersioningConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Dataset.VersioningConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore.go
new file mode 100644
index 0000000000..de90c4cc1c
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore.go
@@ -0,0 +1,134 @@
+package iotanalytics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html
+type Datastore struct {
+
+ // DatastoreName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-datastorename
+ DatastoreName *types.Value `json:"DatastoreName,omitempty"`
+
+ // DatastorePartitions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-datastorepartitions
+ DatastorePartitions *Datastore_DatastorePartitions `json:"DatastorePartitions,omitempty"`
+
+ // DatastoreStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-datastorestorage
+ DatastoreStorage *Datastore_DatastoreStorage `json:"DatastoreStorage,omitempty"`
+
+ // FileFormatConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-fileformatconfiguration
+ FileFormatConfiguration *Datastore_FileFormatConfiguration `json:"FileFormatConfiguration,omitempty"`
+
+ // RetentionPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-retentionperiod
+ RetentionPeriod *Datastore_RetentionPeriod `json:"RetentionPeriod,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-datastore.html#cfn-iotanalytics-datastore-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Datastore) MarshalJSON() ([]byte, error) {
+ type Properties Datastore
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Datastore) UnmarshalJSON(b []byte) error {
+ type Properties Datastore
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Datastore(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_column.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_column.go
new file mode 100644
index 0000000000..5e00592fa5
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_column.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_Column AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.Column)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-column.html
+type Datastore_Column struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-column.html#cfn-iotanalytics-datastore-column-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-column.html#cfn-iotanalytics-datastore-column-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_Column) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.Column"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_customermanageds3.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_customermanageds3.go
new file mode 100644
index 0000000000..bf7e5a26b7
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_customermanageds3.go
@@ -0,0 +1,47 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_CustomerManagedS3 AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.CustomerManagedS3)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html
+type Datastore_CustomerManagedS3 struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html#cfn-iotanalytics-datastore-customermanageds3-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html#cfn-iotanalytics-datastore-customermanageds3-keyprefix
+ KeyPrefix *types.Value `json:"KeyPrefix,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3.html#cfn-iotanalytics-datastore-customermanageds3-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_CustomerManagedS3) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.CustomerManagedS3"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_customermanageds3storage.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_customermanageds3storage.go
new file mode 100644
index 0000000000..ac5a6699c5
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_customermanageds3storage.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_CustomerManagedS3Storage AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3storage.html
+type Datastore_CustomerManagedS3Storage struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3storage.html#cfn-iotanalytics-datastore-customermanageds3storage-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // KeyPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-customermanageds3storage.html#cfn-iotanalytics-datastore-customermanageds3storage-keyprefix
+ KeyPrefix *types.Value `json:"KeyPrefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_CustomerManagedS3Storage) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorepartition.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorepartition.go
new file mode 100644
index 0000000000..4d0df949ca
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorepartition.go
@@ -0,0 +1,40 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_DatastorePartition AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.DatastorePartition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html
+type Datastore_DatastorePartition struct {
+
+ // Partition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html#cfn-iotanalytics-datastore-datastorepartition-partition
+ Partition *Datastore_Partition `json:"Partition,omitempty"`
+
+ // TimestampPartition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartition.html#cfn-iotanalytics-datastore-datastorepartition-timestamppartition
+ TimestampPartition *Datastore_TimestampPartition `json:"TimestampPartition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_DatastorePartition) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.DatastorePartition"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorepartitions.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorepartitions.go
new file mode 100644
index 0000000000..8fb70352fe
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorepartitions.go
@@ -0,0 +1,35 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_DatastorePartitions AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.DatastorePartitions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartitions.html
+type Datastore_DatastorePartitions struct {
+
+ // Partitions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorepartitions.html#cfn-iotanalytics-datastore-datastorepartitions-partitions
+ Partitions []Datastore_DatastorePartition `json:"Partitions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_DatastorePartitions) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.DatastorePartitions"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorestorage.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorestorage.go
new file mode 100644
index 0000000000..00af2ee38c
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_datastorestorage.go
@@ -0,0 +1,45 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_DatastoreStorage AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.DatastoreStorage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html
+type Datastore_DatastoreStorage struct {
+
+ // CustomerManagedS3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html#cfn-iotanalytics-datastore-datastorestorage-customermanageds3
+ CustomerManagedS3 *Datastore_CustomerManagedS3 `json:"CustomerManagedS3,omitempty"`
+
+ // IotSiteWiseMultiLayerStorage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html#cfn-iotanalytics-datastore-datastorestorage-iotsitewisemultilayerstorage
+ IotSiteWiseMultiLayerStorage *Datastore_IotSiteWiseMultiLayerStorage `json:"IotSiteWiseMultiLayerStorage,omitempty"`
+
+ // ServiceManagedS3 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-datastorestorage.html#cfn-iotanalytics-datastore-datastorestorage-servicemanageds3
+ ServiceManagedS3 *Datastore_ServiceManagedS3 `json:"ServiceManagedS3,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_DatastoreStorage) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.DatastoreStorage"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_fileformatconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_fileformatconfiguration.go
new file mode 100644
index 0000000000..452a4559a0
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_fileformatconfiguration.go
@@ -0,0 +1,40 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_FileFormatConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.FileFormatConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-fileformatconfiguration.html
+type Datastore_FileFormatConfiguration struct {
+
+ // JsonConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-fileformatconfiguration.html#cfn-iotanalytics-datastore-fileformatconfiguration-jsonconfiguration
+ JsonConfiguration *Datastore_JsonConfiguration `json:"JsonConfiguration,omitempty"`
+
+ // ParquetConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-fileformatconfiguration.html#cfn-iotanalytics-datastore-fileformatconfiguration-parquetconfiguration
+ ParquetConfiguration *Datastore_ParquetConfiguration `json:"ParquetConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_FileFormatConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.FileFormatConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_iotsitewisemultilayerstorage.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_iotsitewisemultilayerstorage.go
new file mode 100644
index 0000000000..e1a17dde66
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_iotsitewisemultilayerstorage.go
@@ -0,0 +1,35 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_IotSiteWiseMultiLayerStorage AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-iotsitewisemultilayerstorage.html
+type Datastore_IotSiteWiseMultiLayerStorage struct {
+
+ // CustomerManagedS3Storage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-iotsitewisemultilayerstorage.html#cfn-iotanalytics-datastore-iotsitewisemultilayerstorage-customermanageds3storage
+ CustomerManagedS3Storage *Datastore_CustomerManagedS3Storage `json:"CustomerManagedS3Storage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_IotSiteWiseMultiLayerStorage) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_jsonconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_jsonconfiguration.go
new file mode 100644
index 0000000000..9f99fd6c46
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_jsonconfiguration.go
@@ -0,0 +1,30 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_JsonConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.JsonConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-jsonconfiguration.html
+type Datastore_JsonConfiguration struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_JsonConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.JsonConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_parquetconfiguration.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_parquetconfiguration.go
new file mode 100644
index 0000000000..2765635525
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_parquetconfiguration.go
@@ -0,0 +1,35 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_ParquetConfiguration AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.ParquetConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-parquetconfiguration.html
+type Datastore_ParquetConfiguration struct {
+
+ // SchemaDefinition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-parquetconfiguration.html#cfn-iotanalytics-datastore-parquetconfiguration-schemadefinition
+ SchemaDefinition *Datastore_SchemaDefinition `json:"SchemaDefinition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_ParquetConfiguration) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.ParquetConfiguration"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_partition.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_partition.go
new file mode 100644
index 0000000000..50de892a72
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_partition.go
@@ -0,0 +1,37 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_Partition AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.Partition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-partition.html
+type Datastore_Partition struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-partition.html#cfn-iotanalytics-datastore-partition-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_Partition) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.Partition"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_retentionperiod.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_retentionperiod.go
new file mode 100644
index 0000000000..4e2f5857f5
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_retentionperiod.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_RetentionPeriod AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.RetentionPeriod)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html
+type Datastore_RetentionPeriod struct {
+
+ // NumberOfDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html#cfn-iotanalytics-datastore-retentionperiod-numberofdays
+ NumberOfDays *types.Value `json:"NumberOfDays,omitempty"`
+
+ // Unlimited AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-retentionperiod.html#cfn-iotanalytics-datastore-retentionperiod-unlimited
+ Unlimited *types.Value `json:"Unlimited,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_RetentionPeriod) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.RetentionPeriod"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_schemadefinition.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_schemadefinition.go
new file mode 100644
index 0000000000..71600523a3
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_schemadefinition.go
@@ -0,0 +1,35 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_SchemaDefinition AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.SchemaDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-schemadefinition.html
+type Datastore_SchemaDefinition struct {
+
+ // Columns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-schemadefinition.html#cfn-iotanalytics-datastore-schemadefinition-columns
+ Columns []Datastore_Column `json:"Columns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_SchemaDefinition) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.SchemaDefinition"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_servicemanageds3.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_servicemanageds3.go
new file mode 100644
index 0000000000..ca7035c83b
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_servicemanageds3.go
@@ -0,0 +1,30 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_ServiceManagedS3 AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.ServiceManagedS3)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-servicemanageds3.html
+type Datastore_ServiceManagedS3 struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_ServiceManagedS3) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.ServiceManagedS3"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_timestamppartition.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_timestamppartition.go
new file mode 100644
index 0000000000..a7bfe16ea8
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-datastore_timestamppartition.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Datastore_TimestampPartition AWS CloudFormation Resource (AWS::IoTAnalytics::Datastore.TimestampPartition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-timestamppartition.html
+type Datastore_TimestampPartition struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-timestamppartition.html#cfn-iotanalytics-datastore-timestamppartition-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // TimestampFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-datastore-timestamppartition.html#cfn-iotanalytics-datastore-timestamppartition-timestampformat
+ TimestampFormat *types.Value `json:"TimestampFormat,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Datastore_TimestampPartition) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Datastore.TimestampPartition"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline.go
new file mode 100644
index 0000000000..92b5e68e2c
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline.go
@@ -0,0 +1,119 @@
+package iotanalytics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html
+type Pipeline struct {
+
+ // PipelineActivities AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html#cfn-iotanalytics-pipeline-pipelineactivities
+ PipelineActivities []Pipeline_Activity `json:"PipelineActivities,omitempty"`
+
+ // PipelineName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html#cfn-iotanalytics-pipeline-pipelinename
+ PipelineName *types.Value `json:"PipelineName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html#cfn-iotanalytics-pipeline-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Pipeline) MarshalJSON() ([]byte, error) {
+ type Properties Pipeline
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Pipeline) UnmarshalJSON(b []byte) error {
+ type Properties Pipeline
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Pipeline(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_activity.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_activity.go
new file mode 100644
index 0000000000..f0bfa225e7
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_activity.go
@@ -0,0 +1,80 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_Activity AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Activity)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html
+type Pipeline_Activity struct {
+
+ // AddAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-addattributes
+ AddAttributes *Pipeline_AddAttributes `json:"AddAttributes,omitempty"`
+
+ // Channel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-channel
+ Channel *Pipeline_Channel `json:"Channel,omitempty"`
+
+ // Datastore AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-datastore
+ Datastore *Pipeline_Datastore `json:"Datastore,omitempty"`
+
+ // DeviceRegistryEnrich AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-deviceregistryenrich
+ DeviceRegistryEnrich *Pipeline_DeviceRegistryEnrich `json:"DeviceRegistryEnrich,omitempty"`
+
+ // DeviceShadowEnrich AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-deviceshadowenrich
+ DeviceShadowEnrich *Pipeline_DeviceShadowEnrich `json:"DeviceShadowEnrich,omitempty"`
+
+ // Filter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-filter
+ Filter *Pipeline_Filter `json:"Filter,omitempty"`
+
+ // Lambda AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-lambda
+ Lambda *Pipeline_Lambda `json:"Lambda,omitempty"`
+
+ // Math AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-math
+ Math *Pipeline_Math `json:"Math,omitempty"`
+
+ // RemoveAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-removeattributes
+ RemoveAttributes *Pipeline_RemoveAttributes `json:"RemoveAttributes,omitempty"`
+
+ // SelectAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html#cfn-iotanalytics-pipeline-activity-selectattributes
+ SelectAttributes *Pipeline_SelectAttributes `json:"SelectAttributes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_Activity) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.Activity"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_addattributes.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_addattributes.go
new file mode 100644
index 0000000000..50a12c7da5
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_addattributes.go
@@ -0,0 +1,47 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_AddAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.AddAttributes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html
+type Pipeline_AddAttributes struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html#cfn-iotanalytics-pipeline-addattributes-attributes
+ Attributes interface{} `json:"Attributes,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html#cfn-iotanalytics-pipeline-addattributes-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-addattributes.html#cfn-iotanalytics-pipeline-addattributes-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_AddAttributes) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.AddAttributes"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_channel.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_channel.go
new file mode 100644
index 0000000000..af69e022f4
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_channel.go
@@ -0,0 +1,47 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_Channel AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Channel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html
+type Pipeline_Channel struct {
+
+ // ChannelName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-channelname
+ ChannelName *types.Value `json:"ChannelName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_Channel) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.Channel"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_datastore.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_datastore.go
new file mode 100644
index 0000000000..e69c9ffd37
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_datastore.go
@@ -0,0 +1,42 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_Datastore AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Datastore)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html
+type Pipeline_Datastore struct {
+
+ // DatastoreName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html#cfn-iotanalytics-pipeline-datastore-datastorename
+ DatastoreName *types.Value `json:"DatastoreName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-datastore.html#cfn-iotanalytics-pipeline-datastore-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_Datastore) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.Datastore"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_deviceregistryenrich.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_deviceregistryenrich.go
new file mode 100644
index 0000000000..6a8c0fc6fd
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_deviceregistryenrich.go
@@ -0,0 +1,57 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_DeviceRegistryEnrich AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html
+type Pipeline_DeviceRegistryEnrich struct {
+
+ // Attribute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-attribute
+ Attribute *types.Value `json:"Attribute,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // ThingName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceregistryenrich.html#cfn-iotanalytics-pipeline-deviceregistryenrich-thingname
+ ThingName *types.Value `json:"ThingName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_DeviceRegistryEnrich) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_deviceshadowenrich.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_deviceshadowenrich.go
new file mode 100644
index 0000000000..280b3437ba
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_deviceshadowenrich.go
@@ -0,0 +1,57 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_DeviceShadowEnrich AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html
+type Pipeline_DeviceShadowEnrich struct {
+
+ // Attribute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-attribute
+ Attribute *types.Value `json:"Attribute,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // ThingName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-deviceshadowenrich.html#cfn-iotanalytics-pipeline-deviceshadowenrich-thingname
+ ThingName *types.Value `json:"ThingName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_DeviceShadowEnrich) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_filter.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_filter.go
new file mode 100644
index 0000000000..2abf639818
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_filter.go
@@ -0,0 +1,47 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_Filter AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Filter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html
+type Pipeline_Filter struct {
+
+ // Filter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html#cfn-iotanalytics-pipeline-filter-filter
+ Filter *types.Value `json:"Filter,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html#cfn-iotanalytics-pipeline-filter-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-filter.html#cfn-iotanalytics-pipeline-filter-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_Filter) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.Filter"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_lambda.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_lambda.go
new file mode 100644
index 0000000000..6b8a8cd949
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_lambda.go
@@ -0,0 +1,52 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_Lambda AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Lambda)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html
+type Pipeline_Lambda struct {
+
+ // BatchSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html#cfn-iotanalytics-pipeline-lambda-batchsize
+ BatchSize *types.Value `json:"BatchSize,omitempty"`
+
+ // LambdaName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html#cfn-iotanalytics-pipeline-lambda-lambdaname
+ LambdaName *types.Value `json:"LambdaName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html#cfn-iotanalytics-pipeline-lambda-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-lambda.html#cfn-iotanalytics-pipeline-lambda-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_Lambda) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.Lambda"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_math.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_math.go
new file mode 100644
index 0000000000..e9815610b2
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_math.go
@@ -0,0 +1,52 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_Math AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.Math)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html
+type Pipeline_Math struct {
+
+ // Attribute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html#cfn-iotanalytics-pipeline-math-attribute
+ Attribute *types.Value `json:"Attribute,omitempty"`
+
+ // Math AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html#cfn-iotanalytics-pipeline-math-math
+ Math *types.Value `json:"Math,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html#cfn-iotanalytics-pipeline-math-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-math.html#cfn-iotanalytics-pipeline-math-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_Math) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.Math"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_removeattributes.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_removeattributes.go
new file mode 100644
index 0000000000..b2afeab694
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_removeattributes.go
@@ -0,0 +1,47 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_RemoveAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.RemoveAttributes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html
+type Pipeline_RemoveAttributes struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html#cfn-iotanalytics-pipeline-removeattributes-attributes
+ Attributes *types.Value `json:"Attributes,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html#cfn-iotanalytics-pipeline-removeattributes-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-removeattributes.html#cfn-iotanalytics-pipeline-removeattributes-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_RemoveAttributes) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.RemoveAttributes"
+}
diff --git a/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_selectattributes.go b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_selectattributes.go
new file mode 100644
index 0000000000..f84c5e4497
--- /dev/null
+++ b/goformation/cloudformation/iotanalytics/aws-iotanalytics-pipeline_selectattributes.go
@@ -0,0 +1,47 @@
+package iotanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Pipeline_SelectAttributes AWS CloudFormation Resource (AWS::IoTAnalytics::Pipeline.SelectAttributes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html
+type Pipeline_SelectAttributes struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html#cfn-iotanalytics-pipeline-selectattributes-attributes
+ Attributes *types.Value `json:"Attributes,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html#cfn-iotanalytics-pipeline-selectattributes-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Next AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-selectattributes.html#cfn-iotanalytics-pipeline-selectattributes-next
+ Next *types.Value `json:"Next,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Pipeline_SelectAttributes) AWSCloudFormationType() string {
+ return "AWS::IoTAnalytics::Pipeline.SelectAttributes"
+}
diff --git a/goformation/cloudformation/iotcoredeviceadvisor/aws-iotcoredeviceadvisor-suitedefinition.go b/goformation/cloudformation/iotcoredeviceadvisor/aws-iotcoredeviceadvisor-suitedefinition.go
new file mode 100644
index 0000000000..e9a4672548
--- /dev/null
+++ b/goformation/cloudformation/iotcoredeviceadvisor/aws-iotcoredeviceadvisor-suitedefinition.go
@@ -0,0 +1,112 @@
+package iotcoredeviceadvisor
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// SuiteDefinition AWS CloudFormation Resource (AWS::IoTCoreDeviceAdvisor::SuiteDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotcoredeviceadvisor-suitedefinition.html
+type SuiteDefinition struct {
+
+ // SuiteDefinitionConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotcoredeviceadvisor-suitedefinition.html#cfn-iotcoredeviceadvisor-suitedefinition-suitedefinitionconfiguration
+ SuiteDefinitionConfiguration interface{} `json:"SuiteDefinitionConfiguration,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotcoredeviceadvisor-suitedefinition.html#cfn-iotcoredeviceadvisor-suitedefinition-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SuiteDefinition) AWSCloudFormationType() string {
+ return "AWS::IoTCoreDeviceAdvisor::SuiteDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SuiteDefinition) MarshalJSON() ([]byte, error) {
+ type Properties SuiteDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SuiteDefinition) UnmarshalJSON(b []byte) error {
+ type Properties SuiteDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SuiteDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel.go
new file mode 100644
index 0000000000..404833a55f
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel.go
@@ -0,0 +1,139 @@
+package iotevents
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html
+type DetectorModel struct {
+
+ // DetectorModelDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html#cfn-iotevents-detectormodel-detectormodeldefinition
+ DetectorModelDefinition *DetectorModel_DetectorModelDefinition `json:"DetectorModelDefinition,omitempty"`
+
+ // DetectorModelDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html#cfn-iotevents-detectormodel-detectormodeldescription
+ DetectorModelDescription *types.Value `json:"DetectorModelDescription,omitempty"`
+
+ // DetectorModelName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html#cfn-iotevents-detectormodel-detectormodelname
+ DetectorModelName *types.Value `json:"DetectorModelName,omitempty"`
+
+ // EvaluationMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html#cfn-iotevents-detectormodel-evaluationmethod
+ EvaluationMethod *types.Value `json:"EvaluationMethod,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html#cfn-iotevents-detectormodel-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html#cfn-iotevents-detectormodel-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html#cfn-iotevents-detectormodel-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DetectorModel) MarshalJSON() ([]byte, error) {
+ type Properties DetectorModel
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DetectorModel) UnmarshalJSON(b []byte) error {
+ type Properties DetectorModel
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DetectorModel(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_action.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_action.go
new file mode 100644
index 0000000000..1f98cee463
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_action.go
@@ -0,0 +1,95 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_Action AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html
+type DetectorModel_Action struct {
+
+ // ClearTimer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-cleartimer
+ ClearTimer *DetectorModel_ClearTimer `json:"ClearTimer,omitempty"`
+
+ // DynamoDB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-dynamodb
+ DynamoDB *DetectorModel_DynamoDB `json:"DynamoDB,omitempty"`
+
+ // DynamoDBv2 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-dynamodbv2
+ DynamoDBv2 *DetectorModel_DynamoDBv2 `json:"DynamoDBv2,omitempty"`
+
+ // Firehose AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-firehose
+ Firehose *DetectorModel_Firehose `json:"Firehose,omitempty"`
+
+ // IotEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-iotevents
+ IotEvents *DetectorModel_IotEvents `json:"IotEvents,omitempty"`
+
+ // IotSiteWise AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-iotsitewise
+ IotSiteWise *DetectorModel_IotSiteWise `json:"IotSiteWise,omitempty"`
+
+ // IotTopicPublish AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-iottopicpublish
+ IotTopicPublish *DetectorModel_IotTopicPublish `json:"IotTopicPublish,omitempty"`
+
+ // Lambda AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-lambda
+ Lambda *DetectorModel_Lambda `json:"Lambda,omitempty"`
+
+ // ResetTimer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-resettimer
+ ResetTimer *DetectorModel_ResetTimer `json:"ResetTimer,omitempty"`
+
+ // SetTimer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-settimer
+ SetTimer *DetectorModel_SetTimer `json:"SetTimer,omitempty"`
+
+ // SetVariable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-setvariable
+ SetVariable *DetectorModel_SetVariable `json:"SetVariable,omitempty"`
+
+ // Sns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-sns
+ Sns *DetectorModel_Sns `json:"Sns,omitempty"`
+
+ // Sqs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html#cfn-iotevents-detectormodel-action-sqs
+ Sqs *DetectorModel_Sqs `json:"Sqs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_Action) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.Action"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertytimestamp.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertytimestamp.go
new file mode 100644
index 0000000000..42cab15d1c
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertytimestamp.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_AssetPropertyTimestamp AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertytimestamp.html
+type DetectorModel_AssetPropertyTimestamp struct {
+
+ // OffsetInNanos AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertytimestamp.html#cfn-iotevents-detectormodel-assetpropertytimestamp-offsetinnanos
+ OffsetInNanos *types.Value `json:"OffsetInNanos,omitempty"`
+
+ // TimeInSeconds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertytimestamp.html#cfn-iotevents-detectormodel-assetpropertytimestamp-timeinseconds
+ TimeInSeconds *types.Value `json:"TimeInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_AssetPropertyTimestamp) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertyvalue.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertyvalue.go
new file mode 100644
index 0000000000..c7b36580ca
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertyvalue.go
@@ -0,0 +1,47 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_AssetPropertyValue AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.AssetPropertyValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html
+type DetectorModel_AssetPropertyValue struct {
+
+ // Quality AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html#cfn-iotevents-detectormodel-assetpropertyvalue-quality
+ Quality *types.Value `json:"Quality,omitempty"`
+
+ // Timestamp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html#cfn-iotevents-detectormodel-assetpropertyvalue-timestamp
+ Timestamp *DetectorModel_AssetPropertyTimestamp `json:"Timestamp,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html#cfn-iotevents-detectormodel-assetpropertyvalue-value
+ Value *DetectorModel_AssetPropertyVariant `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_AssetPropertyValue) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.AssetPropertyValue"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertyvariant.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertyvariant.go
new file mode 100644
index 0000000000..7ed4304368
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_assetpropertyvariant.go
@@ -0,0 +1,52 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_AssetPropertyVariant AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.AssetPropertyVariant)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html
+type DetectorModel_AssetPropertyVariant struct {
+
+ // BooleanValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html#cfn-iotevents-detectormodel-assetpropertyvariant-booleanvalue
+ BooleanValue *types.Value `json:"BooleanValue,omitempty"`
+
+ // DoubleValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html#cfn-iotevents-detectormodel-assetpropertyvariant-doublevalue
+ DoubleValue *types.Value `json:"DoubleValue,omitempty"`
+
+ // IntegerValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html#cfn-iotevents-detectormodel-assetpropertyvariant-integervalue
+ IntegerValue *types.Value `json:"IntegerValue,omitempty"`
+
+ // StringValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html#cfn-iotevents-detectormodel-assetpropertyvariant-stringvalue
+ StringValue *types.Value `json:"StringValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_AssetPropertyVariant) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.AssetPropertyVariant"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_cleartimer.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_cleartimer.go
new file mode 100644
index 0000000000..ff7f8a8935
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_cleartimer.go
@@ -0,0 +1,37 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_ClearTimer AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.ClearTimer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-cleartimer.html
+type DetectorModel_ClearTimer struct {
+
+ // TimerName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-cleartimer.html#cfn-iotevents-detectormodel-cleartimer-timername
+ TimerName *types.Value `json:"TimerName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_ClearTimer) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.ClearTimer"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_detectormodeldefinition.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_detectormodeldefinition.go
new file mode 100644
index 0000000000..3c07021700
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_detectormodeldefinition.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_DetectorModelDefinition AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.DetectorModelDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html
+type DetectorModel_DetectorModelDefinition struct {
+
+ // InitialStateName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html#cfn-iotevents-detectormodel-detectormodeldefinition-initialstatename
+ InitialStateName *types.Value `json:"InitialStateName,omitempty"`
+
+ // States AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html#cfn-iotevents-detectormodel-detectormodeldefinition-states
+ States []DetectorModel_State `json:"States,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_DetectorModelDefinition) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.DetectorModelDefinition"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_dynamodb.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_dynamodb.go
new file mode 100644
index 0000000000..2b7690ce91
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_dynamodb.go
@@ -0,0 +1,82 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_DynamoDB AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.DynamoDB)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html
+type DetectorModel_DynamoDB struct {
+
+ // HashKeyField AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-hashkeyfield
+ HashKeyField *types.Value `json:"HashKeyField,omitempty"`
+
+ // HashKeyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-hashkeytype
+ HashKeyType *types.Value `json:"HashKeyType,omitempty"`
+
+ // HashKeyValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-hashkeyvalue
+ HashKeyValue *types.Value `json:"HashKeyValue,omitempty"`
+
+ // Operation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-operation
+ Operation *types.Value `json:"Operation,omitempty"`
+
+ // Payload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-payload
+ Payload *DetectorModel_Payload `json:"Payload,omitempty"`
+
+ // PayloadField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-payloadfield
+ PayloadField *types.Value `json:"PayloadField,omitempty"`
+
+ // RangeKeyField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-rangekeyfield
+ RangeKeyField *types.Value `json:"RangeKeyField,omitempty"`
+
+ // RangeKeyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-rangekeytype
+ RangeKeyType *types.Value `json:"RangeKeyType,omitempty"`
+
+ // RangeKeyValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-rangekeyvalue
+ RangeKeyValue *types.Value `json:"RangeKeyValue,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html#cfn-iotevents-detectormodel-dynamodb-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_DynamoDB) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.DynamoDB"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_dynamodbv2.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_dynamodbv2.go
new file mode 100644
index 0000000000..0818788036
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_dynamodbv2.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_DynamoDBv2 AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.DynamoDBv2)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodbv2.html
+type DetectorModel_DynamoDBv2 struct {
+
+ // Payload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodbv2.html#cfn-iotevents-detectormodel-dynamodbv2-payload
+ Payload *DetectorModel_Payload `json:"Payload,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodbv2.html#cfn-iotevents-detectormodel-dynamodbv2-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_DynamoDBv2) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.DynamoDBv2"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_event.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_event.go
new file mode 100644
index 0000000000..04447c29f7
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_event.go
@@ -0,0 +1,47 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_Event AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.Event)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html
+type DetectorModel_Event struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html#cfn-iotevents-detectormodel-event-actions
+ Actions []DetectorModel_Action `json:"Actions,omitempty"`
+
+ // Condition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html#cfn-iotevents-detectormodel-event-condition
+ Condition *types.Value `json:"Condition,omitempty"`
+
+ // EventName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html#cfn-iotevents-detectormodel-event-eventname
+ EventName *types.Value `json:"EventName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_Event) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.Event"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_firehose.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_firehose.go
new file mode 100644
index 0000000000..7923f83a49
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_firehose.go
@@ -0,0 +1,47 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_Firehose AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.Firehose)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-firehose.html
+type DetectorModel_Firehose struct {
+
+ // DeliveryStreamName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-firehose.html#cfn-iotevents-detectormodel-firehose-deliverystreamname
+ DeliveryStreamName *types.Value `json:"DeliveryStreamName,omitempty"`
+
+ // Payload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-firehose.html#cfn-iotevents-detectormodel-firehose-payload
+ Payload *DetectorModel_Payload `json:"Payload,omitempty"`
+
+ // Separator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-firehose.html#cfn-iotevents-detectormodel-firehose-separator
+ Separator *types.Value `json:"Separator,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_Firehose) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.Firehose"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iotevents.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iotevents.go
new file mode 100644
index 0000000000..839d6dac9b
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iotevents.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_IotEvents AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.IotEvents)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotevents.html
+type DetectorModel_IotEvents struct {
+
+ // InputName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotevents.html#cfn-iotevents-detectormodel-iotevents-inputname
+ InputName *types.Value `json:"InputName,omitempty"`
+
+ // Payload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotevents.html#cfn-iotevents-detectormodel-iotevents-payload
+ Payload *DetectorModel_Payload `json:"Payload,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_IotEvents) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.IotEvents"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iotsitewise.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iotsitewise.go
new file mode 100644
index 0000000000..157dfb25e1
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iotsitewise.go
@@ -0,0 +1,57 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_IotSiteWise AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.IotSiteWise)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html
+type DetectorModel_IotSiteWise struct {
+
+ // AssetId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html#cfn-iotevents-detectormodel-iotsitewise-assetid
+ AssetId *types.Value `json:"AssetId,omitempty"`
+
+ // EntryId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html#cfn-iotevents-detectormodel-iotsitewise-entryid
+ EntryId *types.Value `json:"EntryId,omitempty"`
+
+ // PropertyAlias AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html#cfn-iotevents-detectormodel-iotsitewise-propertyalias
+ PropertyAlias *types.Value `json:"PropertyAlias,omitempty"`
+
+ // PropertyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html#cfn-iotevents-detectormodel-iotsitewise-propertyid
+ PropertyId *types.Value `json:"PropertyId,omitempty"`
+
+ // PropertyValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html#cfn-iotevents-detectormodel-iotsitewise-propertyvalue
+ PropertyValue *DetectorModel_AssetPropertyValue `json:"PropertyValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_IotSiteWise) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.IotSiteWise"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iottopicpublish.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iottopicpublish.go
new file mode 100644
index 0000000000..c818d1d202
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_iottopicpublish.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_IotTopicPublish AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.IotTopicPublish)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iottopicpublish.html
+type DetectorModel_IotTopicPublish struct {
+
+ // MqttTopic AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iottopicpublish.html#cfn-iotevents-detectormodel-iottopicpublish-mqtttopic
+ MqttTopic *types.Value `json:"MqttTopic,omitempty"`
+
+ // Payload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iottopicpublish.html#cfn-iotevents-detectormodel-iottopicpublish-payload
+ Payload *DetectorModel_Payload `json:"Payload,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_IotTopicPublish) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.IotTopicPublish"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_lambda.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_lambda.go
new file mode 100644
index 0000000000..55771b7d90
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_lambda.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_Lambda AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.Lambda)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-lambda.html
+type DetectorModel_Lambda struct {
+
+ // FunctionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-lambda.html#cfn-iotevents-detectormodel-lambda-functionarn
+ FunctionArn *types.Value `json:"FunctionArn,omitempty"`
+
+ // Payload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-lambda.html#cfn-iotevents-detectormodel-lambda-payload
+ Payload *DetectorModel_Payload `json:"Payload,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_Lambda) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.Lambda"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_onenter.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_onenter.go
new file mode 100644
index 0000000000..bef819ddc8
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_onenter.go
@@ -0,0 +1,35 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_OnEnter AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.OnEnter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onenter.html
+type DetectorModel_OnEnter struct {
+
+ // Events AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onenter.html#cfn-iotevents-detectormodel-onenter-events
+ Events []DetectorModel_Event `json:"Events,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_OnEnter) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.OnEnter"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_onexit.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_onexit.go
new file mode 100644
index 0000000000..2c30f03e37
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_onexit.go
@@ -0,0 +1,35 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_OnExit AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.OnExit)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onexit.html
+type DetectorModel_OnExit struct {
+
+ // Events AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onexit.html#cfn-iotevents-detectormodel-onexit-events
+ Events []DetectorModel_Event `json:"Events,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_OnExit) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.OnExit"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_oninput.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_oninput.go
new file mode 100644
index 0000000000..c412d5d5bc
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_oninput.go
@@ -0,0 +1,40 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_OnInput AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.OnInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-oninput.html
+type DetectorModel_OnInput struct {
+
+ // Events AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-oninput.html#cfn-iotevents-detectormodel-oninput-events
+ Events []DetectorModel_Event `json:"Events,omitempty"`
+
+ // TransitionEvents AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-oninput.html#cfn-iotevents-detectormodel-oninput-transitionevents
+ TransitionEvents []DetectorModel_TransitionEvent `json:"TransitionEvents,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_OnInput) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.OnInput"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_payload.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_payload.go
new file mode 100644
index 0000000000..8cd90e1fb5
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_payload.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_Payload AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.Payload)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html
+type DetectorModel_Payload struct {
+
+ // ContentExpression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html#cfn-iotevents-detectormodel-payload-contentexpression
+ ContentExpression *types.Value `json:"ContentExpression,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html#cfn-iotevents-detectormodel-payload-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_Payload) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.Payload"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_resettimer.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_resettimer.go
new file mode 100644
index 0000000000..cd3514a81f
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_resettimer.go
@@ -0,0 +1,37 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_ResetTimer AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.ResetTimer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-resettimer.html
+type DetectorModel_ResetTimer struct {
+
+ // TimerName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-resettimer.html#cfn-iotevents-detectormodel-resettimer-timername
+ TimerName *types.Value `json:"TimerName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_ResetTimer) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.ResetTimer"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_settimer.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_settimer.go
new file mode 100644
index 0000000000..0c1f6c16ee
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_settimer.go
@@ -0,0 +1,47 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_SetTimer AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.SetTimer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html
+type DetectorModel_SetTimer struct {
+
+ // DurationExpression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html#cfn-iotevents-detectormodel-settimer-durationexpression
+ DurationExpression *types.Value `json:"DurationExpression,omitempty"`
+
+ // Seconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html#cfn-iotevents-detectormodel-settimer-seconds
+ Seconds *types.Value `json:"Seconds,omitempty"`
+
+ // TimerName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html#cfn-iotevents-detectormodel-settimer-timername
+ TimerName *types.Value `json:"TimerName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_SetTimer) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.SetTimer"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_setvariable.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_setvariable.go
new file mode 100644
index 0000000000..625528ef13
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_setvariable.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_SetVariable AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.SetVariable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-setvariable.html
+type DetectorModel_SetVariable struct {
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-setvariable.html#cfn-iotevents-detectormodel-setvariable-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // VariableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-setvariable.html#cfn-iotevents-detectormodel-setvariable-variablename
+ VariableName *types.Value `json:"VariableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_SetVariable) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.SetVariable"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_sns.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_sns.go
new file mode 100644
index 0000000000..b640a8ee43
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_sns.go
@@ -0,0 +1,42 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_Sns AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.Sns)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sns.html
+type DetectorModel_Sns struct {
+
+ // Payload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sns.html#cfn-iotevents-detectormodel-sns-payload
+ Payload *DetectorModel_Payload `json:"Payload,omitempty"`
+
+ // TargetArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sns.html#cfn-iotevents-detectormodel-sns-targetarn
+ TargetArn *types.Value `json:"TargetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_Sns) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.Sns"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_sqs.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_sqs.go
new file mode 100644
index 0000000000..ef6d92035b
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_sqs.go
@@ -0,0 +1,47 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_Sqs AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.Sqs)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sqs.html
+type DetectorModel_Sqs struct {
+
+ // Payload AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sqs.html#cfn-iotevents-detectormodel-sqs-payload
+ Payload *DetectorModel_Payload `json:"Payload,omitempty"`
+
+ // QueueUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sqs.html#cfn-iotevents-detectormodel-sqs-queueurl
+ QueueUrl *types.Value `json:"QueueUrl,omitempty"`
+
+ // UseBase64 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sqs.html#cfn-iotevents-detectormodel-sqs-usebase64
+ UseBase64 *types.Value `json:"UseBase64,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_Sqs) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.Sqs"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_state.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_state.go
new file mode 100644
index 0000000000..b505121dfd
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_state.go
@@ -0,0 +1,52 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_State AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.State)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html
+type DetectorModel_State struct {
+
+ // OnEnter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html#cfn-iotevents-detectormodel-state-onenter
+ OnEnter *DetectorModel_OnEnter `json:"OnEnter,omitempty"`
+
+ // OnExit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html#cfn-iotevents-detectormodel-state-onexit
+ OnExit *DetectorModel_OnExit `json:"OnExit,omitempty"`
+
+ // OnInput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html#cfn-iotevents-detectormodel-state-oninput
+ OnInput *DetectorModel_OnInput `json:"OnInput,omitempty"`
+
+ // StateName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html#cfn-iotevents-detectormodel-state-statename
+ StateName *types.Value `json:"StateName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_State) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.State"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_transitionevent.go b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_transitionevent.go
new file mode 100644
index 0000000000..78728003bc
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-detectormodel_transitionevent.go
@@ -0,0 +1,52 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DetectorModel_TransitionEvent AWS CloudFormation Resource (AWS::IoTEvents::DetectorModel.TransitionEvent)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html
+type DetectorModel_TransitionEvent struct {
+
+ // Actions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html#cfn-iotevents-detectormodel-transitionevent-actions
+ Actions []DetectorModel_Action `json:"Actions,omitempty"`
+
+ // Condition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html#cfn-iotevents-detectormodel-transitionevent-condition
+ Condition *types.Value `json:"Condition,omitempty"`
+
+ // EventName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html#cfn-iotevents-detectormodel-transitionevent-eventname
+ EventName *types.Value `json:"EventName,omitempty"`
+
+ // NextState AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html#cfn-iotevents-detectormodel-transitionevent-nextstate
+ NextState *types.Value `json:"NextState,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DetectorModel_TransitionEvent) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::DetectorModel.TransitionEvent"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-input.go b/goformation/cloudformation/iotevents/aws-iotevents-input.go
new file mode 100644
index 0000000000..0736000962
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-input.go
@@ -0,0 +1,124 @@
+package iotevents
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Input AWS CloudFormation Resource (AWS::IoTEvents::Input)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html
+type Input struct {
+
+ // InputDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html#cfn-iotevents-input-inputdefinition
+ InputDefinition *Input_InputDefinition `json:"InputDefinition,omitempty"`
+
+ // InputDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html#cfn-iotevents-input-inputdescription
+ InputDescription *types.Value `json:"InputDescription,omitempty"`
+
+ // InputName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html#cfn-iotevents-input-inputname
+ InputName *types.Value `json:"InputName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html#cfn-iotevents-input-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Input) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::Input"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Input) MarshalJSON() ([]byte, error) {
+ type Properties Input
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Input) UnmarshalJSON(b []byte) error {
+ type Properties Input
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Input(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-input_attribute.go b/goformation/cloudformation/iotevents/aws-iotevents-input_attribute.go
new file mode 100644
index 0000000000..9e42fefb7e
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-input_attribute.go
@@ -0,0 +1,37 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Input_Attribute AWS CloudFormation Resource (AWS::IoTEvents::Input.Attribute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-attribute.html
+type Input_Attribute struct {
+
+ // JsonPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-attribute.html#cfn-iotevents-input-attribute-jsonpath
+ JsonPath *types.Value `json:"JsonPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Input_Attribute) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::Input.Attribute"
+}
diff --git a/goformation/cloudformation/iotevents/aws-iotevents-input_inputdefinition.go b/goformation/cloudformation/iotevents/aws-iotevents-input_inputdefinition.go
new file mode 100644
index 0000000000..fa678fc3dc
--- /dev/null
+++ b/goformation/cloudformation/iotevents/aws-iotevents-input_inputdefinition.go
@@ -0,0 +1,35 @@
+package iotevents
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Input_InputDefinition AWS CloudFormation Resource (AWS::IoTEvents::Input.InputDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-inputdefinition.html
+type Input_InputDefinition struct {
+
+ // Attributes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-inputdefinition.html#cfn-iotevents-input-inputdefinition-attributes
+ Attributes []Input_Attribute `json:"Attributes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Input_InputDefinition) AWSCloudFormationType() string {
+ return "AWS::IoTEvents::Input.InputDefinition"
+}
diff --git a/goformation/cloudformation/iotfleethub/aws-iotfleethub-application.go b/goformation/cloudformation/iotfleethub/aws-iotfleethub-application.go
new file mode 100644
index 0000000000..c9961a87f4
--- /dev/null
+++ b/goformation/cloudformation/iotfleethub/aws-iotfleethub-application.go
@@ -0,0 +1,124 @@
+package iotfleethub
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application AWS CloudFormation Resource (AWS::IoTFleetHub::Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleethub-application.html
+type Application struct {
+
+ // ApplicationDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleethub-application.html#cfn-iotfleethub-application-applicationdescription
+ ApplicationDescription *types.Value `json:"ApplicationDescription,omitempty"`
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleethub-application.html#cfn-iotfleethub-application-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleethub-application.html#cfn-iotfleethub-application-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotfleethub-application.html#cfn-iotfleethub-application-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application) AWSCloudFormationType() string {
+ return "AWS::IoTFleetHub::Application"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Application) MarshalJSON() ([]byte, error) {
+ type Properties Application
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Application) UnmarshalJSON(b []byte) error {
+ type Properties Application
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Application(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy.go
new file mode 100644
index 0000000000..3db71588d4
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy.go
@@ -0,0 +1,118 @@
+package iotsitewise
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPolicy AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html
+type AccessPolicy struct {
+
+ // AccessPolicyIdentity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html#cfn-iotsitewise-accesspolicy-accesspolicyidentity
+ AccessPolicyIdentity *AccessPolicy_AccessPolicyIdentity `json:"AccessPolicyIdentity,omitempty"`
+
+ // AccessPolicyPermission AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html#cfn-iotsitewise-accesspolicy-accesspolicypermission
+ AccessPolicyPermission *types.Value `json:"AccessPolicyPermission,omitempty"`
+
+ // AccessPolicyResource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html#cfn-iotsitewise-accesspolicy-accesspolicyresource
+ AccessPolicyResource *AccessPolicy_AccessPolicyResource `json:"AccessPolicyResource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPolicy) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AccessPolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AccessPolicy) MarshalJSON() ([]byte, error) {
+ type Properties AccessPolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AccessPolicy) UnmarshalJSON(b []byte) error {
+ type Properties AccessPolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AccessPolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyidentity.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyidentity.go
new file mode 100644
index 0000000000..6428c3442e
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyidentity.go
@@ -0,0 +1,45 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPolicy_AccessPolicyIdentity AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html
+type AccessPolicy_AccessPolicyIdentity struct {
+
+ // IamRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html#cfn-iotsitewise-accesspolicy-accesspolicyidentity-iamrole
+ IamRole *AccessPolicy_IamRole `json:"IamRole,omitempty"`
+
+ // IamUser AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html#cfn-iotsitewise-accesspolicy-accesspolicyidentity-iamuser
+ IamUser *AccessPolicy_IamUser `json:"IamUser,omitempty"`
+
+ // User AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html#cfn-iotsitewise-accesspolicy-accesspolicyidentity-user
+ User *AccessPolicy_User `json:"User,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPolicy_AccessPolicyIdentity) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyresource.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyresource.go
new file mode 100644
index 0000000000..2572ed2d2e
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_accesspolicyresource.go
@@ -0,0 +1,40 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPolicy_AccessPolicyResource AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyresource.html
+type AccessPolicy_AccessPolicyResource struct {
+
+ // Portal AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyresource.html#cfn-iotsitewise-accesspolicy-accesspolicyresource-portal
+ Portal *AccessPolicy_Portal `json:"Portal,omitempty"`
+
+ // Project AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyresource.html#cfn-iotsitewise-accesspolicy-accesspolicyresource-project
+ Project *AccessPolicy_Project `json:"Project,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPolicy_AccessPolicyResource) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamrole.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamrole.go
new file mode 100644
index 0000000000..502f78277f
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamrole.go
@@ -0,0 +1,37 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPolicy_IamRole AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.IamRole)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamrole.html
+type AccessPolicy_IamRole struct {
+
+ // arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamrole.html#cfn-iotsitewise-accesspolicy-iamrole-arn
+ arn *types.Value `json:"arn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPolicy_IamRole) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AccessPolicy.IamRole"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamuser.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamuser.go
new file mode 100644
index 0000000000..478fcc97b5
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_iamuser.go
@@ -0,0 +1,37 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPolicy_IamUser AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.IamUser)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamuser.html
+type AccessPolicy_IamUser struct {
+
+ // arn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamuser.html#cfn-iotsitewise-accesspolicy-iamuser-arn
+ arn *types.Value `json:"arn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPolicy_IamUser) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AccessPolicy.IamUser"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_portal.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_portal.go
new file mode 100644
index 0000000000..22879ffac4
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_portal.go
@@ -0,0 +1,37 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPolicy_Portal AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.Portal)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-portal.html
+type AccessPolicy_Portal struct {
+
+ // id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-portal.html#cfn-iotsitewise-accesspolicy-portal-id
+ id *types.Value `json:"id,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPolicy_Portal) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AccessPolicy.Portal"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_project.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_project.go
new file mode 100644
index 0000000000..5c9c52c819
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_project.go
@@ -0,0 +1,37 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPolicy_Project AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.Project)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-project.html
+type AccessPolicy_Project struct {
+
+ // id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-project.html#cfn-iotsitewise-accesspolicy-project-id
+ id *types.Value `json:"id,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPolicy_Project) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AccessPolicy.Project"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_user.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_user.go
new file mode 100644
index 0000000000..5606c8d9a3
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-accesspolicy_user.go
@@ -0,0 +1,37 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AccessPolicy_User AWS CloudFormation Resource (AWS::IoTSiteWise::AccessPolicy.User)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-user.html
+type AccessPolicy_User struct {
+
+ // id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-user.html#cfn-iotsitewise-accesspolicy-user-id
+ id *types.Value `json:"id,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AccessPolicy_User) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AccessPolicy.User"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset.go
new file mode 100644
index 0000000000..bb5d712c38
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset.go
@@ -0,0 +1,129 @@
+package iotsitewise
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Asset AWS CloudFormation Resource (AWS::IoTSiteWise::Asset)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html
+type Asset struct {
+
+ // AssetHierarchies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assethierarchies
+ AssetHierarchies []Asset_AssetHierarchy `json:"AssetHierarchies,omitempty"`
+
+ // AssetModelId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetmodelid
+ AssetModelId *types.Value `json:"AssetModelId,omitempty"`
+
+ // AssetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetname
+ AssetName *types.Value `json:"AssetName,omitempty"`
+
+ // AssetProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-assetproperties
+ AssetProperties []Asset_AssetProperty `json:"AssetProperties,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html#cfn-iotsitewise-asset-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Asset) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Asset"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Asset) MarshalJSON() ([]byte, error) {
+ type Properties Asset
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Asset) UnmarshalJSON(b []byte) error {
+ type Properties Asset
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Asset(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset_assethierarchy.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset_assethierarchy.go
new file mode 100644
index 0000000000..5d52e053b8
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset_assethierarchy.go
@@ -0,0 +1,42 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Asset_AssetHierarchy AWS CloudFormation Resource (AWS::IoTSiteWise::Asset.AssetHierarchy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html
+type Asset_AssetHierarchy struct {
+
+ // ChildAssetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-childassetid
+ ChildAssetId *types.Value `json:"ChildAssetId,omitempty"`
+
+ // LogicalId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html#cfn-iotsitewise-asset-assethierarchy-logicalid
+ LogicalId *types.Value `json:"LogicalId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Asset_AssetHierarchy) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Asset.AssetHierarchy"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset_assetproperty.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset_assetproperty.go
new file mode 100644
index 0000000000..557195bf2d
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-asset_assetproperty.go
@@ -0,0 +1,47 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Asset_AssetProperty AWS CloudFormation Resource (AWS::IoTSiteWise::Asset.AssetProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html
+type Asset_AssetProperty struct {
+
+ // Alias AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-alias
+ Alias *types.Value `json:"Alias,omitempty"`
+
+ // LogicalId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-logicalid
+ LogicalId *types.Value `json:"LogicalId,omitempty"`
+
+ // NotificationState AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html#cfn-iotsitewise-asset-assetproperty-notificationstate
+ NotificationState *types.Value `json:"NotificationState,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Asset_AssetProperty) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Asset.AssetProperty"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go
new file mode 100644
index 0000000000..356a2d15fe
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel.go
@@ -0,0 +1,134 @@
+package iotsitewise
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html
+type AssetModel struct {
+
+ // AssetModelCompositeModels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodels
+ AssetModelCompositeModels []AssetModel_AssetModelCompositeModel `json:"AssetModelCompositeModels,omitempty"`
+
+ // AssetModelDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodeldescription
+ AssetModelDescription *types.Value `json:"AssetModelDescription,omitempty"`
+
+ // AssetModelHierarchies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelhierarchies
+ AssetModelHierarchies []AssetModel_AssetModelHierarchy `json:"AssetModelHierarchies,omitempty"`
+
+ // AssetModelName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelname
+ AssetModelName *types.Value `json:"AssetModelName,omitempty"`
+
+ // AssetModelProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-assetmodelproperties
+ AssetModelProperties []AssetModel_AssetModelProperty `json:"AssetModelProperties,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html#cfn-iotsitewise-assetmodel-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AssetModel) MarshalJSON() ([]byte, error) {
+ type Properties AssetModel
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AssetModel) UnmarshalJSON(b []byte) error {
+ type Properties AssetModel
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AssetModel(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelcompositemodel.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelcompositemodel.go
new file mode 100644
index 0000000000..dede803c91
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelcompositemodel.go
@@ -0,0 +1,52 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_AssetModelCompositeModel AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html
+type AssetModel_AssetModelCompositeModel struct {
+
+ // CompositeModelProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-compositemodelproperties
+ CompositeModelProperties []AssetModel_AssetModelProperty `json:"CompositeModelProperties,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html#cfn-iotsitewise-assetmodel-assetmodelcompositemodel-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_AssetModelCompositeModel) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelhierarchy.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelhierarchy.go
new file mode 100644
index 0000000000..807f5fd8ed
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelhierarchy.go
@@ -0,0 +1,47 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_AssetModelHierarchy AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.AssetModelHierarchy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html
+type AssetModel_AssetModelHierarchy struct {
+
+ // ChildAssetModelId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-childassetmodelid
+ ChildAssetModelId *types.Value `json:"ChildAssetModelId,omitempty"`
+
+ // LogicalId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-logicalid
+ LogicalId *types.Value `json:"LogicalId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html#cfn-iotsitewise-assetmodel-assetmodelhierarchy-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_AssetModelHierarchy) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go
new file mode 100644
index 0000000000..a79fee5dc6
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_assetmodelproperty.go
@@ -0,0 +1,62 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_AssetModelProperty AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.AssetModelProperty)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html
+type AssetModel_AssetModelProperty struct {
+
+ // DataType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-datatype
+ DataType *types.Value `json:"DataType,omitempty"`
+
+ // DataTypeSpec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-datatypespec
+ DataTypeSpec *types.Value `json:"DataTypeSpec,omitempty"`
+
+ // LogicalId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-logicalid
+ LogicalId *types.Value `json:"LogicalId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-type
+ Type *AssetModel_PropertyType `json:"Type,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html#cfn-iotsitewise-assetmodel-assetmodelproperty-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_AssetModelProperty) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.AssetModelProperty"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_attribute.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_attribute.go
new file mode 100644
index 0000000000..a03d88d105
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_attribute.go
@@ -0,0 +1,37 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_Attribute AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.Attribute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html
+type AssetModel_Attribute struct {
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html#cfn-iotsitewise-assetmodel-attribute-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_Attribute) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.Attribute"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_expressionvariable.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_expressionvariable.go
new file mode 100644
index 0000000000..65fd1ae1b2
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_expressionvariable.go
@@ -0,0 +1,42 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_ExpressionVariable AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.ExpressionVariable)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html
+type AssetModel_ExpressionVariable struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html#cfn-iotsitewise-assetmodel-expressionvariable-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html#cfn-iotsitewise-assetmodel-expressionvariable-value
+ Value *AssetModel_VariableValue `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_ExpressionVariable) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.ExpressionVariable"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metric.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metric.go
new file mode 100644
index 0000000000..accff1006d
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metric.go
@@ -0,0 +1,47 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_Metric AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.Metric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html
+type AssetModel_Metric struct {
+
+ // Expression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // Variables AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-variables
+ Variables []AssetModel_ExpressionVariable `json:"Variables,omitempty"`
+
+ // Window AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html#cfn-iotsitewise-assetmodel-metric-window
+ Window *AssetModel_MetricWindow `json:"Window,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_Metric) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.Metric"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metricwindow.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metricwindow.go
new file mode 100644
index 0000000000..3a9011eb70
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_metricwindow.go
@@ -0,0 +1,35 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_MetricWindow AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.MetricWindow)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html
+type AssetModel_MetricWindow struct {
+
+ // Tumbling AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html#cfn-iotsitewise-assetmodel-metricwindow-tumbling
+ Tumbling *AssetModel_TumblingWindow `json:"Tumbling,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_MetricWindow) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.MetricWindow"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_propertytype.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_propertytype.go
new file mode 100644
index 0000000000..690e474a16
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_propertytype.go
@@ -0,0 +1,52 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_PropertyType AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.PropertyType)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html
+type AssetModel_PropertyType struct {
+
+ // Attribute AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-attribute
+ Attribute *AssetModel_Attribute `json:"Attribute,omitempty"`
+
+ // Metric AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-metric
+ Metric *AssetModel_Metric `json:"Metric,omitempty"`
+
+ // Transform AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-transform
+ Transform *AssetModel_Transform `json:"Transform,omitempty"`
+
+ // TypeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html#cfn-iotsitewise-assetmodel-propertytype-typename
+ TypeName *types.Value `json:"TypeName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_PropertyType) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.PropertyType"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_transform.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_transform.go
new file mode 100644
index 0000000000..e16b52b041
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_transform.go
@@ -0,0 +1,42 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_Transform AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.Transform)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html
+type AssetModel_Transform struct {
+
+ // Expression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html#cfn-iotsitewise-assetmodel-transform-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // Variables AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html#cfn-iotsitewise-assetmodel-transform-variables
+ Variables []AssetModel_ExpressionVariable `json:"Variables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_Transform) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.Transform"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_tumblingwindow.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_tumblingwindow.go
new file mode 100644
index 0000000000..44cc11b8dd
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_tumblingwindow.go
@@ -0,0 +1,42 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_TumblingWindow AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.TumblingWindow)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html
+type AssetModel_TumblingWindow struct {
+
+ // Interval AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html#cfn-iotsitewise-assetmodel-tumblingwindow-interval
+ Interval *types.Value `json:"Interval,omitempty"`
+
+ // Offset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html#cfn-iotsitewise-assetmodel-tumblingwindow-offset
+ Offset *types.Value `json:"Offset,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_TumblingWindow) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.TumblingWindow"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_variablevalue.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_variablevalue.go
new file mode 100644
index 0000000000..7f54f996f8
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-assetmodel_variablevalue.go
@@ -0,0 +1,42 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AssetModel_VariableValue AWS CloudFormation Resource (AWS::IoTSiteWise::AssetModel.VariableValue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html
+type AssetModel_VariableValue struct {
+
+ // HierarchyLogicalId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-hierarchylogicalid
+ HierarchyLogicalId *types.Value `json:"HierarchyLogicalId,omitempty"`
+
+ // PropertyLogicalId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html#cfn-iotsitewise-assetmodel-variablevalue-propertylogicalid
+ PropertyLogicalId *types.Value `json:"PropertyLogicalId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AssetModel_VariableValue) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::AssetModel.VariableValue"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-dashboard.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-dashboard.go
new file mode 100644
index 0000000000..270f10edf1
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-dashboard.go
@@ -0,0 +1,129 @@
+package iotsitewise
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Dashboard AWS CloudFormation Resource (AWS::IoTSiteWise::Dashboard)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html
+type Dashboard struct {
+
+ // DashboardDefinition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html#cfn-iotsitewise-dashboard-dashboarddefinition
+ DashboardDefinition *types.Value `json:"DashboardDefinition,omitempty"`
+
+ // DashboardDescription AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html#cfn-iotsitewise-dashboard-dashboarddescription
+ DashboardDescription *types.Value `json:"DashboardDescription,omitempty"`
+
+ // DashboardName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html#cfn-iotsitewise-dashboard-dashboardname
+ DashboardName *types.Value `json:"DashboardName,omitempty"`
+
+ // ProjectId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html#cfn-iotsitewise-dashboard-projectid
+ ProjectId *types.Value `json:"ProjectId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html#cfn-iotsitewise-dashboard-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Dashboard) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Dashboard"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Dashboard) MarshalJSON() ([]byte, error) {
+ type Properties Dashboard
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Dashboard) UnmarshalJSON(b []byte) error {
+ type Properties Dashboard
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Dashboard(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway.go
new file mode 100644
index 0000000000..5a6735fa1f
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway.go
@@ -0,0 +1,124 @@
+package iotsitewise
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Gateway AWS CloudFormation Resource (AWS::IoTSiteWise::Gateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html
+type Gateway struct {
+
+ // GatewayCapabilitySummaries AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewaycapabilitysummaries
+ GatewayCapabilitySummaries []Gateway_GatewayCapabilitySummary `json:"GatewayCapabilitySummaries,omitempty"`
+
+ // GatewayName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewayname
+ GatewayName *types.Value `json:"GatewayName,omitempty"`
+
+ // GatewayPlatform AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-gatewayplatform
+ GatewayPlatform *Gateway_GatewayPlatform `json:"GatewayPlatform,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html#cfn-iotsitewise-gateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Gateway) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Gateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Gateway) MarshalJSON() ([]byte, error) {
+ type Properties Gateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Gateway) UnmarshalJSON(b []byte) error {
+ type Properties Gateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Gateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewaycapabilitysummary.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewaycapabilitysummary.go
new file mode 100644
index 0000000000..fcbbed1038
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewaycapabilitysummary.go
@@ -0,0 +1,42 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Gateway_GatewayCapabilitySummary AWS CloudFormation Resource (AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html
+type Gateway_GatewayCapabilitySummary struct {
+
+ // CapabilityConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html#cfn-iotsitewise-gateway-gatewaycapabilitysummary-capabilityconfiguration
+ CapabilityConfiguration *types.Value `json:"CapabilityConfiguration,omitempty"`
+
+ // CapabilityNamespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html#cfn-iotsitewise-gateway-gatewaycapabilitysummary-capabilitynamespace
+ CapabilityNamespace *types.Value `json:"CapabilityNamespace,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Gateway_GatewayCapabilitySummary) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewayplatform.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewayplatform.go
new file mode 100644
index 0000000000..8761fbcdcd
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_gatewayplatform.go
@@ -0,0 +1,35 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Gateway_GatewayPlatform AWS CloudFormation Resource (AWS::IoTSiteWise::Gateway.GatewayPlatform)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html
+type Gateway_GatewayPlatform struct {
+
+ // Greengrass AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html#cfn-iotsitewise-gateway-gatewayplatform-greengrass
+ Greengrass *Gateway_Greengrass `json:"Greengrass,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Gateway_GatewayPlatform) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Gateway.GatewayPlatform"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_greengrass.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_greengrass.go
new file mode 100644
index 0000000000..dbebf7af23
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-gateway_greengrass.go
@@ -0,0 +1,37 @@
+package iotsitewise
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Gateway_Greengrass AWS CloudFormation Resource (AWS::IoTSiteWise::Gateway.Greengrass)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html
+type Gateway_Greengrass struct {
+
+ // GroupArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html#cfn-iotsitewise-gateway-greengrass-grouparn
+ GroupArn *types.Value `json:"GroupArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Gateway_Greengrass) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Gateway.Greengrass"
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-portal.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-portal.go
new file mode 100644
index 0000000000..ce25d6ae37
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-portal.go
@@ -0,0 +1,144 @@
+package iotsitewise
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Portal AWS CloudFormation Resource (AWS::IoTSiteWise::Portal)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html
+type Portal struct {
+
+ // Alarms AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-alarms
+ Alarms interface{} `json:"Alarms,omitempty"`
+
+ // NotificationSenderEmail AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-notificationsenderemail
+ NotificationSenderEmail *types.Value `json:"NotificationSenderEmail,omitempty"`
+
+ // PortalAuthMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-portalauthmode
+ PortalAuthMode *types.Value `json:"PortalAuthMode,omitempty"`
+
+ // PortalContactEmail AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-portalcontactemail
+ PortalContactEmail *types.Value `json:"PortalContactEmail,omitempty"`
+
+ // PortalDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-portaldescription
+ PortalDescription *types.Value `json:"PortalDescription,omitempty"`
+
+ // PortalName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-portalname
+ PortalName *types.Value `json:"PortalName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html#cfn-iotsitewise-portal-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Portal) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Portal"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Portal) MarshalJSON() ([]byte, error) {
+ type Properties Portal
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Portal) UnmarshalJSON(b []byte) error {
+ type Properties Portal
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Portal(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotsitewise/aws-iotsitewise-project.go b/goformation/cloudformation/iotsitewise/aws-iotsitewise-project.go
new file mode 100644
index 0000000000..e7acfb0230
--- /dev/null
+++ b/goformation/cloudformation/iotsitewise/aws-iotsitewise-project.go
@@ -0,0 +1,129 @@
+package iotsitewise
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project AWS CloudFormation Resource (AWS::IoTSiteWise::Project)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html
+type Project struct {
+
+ // AssetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html#cfn-iotsitewise-project-assetids
+ AssetIds *types.Value `json:"AssetIds,omitempty"`
+
+ // PortalId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html#cfn-iotsitewise-project-portalid
+ PortalId *types.Value `json:"PortalId,omitempty"`
+
+ // ProjectDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html#cfn-iotsitewise-project-projectdescription
+ ProjectDescription *types.Value `json:"ProjectDescription,omitempty"`
+
+ // ProjectName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html#cfn-iotsitewise-project-projectname
+ ProjectName *types.Value `json:"ProjectName,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-project.html#cfn-iotsitewise-project-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project) AWSCloudFormationType() string {
+ return "AWS::IoTSiteWise::Project"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Project) MarshalJSON() ([]byte, error) {
+ type Properties Project
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Project) UnmarshalJSON(b []byte) error {
+ type Properties Project
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Project(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotthingsgraph/aws-iotthingsgraph-flowtemplate.go b/goformation/cloudformation/iotthingsgraph/aws-iotthingsgraph-flowtemplate.go
new file mode 100644
index 0000000000..c19eb3c120
--- /dev/null
+++ b/goformation/cloudformation/iotthingsgraph/aws-iotthingsgraph-flowtemplate.go
@@ -0,0 +1,113 @@
+package iotthingsgraph
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowTemplate AWS CloudFormation Resource (AWS::IoTThingsGraph::FlowTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotthingsgraph-flowtemplate.html
+type FlowTemplate struct {
+
+ // CompatibleNamespaceVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotthingsgraph-flowtemplate.html#cfn-iotthingsgraph-flowtemplate-compatiblenamespaceversion
+ CompatibleNamespaceVersion *types.Value `json:"CompatibleNamespaceVersion,omitempty"`
+
+ // Definition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotthingsgraph-flowtemplate.html#cfn-iotthingsgraph-flowtemplate-definition
+ Definition *FlowTemplate_DefinitionDocument `json:"Definition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowTemplate) AWSCloudFormationType() string {
+ return "AWS::IoTThingsGraph::FlowTemplate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FlowTemplate) MarshalJSON() ([]byte, error) {
+ type Properties FlowTemplate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FlowTemplate) UnmarshalJSON(b []byte) error {
+ type Properties FlowTemplate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FlowTemplate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotthingsgraph/aws-iotthingsgraph-flowtemplate_definitiondocument.go b/goformation/cloudformation/iotthingsgraph/aws-iotthingsgraph-flowtemplate_definitiondocument.go
new file mode 100644
index 0000000000..d3fd675286
--- /dev/null
+++ b/goformation/cloudformation/iotthingsgraph/aws-iotthingsgraph-flowtemplate_definitiondocument.go
@@ -0,0 +1,42 @@
+package iotthingsgraph
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowTemplate_DefinitionDocument AWS CloudFormation Resource (AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotthingsgraph-flowtemplate-definitiondocument.html
+type FlowTemplate_DefinitionDocument struct {
+
+ // Language AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotthingsgraph-flowtemplate-definitiondocument.html#cfn-iotthingsgraph-flowtemplate-definitiondocument-language
+ Language *types.Value `json:"Language,omitempty"`
+
+ // Text AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotthingsgraph-flowtemplate-definitiondocument.html#cfn-iotthingsgraph-flowtemplate-definitiondocument-text
+ Text *types.Value `json:"Text,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowTemplate_DefinitionDocument) AWSCloudFormationType() string {
+ return "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-destination.go b/goformation/cloudformation/iotwireless/aws-iotwireless-destination.go
new file mode 100644
index 0000000000..9155ea1416
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-destination.go
@@ -0,0 +1,134 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Destination AWS CloudFormation Resource (AWS::IoTWireless::Destination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html
+type Destination struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html#cfn-iotwireless-destination-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Expression AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html#cfn-iotwireless-destination-expression
+ Expression *types.Value `json:"Expression,omitempty"`
+
+ // ExpressionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html#cfn-iotwireless-destination-expressiontype
+ ExpressionType *types.Value `json:"ExpressionType,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html#cfn-iotwireless-destination-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html#cfn-iotwireless-destination-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html#cfn-iotwireless-destination-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Destination) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::Destination"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Destination) MarshalJSON() ([]byte, error) {
+ type Properties Destination
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Destination) UnmarshalJSON(b []byte) error {
+ type Properties Destination
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Destination(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-deviceprofile.go b/goformation/cloudformation/iotwireless/aws-iotwireless-deviceprofile.go
new file mode 100644
index 0000000000..f93cdb1e8b
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-deviceprofile.go
@@ -0,0 +1,119 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeviceProfile AWS CloudFormation Resource (AWS::IoTWireless::DeviceProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html
+type DeviceProfile struct {
+
+ // LoRaWAN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html#cfn-iotwireless-deviceprofile-lorawan
+ LoRaWAN *DeviceProfile_LoRaWANDeviceProfile `json:"LoRaWAN,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html#cfn-iotwireless-deviceprofile-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html#cfn-iotwireless-deviceprofile-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeviceProfile) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::DeviceProfile"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DeviceProfile) MarshalJSON() ([]byte, error) {
+ type Properties DeviceProfile
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DeviceProfile) UnmarshalJSON(b []byte) error {
+ type Properties DeviceProfile
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DeviceProfile(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-deviceprofile_lorawandeviceprofile.go b/goformation/cloudformation/iotwireless/aws-iotwireless-deviceprofile_lorawandeviceprofile.go
new file mode 100644
index 0000000000..1b84c87c83
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-deviceprofile_lorawandeviceprofile.go
@@ -0,0 +1,102 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeviceProfile_LoRaWANDeviceProfile AWS CloudFormation Resource (AWS::IoTWireless::DeviceProfile.LoRaWANDeviceProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html
+type DeviceProfile_LoRaWANDeviceProfile struct {
+
+ // ClassBTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-classbtimeout
+ ClassBTimeout *types.Value `json:"ClassBTimeout,omitempty"`
+
+ // ClassCTimeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-classctimeout
+ ClassCTimeout *types.Value `json:"ClassCTimeout,omitempty"`
+
+ // MacVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-macversion
+ MacVersion *types.Value `json:"MacVersion,omitempty"`
+
+ // MaxDutyCycle AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-maxdutycycle
+ MaxDutyCycle *types.Value `json:"MaxDutyCycle,omitempty"`
+
+ // MaxEirp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-maxeirp
+ MaxEirp *types.Value `json:"MaxEirp,omitempty"`
+
+ // PingSlotDr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-pingslotdr
+ PingSlotDr *types.Value `json:"PingSlotDr,omitempty"`
+
+ // PingSlotFreq AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-pingslotfreq
+ PingSlotFreq *types.Value `json:"PingSlotFreq,omitempty"`
+
+ // PingSlotPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-pingslotperiod
+ PingSlotPeriod *types.Value `json:"PingSlotPeriod,omitempty"`
+
+ // RegParamsRevision AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-regparamsrevision
+ RegParamsRevision *types.Value `json:"RegParamsRevision,omitempty"`
+
+ // RfRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-rfregion
+ RfRegion *types.Value `json:"RfRegion,omitempty"`
+
+ // Supports32BitFCnt AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-supports32bitfcnt
+ Supports32BitFCnt *types.Value `json:"Supports32BitFCnt,omitempty"`
+
+ // SupportsClassB AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-supportsclassb
+ SupportsClassB *types.Value `json:"SupportsClassB,omitempty"`
+
+ // SupportsClassC AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-supportsclassc
+ SupportsClassC *types.Value `json:"SupportsClassC,omitempty"`
+
+ // SupportsJoin AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html#cfn-iotwireless-deviceprofile-lorawandeviceprofile-supportsjoin
+ SupportsJoin *types.Value `json:"SupportsJoin,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeviceProfile_LoRaWANDeviceProfile) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::DeviceProfile.LoRaWANDeviceProfile"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-fuotatask.go b/goformation/cloudformation/iotwireless/aws-iotwireless-fuotatask.go
new file mode 100644
index 0000000000..ff119985bc
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-fuotatask.go
@@ -0,0 +1,154 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// FuotaTask AWS CloudFormation Resource (AWS::IoTWireless::FuotaTask)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html
+type FuotaTask struct {
+
+ // AssociateMulticastGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-associatemulticastgroup
+ AssociateMulticastGroup *types.Value `json:"AssociateMulticastGroup,omitempty"`
+
+ // AssociateWirelessDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-associatewirelessdevice
+ AssociateWirelessDevice *types.Value `json:"AssociateWirelessDevice,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisassociateMulticastGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-disassociatemulticastgroup
+ DisassociateMulticastGroup *types.Value `json:"DisassociateMulticastGroup,omitempty"`
+
+ // DisassociateWirelessDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-disassociatewirelessdevice
+ DisassociateWirelessDevice *types.Value `json:"DisassociateWirelessDevice,omitempty"`
+
+ // FirmwareUpdateImage AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-firmwareupdateimage
+ FirmwareUpdateImage *types.Value `json:"FirmwareUpdateImage,omitempty"`
+
+ // FirmwareUpdateRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-firmwareupdaterole
+ FirmwareUpdateRole *types.Value `json:"FirmwareUpdateRole,omitempty"`
+
+ // LoRaWAN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-lorawan
+ LoRaWAN *FuotaTask_LoRaWAN `json:"LoRaWAN,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html#cfn-iotwireless-fuotatask-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FuotaTask) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::FuotaTask"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FuotaTask) MarshalJSON() ([]byte, error) {
+ type Properties FuotaTask
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FuotaTask) UnmarshalJSON(b []byte) error {
+ type Properties FuotaTask
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FuotaTask(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-fuotatask_lorawan.go b/goformation/cloudformation/iotwireless/aws-iotwireless-fuotatask_lorawan.go
new file mode 100644
index 0000000000..b3a4ce808b
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-fuotatask_lorawan.go
@@ -0,0 +1,42 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FuotaTask_LoRaWAN AWS CloudFormation Resource (AWS::IoTWireless::FuotaTask.LoRaWAN)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html
+type FuotaTask_LoRaWAN struct {
+
+ // RfRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html#cfn-iotwireless-fuotatask-lorawan-rfregion
+ RfRegion *types.Value `json:"RfRegion,omitempty"`
+
+ // StartTime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html#cfn-iotwireless-fuotatask-lorawan-starttime
+ StartTime *types.Value `json:"StartTime,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FuotaTask_LoRaWAN) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::FuotaTask.LoRaWAN"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-multicastgroup.go b/goformation/cloudformation/iotwireless/aws-iotwireless-multicastgroup.go
new file mode 100644
index 0000000000..967b5fe3b8
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-multicastgroup.go
@@ -0,0 +1,134 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// MulticastGroup AWS CloudFormation Resource (AWS::IoTWireless::MulticastGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html
+type MulticastGroup struct {
+
+ // AssociateWirelessDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-associatewirelessdevice
+ AssociateWirelessDevice *types.Value `json:"AssociateWirelessDevice,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DisassociateWirelessDevice AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-disassociatewirelessdevice
+ DisassociateWirelessDevice *types.Value `json:"DisassociateWirelessDevice,omitempty"`
+
+ // LoRaWAN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-lorawan
+ LoRaWAN *MulticastGroup_LoRaWAN `json:"LoRaWAN,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html#cfn-iotwireless-multicastgroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MulticastGroup) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::MulticastGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MulticastGroup) MarshalJSON() ([]byte, error) {
+ type Properties MulticastGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MulticastGroup) UnmarshalJSON(b []byte) error {
+ type Properties MulticastGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MulticastGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-multicastgroup_lorawan.go b/goformation/cloudformation/iotwireless/aws-iotwireless-multicastgroup_lorawan.go
new file mode 100644
index 0000000000..1501a0397a
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-multicastgroup_lorawan.go
@@ -0,0 +1,52 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MulticastGroup_LoRaWAN AWS CloudFormation Resource (AWS::IoTWireless::MulticastGroup.LoRaWAN)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html
+type MulticastGroup_LoRaWAN struct {
+
+ // DlClass AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html#cfn-iotwireless-multicastgroup-lorawan-dlclass
+ DlClass *types.Value `json:"DlClass,omitempty"`
+
+ // NumberOfDevicesInGroup AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html#cfn-iotwireless-multicastgroup-lorawan-numberofdevicesingroup
+ NumberOfDevicesInGroup *types.Value `json:"NumberOfDevicesInGroup,omitempty"`
+
+ // NumberOfDevicesRequested AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html#cfn-iotwireless-multicastgroup-lorawan-numberofdevicesrequested
+ NumberOfDevicesRequested *types.Value `json:"NumberOfDevicesRequested,omitempty"`
+
+ // RfRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html#cfn-iotwireless-multicastgroup-lorawan-rfregion
+ RfRegion *types.Value `json:"RfRegion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MulticastGroup_LoRaWAN) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::MulticastGroup.LoRaWAN"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount.go b/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount.go
new file mode 100644
index 0000000000..17737b7904
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount.go
@@ -0,0 +1,139 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// PartnerAccount AWS CloudFormation Resource (AWS::IoTWireless::PartnerAccount)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html
+type PartnerAccount struct {
+
+ // AccountLinked AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html#cfn-iotwireless-partneraccount-accountlinked
+ AccountLinked *types.Value `json:"AccountLinked,omitempty"`
+
+ // Fingerprint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html#cfn-iotwireless-partneraccount-fingerprint
+ Fingerprint *types.Value `json:"Fingerprint,omitempty"`
+
+ // PartnerAccountId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html#cfn-iotwireless-partneraccount-partneraccountid
+ PartnerAccountId *types.Value `json:"PartnerAccountId,omitempty"`
+
+ // PartnerType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html#cfn-iotwireless-partneraccount-partnertype
+ PartnerType *types.Value `json:"PartnerType,omitempty"`
+
+ // Sidewalk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html#cfn-iotwireless-partneraccount-sidewalk
+ Sidewalk *PartnerAccount_SidewalkAccountInfo `json:"Sidewalk,omitempty"`
+
+ // SidewalkUpdate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html#cfn-iotwireless-partneraccount-sidewalkupdate
+ SidewalkUpdate *PartnerAccount_SidewalkUpdateAccount `json:"SidewalkUpdate,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html#cfn-iotwireless-partneraccount-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PartnerAccount) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::PartnerAccount"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PartnerAccount) MarshalJSON() ([]byte, error) {
+ type Properties PartnerAccount
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PartnerAccount) UnmarshalJSON(b []byte) error {
+ type Properties PartnerAccount
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PartnerAccount(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount_sidewalkaccountinfo.go b/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount_sidewalkaccountinfo.go
new file mode 100644
index 0000000000..129e9e2a31
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount_sidewalkaccountinfo.go
@@ -0,0 +1,37 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PartnerAccount_SidewalkAccountInfo AWS CloudFormation Resource (AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkaccountinfo.html
+type PartnerAccount_SidewalkAccountInfo struct {
+
+ // AppServerPrivateKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkaccountinfo.html#cfn-iotwireless-partneraccount-sidewalkaccountinfo-appserverprivatekey
+ AppServerPrivateKey *types.Value `json:"AppServerPrivateKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PartnerAccount_SidewalkAccountInfo) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount_sidewalkupdateaccount.go b/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount_sidewalkupdateaccount.go
new file mode 100644
index 0000000000..75e094b632
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-partneraccount_sidewalkupdateaccount.go
@@ -0,0 +1,37 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PartnerAccount_SidewalkUpdateAccount AWS CloudFormation Resource (AWS::IoTWireless::PartnerAccount.SidewalkUpdateAccount)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkupdateaccount.html
+type PartnerAccount_SidewalkUpdateAccount struct {
+
+ // AppServerPrivateKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkupdateaccount.html#cfn-iotwireless-partneraccount-sidewalkupdateaccount-appserverprivatekey
+ AppServerPrivateKey *types.Value `json:"AppServerPrivateKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PartnerAccount_SidewalkUpdateAccount) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::PartnerAccount.SidewalkUpdateAccount"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-serviceprofile.go b/goformation/cloudformation/iotwireless/aws-iotwireless-serviceprofile.go
new file mode 100644
index 0000000000..a439d777db
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-serviceprofile.go
@@ -0,0 +1,119 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ServiceProfile AWS CloudFormation Resource (AWS::IoTWireless::ServiceProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html
+type ServiceProfile struct {
+
+ // LoRaWAN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html#cfn-iotwireless-serviceprofile-lorawan
+ LoRaWAN *ServiceProfile_LoRaWANServiceProfile `json:"LoRaWAN,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html#cfn-iotwireless-serviceprofile-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html#cfn-iotwireless-serviceprofile-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ServiceProfile) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::ServiceProfile"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ServiceProfile) MarshalJSON() ([]byte, error) {
+ type Properties ServiceProfile
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ServiceProfile) UnmarshalJSON(b []byte) error {
+ type Properties ServiceProfile
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ServiceProfile(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-serviceprofile_lorawanserviceprofile.go b/goformation/cloudformation/iotwireless/aws-iotwireless-serviceprofile_lorawanserviceprofile.go
new file mode 100644
index 0000000000..5991f7388b
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-serviceprofile_lorawanserviceprofile.go
@@ -0,0 +1,127 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ServiceProfile_LoRaWANServiceProfile AWS CloudFormation Resource (AWS::IoTWireless::ServiceProfile.LoRaWANServiceProfile)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html
+type ServiceProfile_LoRaWANServiceProfile struct {
+
+ // AddGwMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-addgwmetadata
+ AddGwMetadata *types.Value `json:"AddGwMetadata,omitempty"`
+
+ // ChannelMask AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-channelmask
+ ChannelMask *types.Value `json:"ChannelMask,omitempty"`
+
+ // DevStatusReqFreq AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-devstatusreqfreq
+ DevStatusReqFreq *types.Value `json:"DevStatusReqFreq,omitempty"`
+
+ // DlBucketSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-dlbucketsize
+ DlBucketSize *types.Value `json:"DlBucketSize,omitempty"`
+
+ // DlRate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-dlrate
+ DlRate *types.Value `json:"DlRate,omitempty"`
+
+ // DlRatePolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-dlratepolicy
+ DlRatePolicy *types.Value `json:"DlRatePolicy,omitempty"`
+
+ // DrMax AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-drmax
+ DrMax *types.Value `json:"DrMax,omitempty"`
+
+ // DrMin AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-drmin
+ DrMin *types.Value `json:"DrMin,omitempty"`
+
+ // HrAllowed AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-hrallowed
+ HrAllowed *types.Value `json:"HrAllowed,omitempty"`
+
+ // MinGwDiversity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-mingwdiversity
+ MinGwDiversity *types.Value `json:"MinGwDiversity,omitempty"`
+
+ // NwkGeoLoc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-nwkgeoloc
+ NwkGeoLoc *types.Value `json:"NwkGeoLoc,omitempty"`
+
+ // PrAllowed AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-prallowed
+ PrAllowed *types.Value `json:"PrAllowed,omitempty"`
+
+ // RaAllowed AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-raallowed
+ RaAllowed *types.Value `json:"RaAllowed,omitempty"`
+
+ // ReportDevStatusBattery AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-reportdevstatusbattery
+ ReportDevStatusBattery *types.Value `json:"ReportDevStatusBattery,omitempty"`
+
+ // ReportDevStatusMargin AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-reportdevstatusmargin
+ ReportDevStatusMargin *types.Value `json:"ReportDevStatusMargin,omitempty"`
+
+ // TargetPer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-targetper
+ TargetPer *types.Value `json:"TargetPer,omitempty"`
+
+ // UlBucketSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-ulbucketsize
+ UlBucketSize *types.Value `json:"UlBucketSize,omitempty"`
+
+ // UlRate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-ulrate
+ UlRate *types.Value `json:"UlRate,omitempty"`
+
+ // UlRatePolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html#cfn-iotwireless-serviceprofile-lorawanserviceprofile-ulratepolicy
+ UlRatePolicy *types.Value `json:"UlRatePolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ServiceProfile_LoRaWANServiceProfile) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::ServiceProfile.LoRaWANServiceProfile"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition.go b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition.go
new file mode 100644
index 0000000000..a28d245876
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition.go
@@ -0,0 +1,134 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition AWS CloudFormation Resource (AWS::IoTWireless::TaskDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html
+type TaskDefinition struct {
+
+ // AutoCreateTasks AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html#cfn-iotwireless-taskdefinition-autocreatetasks
+ AutoCreateTasks *types.Value `json:"AutoCreateTasks"`
+
+ // LoRaWANUpdateGatewayTaskEntry AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html#cfn-iotwireless-taskdefinition-lorawanupdategatewaytaskentry
+ LoRaWANUpdateGatewayTaskEntry *TaskDefinition_LoRaWANUpdateGatewayTaskEntry `json:"LoRaWANUpdateGatewayTaskEntry,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html#cfn-iotwireless-taskdefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html#cfn-iotwireless-taskdefinition-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // TaskDefinitionType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html#cfn-iotwireless-taskdefinition-taskdefinitiontype
+ TaskDefinitionType *types.Value `json:"TaskDefinitionType,omitempty"`
+
+ // Update AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html#cfn-iotwireless-taskdefinition-update
+ Update *TaskDefinition_UpdateWirelessGatewayTaskCreate `json:"Update,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::TaskDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TaskDefinition) MarshalJSON() ([]byte, error) {
+ type Properties TaskDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TaskDefinition) UnmarshalJSON(b []byte) error {
+ type Properties TaskDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TaskDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawangatewayversion.go b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawangatewayversion.go
new file mode 100644
index 0000000000..de48d6b23c
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawangatewayversion.go
@@ -0,0 +1,47 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_LoRaWANGatewayVersion AWS CloudFormation Resource (AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html
+type TaskDefinition_LoRaWANGatewayVersion struct {
+
+ // Model AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html#cfn-iotwireless-taskdefinition-lorawangatewayversion-model
+ Model *types.Value `json:"Model,omitempty"`
+
+ // PackageVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html#cfn-iotwireless-taskdefinition-lorawangatewayversion-packageversion
+ PackageVersion *types.Value `json:"PackageVersion,omitempty"`
+
+ // Station AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html#cfn-iotwireless-taskdefinition-lorawangatewayversion-station
+ Station *types.Value `json:"Station,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_LoRaWANGatewayVersion) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawanupdategatewaytaskcreate.go b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawanupdategatewaytaskcreate.go
new file mode 100644
index 0000000000..86e097999f
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawanupdategatewaytaskcreate.go
@@ -0,0 +1,52 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_LoRaWANUpdateGatewayTaskCreate AWS CloudFormation Resource (AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html
+type TaskDefinition_LoRaWANUpdateGatewayTaskCreate struct {
+
+ // CurrentVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html#cfn-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate-currentversion
+ CurrentVersion *TaskDefinition_LoRaWANGatewayVersion `json:"CurrentVersion,omitempty"`
+
+ // SigKeyCrc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html#cfn-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate-sigkeycrc
+ SigKeyCrc *types.Value `json:"SigKeyCrc,omitempty"`
+
+ // UpdateSignature AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html#cfn-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate-updatesignature
+ UpdateSignature *types.Value `json:"UpdateSignature,omitempty"`
+
+ // UpdateVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html#cfn-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate-updateversion
+ UpdateVersion *TaskDefinition_LoRaWANGatewayVersion `json:"UpdateVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_LoRaWANUpdateGatewayTaskCreate) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawanupdategatewaytaskentry.go b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawanupdategatewaytaskentry.go
new file mode 100644
index 0000000000..825402c757
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_lorawanupdategatewaytaskentry.go
@@ -0,0 +1,40 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_LoRaWANUpdateGatewayTaskEntry AWS CloudFormation Resource (AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskentry.html
+type TaskDefinition_LoRaWANUpdateGatewayTaskEntry struct {
+
+ // CurrentVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskentry.html#cfn-iotwireless-taskdefinition-lorawanupdategatewaytaskentry-currentversion
+ CurrentVersion *TaskDefinition_LoRaWANGatewayVersion `json:"CurrentVersion,omitempty"`
+
+ // UpdateVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskentry.html#cfn-iotwireless-taskdefinition-lorawanupdategatewaytaskentry-updateversion
+ UpdateVersion *TaskDefinition_LoRaWANGatewayVersion `json:"UpdateVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_LoRaWANUpdateGatewayTaskEntry) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_updatewirelessgatewaytaskcreate.go b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_updatewirelessgatewaytaskcreate.go
new file mode 100644
index 0000000000..8cd818d285
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-taskdefinition_updatewirelessgatewaytaskcreate.go
@@ -0,0 +1,47 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TaskDefinition_UpdateWirelessGatewayTaskCreate AWS CloudFormation Resource (AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate.html
+type TaskDefinition_UpdateWirelessGatewayTaskCreate struct {
+
+ // LoRaWAN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate.html#cfn-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate-lorawan
+ LoRaWAN *TaskDefinition_LoRaWANUpdateGatewayTaskCreate `json:"LoRaWAN,omitempty"`
+
+ // UpdateDataRole AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate.html#cfn-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate-updatedatarole
+ UpdateDataRole *types.Value `json:"UpdateDataRole,omitempty"`
+
+ // UpdateDataSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate.html#cfn-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate-updatedatasource
+ UpdateDataSource *types.Value `json:"UpdateDataSource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TaskDefinition_UpdateWirelessGatewayTaskCreate) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice.go
new file mode 100644
index 0000000000..5d9b4ba8f5
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice.go
@@ -0,0 +1,144 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessDevice AWS CloudFormation Resource (AWS::IoTWireless::WirelessDevice)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html
+type WirelessDevice struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html#cfn-iotwireless-wirelessdevice-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DestinationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html#cfn-iotwireless-wirelessdevice-destinationname
+ DestinationName *types.Value `json:"DestinationName,omitempty"`
+
+ // LastUplinkReceivedAt AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html#cfn-iotwireless-wirelessdevice-lastuplinkreceivedat
+ LastUplinkReceivedAt *types.Value `json:"LastUplinkReceivedAt,omitempty"`
+
+ // LoRaWAN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html#cfn-iotwireless-wirelessdevice-lorawan
+ LoRaWAN *WirelessDevice_LoRaWANDevice `json:"LoRaWAN,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html#cfn-iotwireless-wirelessdevice-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html#cfn-iotwireless-wirelessdevice-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // ThingArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html#cfn-iotwireless-wirelessdevice-thingarn
+ ThingArn *types.Value `json:"ThingArn,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html#cfn-iotwireless-wirelessdevice-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessDevice) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessDevice"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r WirelessDevice) MarshalJSON() ([]byte, error) {
+ type Properties WirelessDevice
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *WirelessDevice) UnmarshalJSON(b []byte) error {
+ type Properties WirelessDevice
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = WirelessDevice(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_abpv10x.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_abpv10x.go
new file mode 100644
index 0000000000..d57ca07c65
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_abpv10x.go
@@ -0,0 +1,42 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessDevice_AbpV10x AWS CloudFormation Resource (AWS::IoTWireless::WirelessDevice.AbpV10x)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv10x.html
+type WirelessDevice_AbpV10x struct {
+
+ // DevAddr AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv10x.html#cfn-iotwireless-wirelessdevice-abpv10x-devaddr
+ DevAddr *types.Value `json:"DevAddr,omitempty"`
+
+ // SessionKeys AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv10x.html#cfn-iotwireless-wirelessdevice-abpv10x-sessionkeys
+ SessionKeys *WirelessDevice_SessionKeysAbpV10x `json:"SessionKeys,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessDevice_AbpV10x) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessDevice.AbpV10x"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_abpv11.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_abpv11.go
new file mode 100644
index 0000000000..54ac32191d
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_abpv11.go
@@ -0,0 +1,42 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessDevice_AbpV11 AWS CloudFormation Resource (AWS::IoTWireless::WirelessDevice.AbpV11)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html
+type WirelessDevice_AbpV11 struct {
+
+ // DevAddr AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html#cfn-iotwireless-wirelessdevice-abpv11-devaddr
+ DevAddr *types.Value `json:"DevAddr,omitempty"`
+
+ // SessionKeys AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html#cfn-iotwireless-wirelessdevice-abpv11-sessionkeys
+ SessionKeys *WirelessDevice_SessionKeysAbpV11 `json:"SessionKeys,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessDevice_AbpV11) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessDevice.AbpV11"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_lorawandevice.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_lorawandevice.go
new file mode 100644
index 0000000000..534d5b3653
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_lorawandevice.go
@@ -0,0 +1,67 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessDevice_LoRaWANDevice AWS CloudFormation Resource (AWS::IoTWireless::WirelessDevice.LoRaWANDevice)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html
+type WirelessDevice_LoRaWANDevice struct {
+
+ // AbpV10x AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-abpv10x
+ AbpV10x *WirelessDevice_AbpV10x `json:"AbpV10x,omitempty"`
+
+ // AbpV11 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-abpv11
+ AbpV11 *WirelessDevice_AbpV11 `json:"AbpV11,omitempty"`
+
+ // DevEui AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-deveui
+ DevEui *types.Value `json:"DevEui,omitempty"`
+
+ // DeviceProfileId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-deviceprofileid
+ DeviceProfileId *types.Value `json:"DeviceProfileId,omitempty"`
+
+ // OtaaV10x AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-otaav10x
+ OtaaV10x *WirelessDevice_OtaaV10x `json:"OtaaV10x,omitempty"`
+
+ // OtaaV11 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-otaav11
+ OtaaV11 *WirelessDevice_OtaaV11 `json:"OtaaV11,omitempty"`
+
+ // ServiceProfileId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html#cfn-iotwireless-wirelessdevice-lorawandevice-serviceprofileid
+ ServiceProfileId *types.Value `json:"ServiceProfileId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessDevice_LoRaWANDevice) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessDevice.LoRaWANDevice"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_otaav10x.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_otaav10x.go
new file mode 100644
index 0000000000..7ac73675d3
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_otaav10x.go
@@ -0,0 +1,42 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessDevice_OtaaV10x AWS CloudFormation Resource (AWS::IoTWireless::WirelessDevice.OtaaV10x)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav10x.html
+type WirelessDevice_OtaaV10x struct {
+
+ // AppEui AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav10x.html#cfn-iotwireless-wirelessdevice-otaav10x-appeui
+ AppEui *types.Value `json:"AppEui,omitempty"`
+
+ // AppKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav10x.html#cfn-iotwireless-wirelessdevice-otaav10x-appkey
+ AppKey *types.Value `json:"AppKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessDevice_OtaaV10x) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessDevice.OtaaV10x"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_otaav11.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_otaav11.go
new file mode 100644
index 0000000000..c52864affe
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_otaav11.go
@@ -0,0 +1,47 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessDevice_OtaaV11 AWS CloudFormation Resource (AWS::IoTWireless::WirelessDevice.OtaaV11)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav11.html
+type WirelessDevice_OtaaV11 struct {
+
+ // AppKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav11.html#cfn-iotwireless-wirelessdevice-otaav11-appkey
+ AppKey *types.Value `json:"AppKey,omitempty"`
+
+ // JoinEui AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav11.html#cfn-iotwireless-wirelessdevice-otaav11-joineui
+ JoinEui *types.Value `json:"JoinEui,omitempty"`
+
+ // NwkKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav11.html#cfn-iotwireless-wirelessdevice-otaav11-nwkkey
+ NwkKey *types.Value `json:"NwkKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessDevice_OtaaV11) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessDevice.OtaaV11"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_sessionkeysabpv10x.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_sessionkeysabpv10x.go
new file mode 100644
index 0000000000..04765c9d52
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_sessionkeysabpv10x.go
@@ -0,0 +1,42 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessDevice_SessionKeysAbpV10x AWS CloudFormation Resource (AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv10x.html
+type WirelessDevice_SessionKeysAbpV10x struct {
+
+ // AppSKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv10x.html#cfn-iotwireless-wirelessdevice-sessionkeysabpv10x-appskey
+ AppSKey *types.Value `json:"AppSKey,omitempty"`
+
+ // NwkSKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv10x.html#cfn-iotwireless-wirelessdevice-sessionkeysabpv10x-nwkskey
+ NwkSKey *types.Value `json:"NwkSKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessDevice_SessionKeysAbpV10x) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_sessionkeysabpv11.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_sessionkeysabpv11.go
new file mode 100644
index 0000000000..5c7586faf6
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessdevice_sessionkeysabpv11.go
@@ -0,0 +1,52 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessDevice_SessionKeysAbpV11 AWS CloudFormation Resource (AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html
+type WirelessDevice_SessionKeysAbpV11 struct {
+
+ // AppSKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html#cfn-iotwireless-wirelessdevice-sessionkeysabpv11-appskey
+ AppSKey *types.Value `json:"AppSKey,omitempty"`
+
+ // FNwkSIntKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html#cfn-iotwireless-wirelessdevice-sessionkeysabpv11-fnwksintkey
+ FNwkSIntKey *types.Value `json:"FNwkSIntKey,omitempty"`
+
+ // NwkSEncKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html#cfn-iotwireless-wirelessdevice-sessionkeysabpv11-nwksenckey
+ NwkSEncKey *types.Value `json:"NwkSEncKey,omitempty"`
+
+ // SNwkSIntKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html#cfn-iotwireless-wirelessdevice-sessionkeysabpv11-snwksintkey
+ SNwkSIntKey *types.Value `json:"SNwkSIntKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessDevice_SessionKeysAbpV11) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11"
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessgateway.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessgateway.go
new file mode 100644
index 0000000000..7ed81d28e9
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessgateway.go
@@ -0,0 +1,134 @@
+package iotwireless
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessGateway AWS CloudFormation Resource (AWS::IoTWireless::WirelessGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html
+type WirelessGateway struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html#cfn-iotwireless-wirelessgateway-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // LastUplinkReceivedAt AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html#cfn-iotwireless-wirelessgateway-lastuplinkreceivedat
+ LastUplinkReceivedAt *types.Value `json:"LastUplinkReceivedAt,omitempty"`
+
+ // LoRaWAN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html#cfn-iotwireless-wirelessgateway-lorawan
+ LoRaWAN *WirelessGateway_LoRaWANGateway `json:"LoRaWAN,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html#cfn-iotwireless-wirelessgateway-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html#cfn-iotwireless-wirelessgateway-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // ThingArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html#cfn-iotwireless-wirelessgateway-thingarn
+ ThingArn *types.Value `json:"ThingArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessGateway) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessGateway"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r WirelessGateway) MarshalJSON() ([]byte, error) {
+ type Properties WirelessGateway
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *WirelessGateway) UnmarshalJSON(b []byte) error {
+ type Properties WirelessGateway
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = WirelessGateway(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessgateway_lorawangateway.go b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessgateway_lorawangateway.go
new file mode 100644
index 0000000000..777f738fdf
--- /dev/null
+++ b/goformation/cloudformation/iotwireless/aws-iotwireless-wirelessgateway_lorawangateway.go
@@ -0,0 +1,42 @@
+package iotwireless
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// WirelessGateway_LoRaWANGateway AWS CloudFormation Resource (AWS::IoTWireless::WirelessGateway.LoRaWANGateway)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessgateway-lorawangateway.html
+type WirelessGateway_LoRaWANGateway struct {
+
+ // GatewayEui AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessgateway-lorawangateway.html#cfn-iotwireless-wirelessgateway-lorawangateway-gatewayeui
+ GatewayEui *types.Value `json:"GatewayEui,omitempty"`
+
+ // RfRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessgateway-lorawangateway.html#cfn-iotwireless-wirelessgateway-lorawangateway-rfregion
+ RfRegion *types.Value `json:"RfRegion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *WirelessGateway_LoRaWANGateway) AWSCloudFormationType() string {
+ return "AWS::IoTWireless::WirelessGateway.LoRaWANGateway"
+}
diff --git a/goformation/cloudformation/ivs/aws-ivs-channel.go b/goformation/cloudformation/ivs/aws-ivs-channel.go
new file mode 100644
index 0000000000..98590fb800
--- /dev/null
+++ b/goformation/cloudformation/ivs/aws-ivs-channel.go
@@ -0,0 +1,134 @@
+package ivs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel AWS CloudFormation Resource (AWS::IVS::Channel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html
+type Channel struct {
+
+ // Authorized AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-authorized
+ Authorized *types.Value `json:"Authorized,omitempty"`
+
+ // LatencyMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-latencymode
+ LatencyMode *types.Value `json:"LatencyMode,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RecordingConfigurationArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-recordingconfigurationarn
+ RecordingConfigurationArn *types.Value `json:"RecordingConfigurationArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-channel.html#cfn-ivs-channel-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel) AWSCloudFormationType() string {
+ return "AWS::IVS::Channel"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Channel) MarshalJSON() ([]byte, error) {
+ type Properties Channel
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Channel) UnmarshalJSON(b []byte) error {
+ type Properties Channel
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Channel(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ivs/aws-ivs-playbackkeypair.go b/goformation/cloudformation/ivs/aws-ivs-playbackkeypair.go
new file mode 100644
index 0000000000..2c4689633d
--- /dev/null
+++ b/goformation/cloudformation/ivs/aws-ivs-playbackkeypair.go
@@ -0,0 +1,119 @@
+package ivs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// PlaybackKeyPair AWS CloudFormation Resource (AWS::IVS::PlaybackKeyPair)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html
+type PlaybackKeyPair struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // PublicKeyMaterial AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-publickeymaterial
+ PublicKeyMaterial *types.Value `json:"PublicKeyMaterial,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-playbackkeypair.html#cfn-ivs-playbackkeypair-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PlaybackKeyPair) AWSCloudFormationType() string {
+ return "AWS::IVS::PlaybackKeyPair"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PlaybackKeyPair) MarshalJSON() ([]byte, error) {
+ type Properties PlaybackKeyPair
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PlaybackKeyPair) UnmarshalJSON(b []byte) error {
+ type Properties PlaybackKeyPair
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PlaybackKeyPair(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration.go b/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration.go
new file mode 100644
index 0000000000..a6b0b0fafd
--- /dev/null
+++ b/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration.go
@@ -0,0 +1,119 @@
+package ivs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// RecordingConfiguration AWS CloudFormation Resource (AWS::IVS::RecordingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html
+type RecordingConfiguration struct {
+
+ // DestinationConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-destinationconfiguration
+ DestinationConfiguration *RecordingConfiguration_DestinationConfiguration `json:"DestinationConfiguration,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-recordingconfiguration.html#cfn-ivs-recordingconfiguration-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RecordingConfiguration) AWSCloudFormationType() string {
+ return "AWS::IVS::RecordingConfiguration"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RecordingConfiguration) MarshalJSON() ([]byte, error) {
+ type Properties RecordingConfiguration
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RecordingConfiguration) UnmarshalJSON(b []byte) error {
+ type Properties RecordingConfiguration
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RecordingConfiguration(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration_destinationconfiguration.go b/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration_destinationconfiguration.go
new file mode 100644
index 0000000000..5994428680
--- /dev/null
+++ b/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration_destinationconfiguration.go
@@ -0,0 +1,35 @@
+package ivs
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// RecordingConfiguration_DestinationConfiguration AWS CloudFormation Resource (AWS::IVS::RecordingConfiguration.DestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-destinationconfiguration.html
+type RecordingConfiguration_DestinationConfiguration struct {
+
+ // S3 AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-destinationconfiguration.html#cfn-ivs-recordingconfiguration-destinationconfiguration-s3
+ S3 *RecordingConfiguration_S3DestinationConfiguration `json:"S3,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RecordingConfiguration_DestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::IVS::RecordingConfiguration.DestinationConfiguration"
+}
diff --git a/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration_s3destinationconfiguration.go b/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration_s3destinationconfiguration.go
new file mode 100644
index 0000000000..e5591e460e
--- /dev/null
+++ b/goformation/cloudformation/ivs/aws-ivs-recordingconfiguration_s3destinationconfiguration.go
@@ -0,0 +1,37 @@
+package ivs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RecordingConfiguration_S3DestinationConfiguration AWS CloudFormation Resource (AWS::IVS::RecordingConfiguration.S3DestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html
+type RecordingConfiguration_S3DestinationConfiguration struct {
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-recordingconfiguration-s3destinationconfiguration.html#cfn-ivs-recordingconfiguration-s3destinationconfiguration-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RecordingConfiguration_S3DestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::IVS::RecordingConfiguration.S3DestinationConfiguration"
+}
diff --git a/goformation/cloudformation/ivs/aws-ivs-streamkey.go b/goformation/cloudformation/ivs/aws-ivs-streamkey.go
new file mode 100644
index 0000000000..4db1595942
--- /dev/null
+++ b/goformation/cloudformation/ivs/aws-ivs-streamkey.go
@@ -0,0 +1,114 @@
+package ivs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// StreamKey AWS CloudFormation Resource (AWS::IVS::StreamKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html
+type StreamKey struct {
+
+ // ChannelArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html#cfn-ivs-streamkey-channelarn
+ ChannelArn *types.Value `json:"ChannelArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-streamkey.html#cfn-ivs-streamkey-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StreamKey) AWSCloudFormationType() string {
+ return "AWS::IVS::StreamKey"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StreamKey) MarshalJSON() ([]byte, error) {
+ type Properties StreamKey
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StreamKey) UnmarshalJSON(b []byte) error {
+ type Properties StreamKey
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StreamKey(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource.go b/goformation/cloudformation/kendra/aws-kendra-datasource.go
new file mode 100644
index 0000000000..9ad10badb6
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource.go
@@ -0,0 +1,144 @@
+package kendra
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource AWS CloudFormation Resource (AWS::Kendra::DataSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html
+type DataSource struct {
+
+ // DataSourceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-datasourceconfiguration
+ DataSourceConfiguration *DataSource_DataSourceConfiguration `json:"DataSourceConfiguration,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IndexId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-indexid
+ IndexId *types.Value `json:"IndexId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Schedule AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-schedule
+ Schedule *types.Value `json:"Schedule,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html#cfn-kendra-datasource-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DataSource) MarshalJSON() ([]byte, error) {
+ type Properties DataSource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DataSource) UnmarshalJSON(b []byte) error {
+ type Properties DataSource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DataSource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_accesscontrollistconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_accesscontrollistconfiguration.go
new file mode 100644
index 0000000000..d340352b3f
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_accesscontrollistconfiguration.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_AccessControlListConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.AccessControlListConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-accesscontrollistconfiguration.html
+type DataSource_AccessControlListConfiguration struct {
+
+ // KeyPath AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-accesscontrollistconfiguration.html#cfn-kendra-datasource-accesscontrollistconfiguration-keypath
+ KeyPath *types.Value `json:"KeyPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_AccessControlListConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.AccessControlListConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_aclconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_aclconfiguration.go
new file mode 100644
index 0000000000..22ad509a6f
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_aclconfiguration.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_AclConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.AclConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-aclconfiguration.html
+type DataSource_AclConfiguration struct {
+
+ // AllowedGroupsColumnName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-aclconfiguration.html#cfn-kendra-datasource-aclconfiguration-allowedgroupscolumnname
+ AllowedGroupsColumnName *types.Value `json:"AllowedGroupsColumnName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_AclConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.AclConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_changedetectingcolumns.go b/goformation/cloudformation/kendra/aws-kendra-datasource_changedetectingcolumns.go
new file mode 100644
index 0000000000..fdaeb8ab19
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_changedetectingcolumns.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ChangeDetectingColumns AWS CloudFormation Resource (AWS::Kendra::DataSource.ChangeDetectingColumns)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-changedetectingcolumns.html
+type DataSource_ChangeDetectingColumns struct {
+
+ // ChangeDetectingColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-changedetectingcolumns.html#cfn-kendra-datasource-changedetectingcolumns-changedetectingcolumns
+ ChangeDetectingColumns *types.Value `json:"ChangeDetectingColumns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ChangeDetectingColumns) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ChangeDetectingColumns"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_columnconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_columnconfiguration.go
new file mode 100644
index 0000000000..d9700bb46f
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_columnconfiguration.go
@@ -0,0 +1,57 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ColumnConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ColumnConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-columnconfiguration.html
+type DataSource_ColumnConfiguration struct {
+
+ // ChangeDetectingColumns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-columnconfiguration.html#cfn-kendra-datasource-columnconfiguration-changedetectingcolumns
+ ChangeDetectingColumns *types.Value `json:"ChangeDetectingColumns,omitempty"`
+
+ // DocumentDataColumnName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-columnconfiguration.html#cfn-kendra-datasource-columnconfiguration-documentdatacolumnname
+ DocumentDataColumnName *types.Value `json:"DocumentDataColumnName,omitempty"`
+
+ // DocumentIdColumnName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-columnconfiguration.html#cfn-kendra-datasource-columnconfiguration-documentidcolumnname
+ DocumentIdColumnName *types.Value `json:"DocumentIdColumnName,omitempty"`
+
+ // DocumentTitleColumnName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-columnconfiguration.html#cfn-kendra-datasource-columnconfiguration-documenttitlecolumnname
+ DocumentTitleColumnName *types.Value `json:"DocumentTitleColumnName,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-columnconfiguration.html#cfn-kendra-datasource-columnconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ColumnConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ColumnConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceattachmentconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceattachmentconfiguration.go
new file mode 100644
index 0000000000..c7fe22d184
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceattachmentconfiguration.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluenceAttachmentConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluenceAttachmentConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmentconfiguration.html
+type DataSource_ConfluenceAttachmentConfiguration struct {
+
+ // AttachmentFieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmentconfiguration.html#cfn-kendra-datasource-confluenceattachmentconfiguration-attachmentfieldmappings
+ AttachmentFieldMappings []DataSource_ConfluenceAttachmentToIndexFieldMapping `json:"AttachmentFieldMappings,omitempty"`
+
+ // CrawlAttachments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmentconfiguration.html#cfn-kendra-datasource-confluenceattachmentconfiguration-crawlattachments
+ CrawlAttachments *types.Value `json:"CrawlAttachments,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluenceAttachmentConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluenceAttachmentConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceattachmenttoindexfieldmapping.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceattachmenttoindexfieldmapping.go
new file mode 100644
index 0000000000..cc971222c4
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceattachmenttoindexfieldmapping.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluenceAttachmentToIndexFieldMapping AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmenttoindexfieldmapping.html
+type DataSource_ConfluenceAttachmentToIndexFieldMapping struct {
+
+ // DataSourceFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmenttoindexfieldmapping.html#cfn-kendra-datasource-confluenceattachmenttoindexfieldmapping-datasourcefieldname
+ DataSourceFieldName *types.Value `json:"DataSourceFieldName,omitempty"`
+
+ // DateFieldFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmenttoindexfieldmapping.html#cfn-kendra-datasource-confluenceattachmenttoindexfieldmapping-datefieldformat
+ DateFieldFormat *types.Value `json:"DateFieldFormat,omitempty"`
+
+ // IndexFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmenttoindexfieldmapping.html#cfn-kendra-datasource-confluenceattachmenttoindexfieldmapping-indexfieldname
+ IndexFieldName *types.Value `json:"IndexFieldName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluenceAttachmentToIndexFieldMapping) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceblogconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceblogconfiguration.go
new file mode 100644
index 0000000000..72b15a735c
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceblogconfiguration.go
@@ -0,0 +1,35 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluenceBlogConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluenceBlogConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceblogconfiguration.html
+type DataSource_ConfluenceBlogConfiguration struct {
+
+ // BlogFieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceblogconfiguration.html#cfn-kendra-datasource-confluenceblogconfiguration-blogfieldmappings
+ BlogFieldMappings []DataSource_ConfluenceBlogToIndexFieldMapping `json:"BlogFieldMappings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluenceBlogConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluenceBlogConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceblogtoindexfieldmapping.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceblogtoindexfieldmapping.go
new file mode 100644
index 0000000000..dea0fb0157
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceblogtoindexfieldmapping.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluenceBlogToIndexFieldMapping AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluenceBlogToIndexFieldMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceblogtoindexfieldmapping.html
+type DataSource_ConfluenceBlogToIndexFieldMapping struct {
+
+ // DataSourceFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceblogtoindexfieldmapping.html#cfn-kendra-datasource-confluenceblogtoindexfieldmapping-datasourcefieldname
+ DataSourceFieldName *types.Value `json:"DataSourceFieldName,omitempty"`
+
+ // DateFieldFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceblogtoindexfieldmapping.html#cfn-kendra-datasource-confluenceblogtoindexfieldmapping-datefieldformat
+ DateFieldFormat *types.Value `json:"DateFieldFormat,omitempty"`
+
+ // IndexFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceblogtoindexfieldmapping.html#cfn-kendra-datasource-confluenceblogtoindexfieldmapping-indexfieldname
+ IndexFieldName *types.Value `json:"IndexFieldName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluenceBlogToIndexFieldMapping) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluenceBlogToIndexFieldMapping"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceconfiguration.go
new file mode 100644
index 0000000000..55ed73767b
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluenceconfiguration.go
@@ -0,0 +1,82 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluenceConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluenceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html
+type DataSource_ConfluenceConfiguration struct {
+
+ // AttachmentConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-attachmentconfiguration
+ AttachmentConfiguration *DataSource_ConfluenceAttachmentConfiguration `json:"AttachmentConfiguration,omitempty"`
+
+ // BlogConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-blogconfiguration
+ BlogConfiguration *DataSource_ConfluenceBlogConfiguration `json:"BlogConfiguration,omitempty"`
+
+ // ExclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-exclusionpatterns
+ ExclusionPatterns *types.Value `json:"ExclusionPatterns,omitempty"`
+
+ // InclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-inclusionpatterns
+ InclusionPatterns *types.Value `json:"InclusionPatterns,omitempty"`
+
+ // PageConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-pageconfiguration
+ PageConfiguration *DataSource_ConfluencePageConfiguration `json:"PageConfiguration,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // ServerUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-serverurl
+ ServerUrl *types.Value `json:"ServerUrl,omitempty"`
+
+ // SpaceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-spaceconfiguration
+ SpaceConfiguration *DataSource_ConfluenceSpaceConfiguration `json:"SpaceConfiguration,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // VpcConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html#cfn-kendra-datasource-confluenceconfiguration-vpcconfiguration
+ VpcConfiguration *DataSource_DataSourceVpcConfiguration `json:"VpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluenceConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluenceConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluencepageconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluencepageconfiguration.go
new file mode 100644
index 0000000000..243c7b53f4
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluencepageconfiguration.go
@@ -0,0 +1,35 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluencePageConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluencePageConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepageconfiguration.html
+type DataSource_ConfluencePageConfiguration struct {
+
+ // PageFieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepageconfiguration.html#cfn-kendra-datasource-confluencepageconfiguration-pagefieldmappings
+ PageFieldMappings []DataSource_ConfluencePageToIndexFieldMapping `json:"PageFieldMappings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluencePageConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluencePageConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluencepagetoindexfieldmapping.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluencepagetoindexfieldmapping.go
new file mode 100644
index 0000000000..fb815f9f95
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluencepagetoindexfieldmapping.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluencePageToIndexFieldMapping AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepagetoindexfieldmapping.html
+type DataSource_ConfluencePageToIndexFieldMapping struct {
+
+ // DataSourceFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepagetoindexfieldmapping.html#cfn-kendra-datasource-confluencepagetoindexfieldmapping-datasourcefieldname
+ DataSourceFieldName *types.Value `json:"DataSourceFieldName,omitempty"`
+
+ // DateFieldFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepagetoindexfieldmapping.html#cfn-kendra-datasource-confluencepagetoindexfieldmapping-datefieldformat
+ DateFieldFormat *types.Value `json:"DateFieldFormat,omitempty"`
+
+ // IndexFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepagetoindexfieldmapping.html#cfn-kendra-datasource-confluencepagetoindexfieldmapping-indexfieldname
+ IndexFieldName *types.Value `json:"IndexFieldName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluencePageToIndexFieldMapping) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluencespaceconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluencespaceconfiguration.go
new file mode 100644
index 0000000000..463553eb80
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluencespaceconfiguration.go
@@ -0,0 +1,57 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluenceSpaceConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluenceSpaceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html
+type DataSource_ConfluenceSpaceConfiguration struct {
+
+ // CrawlArchivedSpaces AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html#cfn-kendra-datasource-confluencespaceconfiguration-crawlarchivedspaces
+ CrawlArchivedSpaces *types.Value `json:"CrawlArchivedSpaces,omitempty"`
+
+ // CrawlPersonalSpaces AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html#cfn-kendra-datasource-confluencespaceconfiguration-crawlpersonalspaces
+ CrawlPersonalSpaces *types.Value `json:"CrawlPersonalSpaces,omitempty"`
+
+ // ExcludeSpaces AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html#cfn-kendra-datasource-confluencespaceconfiguration-excludespaces
+ ExcludeSpaces *types.Value `json:"ExcludeSpaces,omitempty"`
+
+ // IncludeSpaces AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html#cfn-kendra-datasource-confluencespaceconfiguration-includespaces
+ IncludeSpaces *types.Value `json:"IncludeSpaces,omitempty"`
+
+ // SpaceFieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html#cfn-kendra-datasource-confluencespaceconfiguration-spacefieldmappings
+ SpaceFieldMappings []DataSource_ConfluenceSpaceToIndexFieldMapping `json:"SpaceFieldMappings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluenceSpaceConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluenceSpaceConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_confluencespacetoindexfieldmapping.go b/goformation/cloudformation/kendra/aws-kendra-datasource_confluencespacetoindexfieldmapping.go
new file mode 100644
index 0000000000..255bdc545d
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_confluencespacetoindexfieldmapping.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConfluenceSpaceToIndexFieldMapping AWS CloudFormation Resource (AWS::Kendra::DataSource.ConfluenceSpaceToIndexFieldMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespacetoindexfieldmapping.html
+type DataSource_ConfluenceSpaceToIndexFieldMapping struct {
+
+ // DataSourceFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespacetoindexfieldmapping.html#cfn-kendra-datasource-confluencespacetoindexfieldmapping-datasourcefieldname
+ DataSourceFieldName *types.Value `json:"DataSourceFieldName,omitempty"`
+
+ // DateFieldFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespacetoindexfieldmapping.html#cfn-kendra-datasource-confluencespacetoindexfieldmapping-datefieldformat
+ DateFieldFormat *types.Value `json:"DateFieldFormat,omitempty"`
+
+ // IndexFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespacetoindexfieldmapping.html#cfn-kendra-datasource-confluencespacetoindexfieldmapping-indexfieldname
+ IndexFieldName *types.Value `json:"IndexFieldName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConfluenceSpaceToIndexFieldMapping) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConfluenceSpaceToIndexFieldMapping"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_connectionconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_connectionconfiguration.go
new file mode 100644
index 0000000000..cd2a563e9b
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_connectionconfiguration.go
@@ -0,0 +1,57 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ConnectionConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ConnectionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-connectionconfiguration.html
+type DataSource_ConnectionConfiguration struct {
+
+ // DatabaseHost AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-connectionconfiguration.html#cfn-kendra-datasource-connectionconfiguration-databasehost
+ DatabaseHost *types.Value `json:"DatabaseHost,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-connectionconfiguration.html#cfn-kendra-datasource-connectionconfiguration-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // DatabasePort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-connectionconfiguration.html#cfn-kendra-datasource-connectionconfiguration-databaseport
+ DatabasePort *types.Value `json:"DatabasePort"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-connectionconfiguration.html#cfn-kendra-datasource-connectionconfiguration-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-connectionconfiguration.html#cfn-kendra-datasource-connectionconfiguration-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ConnectionConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ConnectionConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_databaseconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_databaseconfiguration.go
new file mode 100644
index 0000000000..f84ddb81b5
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_databaseconfiguration.go
@@ -0,0 +1,62 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DatabaseConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.DatabaseConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-databaseconfiguration.html
+type DataSource_DatabaseConfiguration struct {
+
+ // AclConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-databaseconfiguration.html#cfn-kendra-datasource-databaseconfiguration-aclconfiguration
+ AclConfiguration *DataSource_AclConfiguration `json:"AclConfiguration,omitempty"`
+
+ // ColumnConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-databaseconfiguration.html#cfn-kendra-datasource-databaseconfiguration-columnconfiguration
+ ColumnConfiguration *DataSource_ColumnConfiguration `json:"ColumnConfiguration,omitempty"`
+
+ // ConnectionConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-databaseconfiguration.html#cfn-kendra-datasource-databaseconfiguration-connectionconfiguration
+ ConnectionConfiguration *DataSource_ConnectionConfiguration `json:"ConnectionConfiguration,omitempty"`
+
+ // DatabaseEngineType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-databaseconfiguration.html#cfn-kendra-datasource-databaseconfiguration-databaseenginetype
+ DatabaseEngineType *types.Value `json:"DatabaseEngineType,omitempty"`
+
+ // SqlConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-databaseconfiguration.html#cfn-kendra-datasource-databaseconfiguration-sqlconfiguration
+ SqlConfiguration *DataSource_SqlConfiguration `json:"SqlConfiguration,omitempty"`
+
+ // VpcConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-databaseconfiguration.html#cfn-kendra-datasource-databaseconfiguration-vpcconfiguration
+ VpcConfiguration *DataSource_DataSourceVpcConfiguration `json:"VpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DatabaseConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.DatabaseConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_datasourceconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourceconfiguration.go
new file mode 100644
index 0000000000..5694b4c963
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourceconfiguration.go
@@ -0,0 +1,80 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DataSourceConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.DataSourceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html
+type DataSource_DataSourceConfiguration struct {
+
+ // ConfluenceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-confluenceconfiguration
+ ConfluenceConfiguration *DataSource_ConfluenceConfiguration `json:"ConfluenceConfiguration,omitempty"`
+
+ // DatabaseConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-databaseconfiguration
+ DatabaseConfiguration *DataSource_DatabaseConfiguration `json:"DatabaseConfiguration,omitempty"`
+
+ // GoogleDriveConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-googledriveconfiguration
+ GoogleDriveConfiguration *DataSource_GoogleDriveConfiguration `json:"GoogleDriveConfiguration,omitempty"`
+
+ // OneDriveConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-onedriveconfiguration
+ OneDriveConfiguration *DataSource_OneDriveConfiguration `json:"OneDriveConfiguration,omitempty"`
+
+ // S3Configuration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-s3configuration
+ S3Configuration *DataSource_S3DataSourceConfiguration `json:"S3Configuration,omitempty"`
+
+ // SalesforceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-salesforceconfiguration
+ SalesforceConfiguration *DataSource_SalesforceConfiguration `json:"SalesforceConfiguration,omitempty"`
+
+ // ServiceNowConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-servicenowconfiguration
+ ServiceNowConfiguration *DataSource_ServiceNowConfiguration `json:"ServiceNowConfiguration,omitempty"`
+
+ // SharePointConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-sharepointconfiguration
+ SharePointConfiguration *DataSource_SharePointConfiguration `json:"SharePointConfiguration,omitempty"`
+
+ // WebCrawlerConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-webcrawlerconfiguration
+ WebCrawlerConfiguration *DataSource_WebCrawlerConfiguration `json:"WebCrawlerConfiguration,omitempty"`
+
+ // WorkDocsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html#cfn-kendra-datasource-datasourceconfiguration-workdocsconfiguration
+ WorkDocsConfiguration *DataSource_WorkDocsConfiguration `json:"WorkDocsConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DataSourceConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.DataSourceConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_datasourceinclusionsexclusionsstrings.go b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourceinclusionsexclusionsstrings.go
new file mode 100644
index 0000000000..056b63673d
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourceinclusionsexclusionsstrings.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DataSourceInclusionsExclusionsStrings AWS CloudFormation Resource (AWS::Kendra::DataSource.DataSourceInclusionsExclusionsStrings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceinclusionsexclusionsstrings.html
+type DataSource_DataSourceInclusionsExclusionsStrings struct {
+
+ // DataSourceInclusionsExclusionsStrings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceinclusionsexclusionsstrings.html#cfn-kendra-datasource-datasourceinclusionsexclusionsstrings-datasourceinclusionsexclusionsstrings
+ DataSourceInclusionsExclusionsStrings *types.Value `json:"DataSourceInclusionsExclusionsStrings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DataSourceInclusionsExclusionsStrings) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.DataSourceInclusionsExclusionsStrings"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcetoindexfieldmapping.go b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcetoindexfieldmapping.go
new file mode 100644
index 0000000000..19af6286c6
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcetoindexfieldmapping.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DataSourceToIndexFieldMapping AWS CloudFormation Resource (AWS::Kendra::DataSource.DataSourceToIndexFieldMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmapping.html
+type DataSource_DataSourceToIndexFieldMapping struct {
+
+ // DataSourceFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmapping.html#cfn-kendra-datasource-datasourcetoindexfieldmapping-datasourcefieldname
+ DataSourceFieldName *types.Value `json:"DataSourceFieldName,omitempty"`
+
+ // DateFieldFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmapping.html#cfn-kendra-datasource-datasourcetoindexfieldmapping-datefieldformat
+ DateFieldFormat *types.Value `json:"DateFieldFormat,omitempty"`
+
+ // IndexFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmapping.html#cfn-kendra-datasource-datasourcetoindexfieldmapping-indexfieldname
+ IndexFieldName *types.Value `json:"IndexFieldName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DataSourceToIndexFieldMapping) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.DataSourceToIndexFieldMapping"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcetoindexfieldmappinglist.go b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcetoindexfieldmappinglist.go
new file mode 100644
index 0000000000..ed328ea52f
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcetoindexfieldmappinglist.go
@@ -0,0 +1,35 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DataSourceToIndexFieldMappingList AWS CloudFormation Resource (AWS::Kendra::DataSource.DataSourceToIndexFieldMappingList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmappinglist.html
+type DataSource_DataSourceToIndexFieldMappingList struct {
+
+ // DataSourceToIndexFieldMappingList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmappinglist.html#cfn-kendra-datasource-datasourcetoindexfieldmappinglist-datasourcetoindexfieldmappinglist
+ DataSourceToIndexFieldMappingList []DataSource_DataSourceToIndexFieldMapping `json:"DataSourceToIndexFieldMappingList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DataSourceToIndexFieldMappingList) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.DataSourceToIndexFieldMappingList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcevpcconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcevpcconfiguration.go
new file mode 100644
index 0000000000..5409933243
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_datasourcevpcconfiguration.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DataSourceVpcConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.DataSourceVpcConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcevpcconfiguration.html
+type DataSource_DataSourceVpcConfiguration struct {
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcevpcconfiguration.html#cfn-kendra-datasource-datasourcevpcconfiguration-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcevpcconfiguration.html#cfn-kendra-datasource-datasourcevpcconfiguration-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DataSourceVpcConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.DataSourceVpcConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_documentsmetadataconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_documentsmetadataconfiguration.go
new file mode 100644
index 0000000000..aa796f1a45
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_documentsmetadataconfiguration.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_DocumentsMetadataConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.DocumentsMetadataConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-documentsmetadataconfiguration.html
+type DataSource_DocumentsMetadataConfiguration struct {
+
+ // S3Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-documentsmetadataconfiguration.html#cfn-kendra-datasource-documentsmetadataconfiguration-s3prefix
+ S3Prefix *types.Value `json:"S3Prefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_DocumentsMetadataConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.DocumentsMetadataConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_googledriveconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_googledriveconfiguration.go
new file mode 100644
index 0000000000..7706ef34c9
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_googledriveconfiguration.go
@@ -0,0 +1,67 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_GoogleDriveConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.GoogleDriveConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html
+type DataSource_GoogleDriveConfiguration struct {
+
+ // ExcludeMimeTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html#cfn-kendra-datasource-googledriveconfiguration-excludemimetypes
+ ExcludeMimeTypes *types.Value `json:"ExcludeMimeTypes,omitempty"`
+
+ // ExcludeSharedDrives AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html#cfn-kendra-datasource-googledriveconfiguration-excludeshareddrives
+ ExcludeSharedDrives *types.Value `json:"ExcludeSharedDrives,omitempty"`
+
+ // ExcludeUserAccounts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html#cfn-kendra-datasource-googledriveconfiguration-excludeuseraccounts
+ ExcludeUserAccounts *types.Value `json:"ExcludeUserAccounts,omitempty"`
+
+ // ExclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html#cfn-kendra-datasource-googledriveconfiguration-exclusionpatterns
+ ExclusionPatterns *types.Value `json:"ExclusionPatterns,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html#cfn-kendra-datasource-googledriveconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // InclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html#cfn-kendra-datasource-googledriveconfiguration-inclusionpatterns
+ InclusionPatterns *types.Value `json:"InclusionPatterns,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html#cfn-kendra-datasource-googledriveconfiguration-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_GoogleDriveConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.GoogleDriveConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveconfiguration.go
new file mode 100644
index 0000000000..072c5fda06
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveconfiguration.go
@@ -0,0 +1,67 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_OneDriveConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.OneDriveConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html
+type DataSource_OneDriveConfiguration struct {
+
+ // DisableLocalGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html#cfn-kendra-datasource-onedriveconfiguration-disablelocalgroups
+ DisableLocalGroups *types.Value `json:"DisableLocalGroups,omitempty"`
+
+ // ExclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html#cfn-kendra-datasource-onedriveconfiguration-exclusionpatterns
+ ExclusionPatterns *types.Value `json:"ExclusionPatterns,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html#cfn-kendra-datasource-onedriveconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // InclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html#cfn-kendra-datasource-onedriveconfiguration-inclusionpatterns
+ InclusionPatterns *types.Value `json:"InclusionPatterns,omitempty"`
+
+ // OneDriveUsers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html#cfn-kendra-datasource-onedriveconfiguration-onedriveusers
+ OneDriveUsers *DataSource_OneDriveUsers `json:"OneDriveUsers,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html#cfn-kendra-datasource-onedriveconfiguration-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // TenantDomain AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html#cfn-kendra-datasource-onedriveconfiguration-tenantdomain
+ TenantDomain *types.Value `json:"TenantDomain,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_OneDriveConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.OneDriveConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveuserlist.go b/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveuserlist.go
new file mode 100644
index 0000000000..db5087bda6
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveuserlist.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_OneDriveUserList AWS CloudFormation Resource (AWS::Kendra::DataSource.OneDriveUserList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveuserlist.html
+type DataSource_OneDriveUserList struct {
+
+ // OneDriveUserList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveuserlist.html#cfn-kendra-datasource-onedriveuserlist-onedriveuserlist
+ OneDriveUserList *types.Value `json:"OneDriveUserList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_OneDriveUserList) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.OneDriveUserList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveusers.go b/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveusers.go
new file mode 100644
index 0000000000..8079722d48
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_onedriveusers.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_OneDriveUsers AWS CloudFormation Resource (AWS::Kendra::DataSource.OneDriveUsers)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveusers.html
+type DataSource_OneDriveUsers struct {
+
+ // OneDriveUserList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveusers.html#cfn-kendra-datasource-onedriveusers-onedriveuserlist
+ OneDriveUserList *types.Value `json:"OneDriveUserList,omitempty"`
+
+ // OneDriveUserS3Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveusers.html#cfn-kendra-datasource-onedriveusers-onedriveusers3path
+ OneDriveUserS3Path *DataSource_S3Path `json:"OneDriveUserS3Path,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_OneDriveUsers) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.OneDriveUsers"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_proxyconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_proxyconfiguration.go
new file mode 100644
index 0000000000..baf637c95d
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_proxyconfiguration.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ProxyConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ProxyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-proxyconfiguration.html
+type DataSource_ProxyConfiguration struct {
+
+ // Credentials AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-proxyconfiguration.html#cfn-kendra-datasource-proxyconfiguration-credentials
+ Credentials *types.Value `json:"Credentials,omitempty"`
+
+ // Host AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-proxyconfiguration.html#cfn-kendra-datasource-proxyconfiguration-host
+ Host *types.Value `json:"Host,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-proxyconfiguration.html#cfn-kendra-datasource-proxyconfiguration-port
+ Port *types.Value `json:"Port"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ProxyConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ProxyConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_s3datasourceconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_s3datasourceconfiguration.go
new file mode 100644
index 0000000000..ac00467299
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_s3datasourceconfiguration.go
@@ -0,0 +1,62 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_S3DataSourceConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.S3DataSourceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html
+type DataSource_S3DataSourceConfiguration struct {
+
+ // AccessControlListConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html#cfn-kendra-datasource-s3datasourceconfiguration-accesscontrollistconfiguration
+ AccessControlListConfiguration *DataSource_AccessControlListConfiguration `json:"AccessControlListConfiguration,omitempty"`
+
+ // BucketName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html#cfn-kendra-datasource-s3datasourceconfiguration-bucketname
+ BucketName *types.Value `json:"BucketName,omitempty"`
+
+ // DocumentsMetadataConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html#cfn-kendra-datasource-s3datasourceconfiguration-documentsmetadataconfiguration
+ DocumentsMetadataConfiguration *DataSource_DocumentsMetadataConfiguration `json:"DocumentsMetadataConfiguration,omitempty"`
+
+ // ExclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html#cfn-kendra-datasource-s3datasourceconfiguration-exclusionpatterns
+ ExclusionPatterns *types.Value `json:"ExclusionPatterns,omitempty"`
+
+ // InclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html#cfn-kendra-datasource-s3datasourceconfiguration-inclusionpatterns
+ InclusionPatterns *types.Value `json:"InclusionPatterns,omitempty"`
+
+ // InclusionPrefixes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html#cfn-kendra-datasource-s3datasourceconfiguration-inclusionprefixes
+ InclusionPrefixes *types.Value `json:"InclusionPrefixes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_S3DataSourceConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.S3DataSourceConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_s3path.go b/goformation/cloudformation/kendra/aws-kendra-datasource_s3path.go
new file mode 100644
index 0000000000..77cd78ddf3
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_s3path.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_S3Path AWS CloudFormation Resource (AWS::Kendra::DataSource.S3Path)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3path.html
+type DataSource_S3Path struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3path.html#cfn-kendra-datasource-s3path-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3path.html#cfn-kendra-datasource-s3path-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_S3Path) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.S3Path"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcechatterfeedconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcechatterfeedconfiguration.go
new file mode 100644
index 0000000000..7314348e86
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcechatterfeedconfiguration.go
@@ -0,0 +1,52 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceChatterFeedConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceChatterFeedConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcechatterfeedconfiguration.html
+type DataSource_SalesforceChatterFeedConfiguration struct {
+
+ // DocumentDataFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcechatterfeedconfiguration.html#cfn-kendra-datasource-salesforcechatterfeedconfiguration-documentdatafieldname
+ DocumentDataFieldName *types.Value `json:"DocumentDataFieldName,omitempty"`
+
+ // DocumentTitleFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcechatterfeedconfiguration.html#cfn-kendra-datasource-salesforcechatterfeedconfiguration-documenttitlefieldname
+ DocumentTitleFieldName *types.Value `json:"DocumentTitleFieldName,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcechatterfeedconfiguration.html#cfn-kendra-datasource-salesforcechatterfeedconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // IncludeFilterTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcechatterfeedconfiguration.html#cfn-kendra-datasource-salesforcechatterfeedconfiguration-includefiltertypes
+ IncludeFilterTypes *types.Value `json:"IncludeFilterTypes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceChatterFeedConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceChatterFeedConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcechatterfeedincludefiltertypes.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcechatterfeedincludefiltertypes.go
new file mode 100644
index 0000000000..5cc570478f
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcechatterfeedincludefiltertypes.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceChatterFeedIncludeFilterTypes AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceChatterFeedIncludeFilterTypes)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcechatterfeedincludefiltertypes.html
+type DataSource_SalesforceChatterFeedIncludeFilterTypes struct {
+
+ // SalesforceChatterFeedIncludeFilterTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcechatterfeedincludefiltertypes.html#cfn-kendra-datasource-salesforcechatterfeedincludefiltertypes-salesforcechatterfeedincludefiltertypes
+ SalesforceChatterFeedIncludeFilterTypes *types.Value `json:"SalesforceChatterFeedIncludeFilterTypes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceChatterFeedIncludeFilterTypes) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceChatterFeedIncludeFilterTypes"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceconfiguration.go
new file mode 100644
index 0000000000..8e5daf4efa
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceconfiguration.go
@@ -0,0 +1,77 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html
+type DataSource_SalesforceConfiguration struct {
+
+ // ChatterFeedConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-chatterfeedconfiguration
+ ChatterFeedConfiguration *DataSource_SalesforceChatterFeedConfiguration `json:"ChatterFeedConfiguration,omitempty"`
+
+ // CrawlAttachments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-crawlattachments
+ CrawlAttachments *types.Value `json:"CrawlAttachments,omitempty"`
+
+ // ExcludeAttachmentFilePatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-excludeattachmentfilepatterns
+ ExcludeAttachmentFilePatterns *types.Value `json:"ExcludeAttachmentFilePatterns,omitempty"`
+
+ // IncludeAttachmentFilePatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-includeattachmentfilepatterns
+ IncludeAttachmentFilePatterns *types.Value `json:"IncludeAttachmentFilePatterns,omitempty"`
+
+ // KnowledgeArticleConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-knowledgearticleconfiguration
+ KnowledgeArticleConfiguration *DataSource_SalesforceKnowledgeArticleConfiguration `json:"KnowledgeArticleConfiguration,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // ServerUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-serverurl
+ ServerUrl *types.Value `json:"ServerUrl,omitempty"`
+
+ // StandardObjectAttachmentConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-standardobjectattachmentconfiguration
+ StandardObjectAttachmentConfiguration *DataSource_SalesforceStandardObjectAttachmentConfiguration `json:"StandardObjectAttachmentConfiguration,omitempty"`
+
+ // StandardObjectConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html#cfn-kendra-datasource-salesforceconfiguration-standardobjectconfigurations
+ StandardObjectConfigurations []DataSource_SalesforceStandardObjectConfiguration `json:"StandardObjectConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcecustomknowledgearticletypeconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcecustomknowledgearticletypeconfiguration.go
new file mode 100644
index 0000000000..8092a7ea4e
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcecustomknowledgearticletypeconfiguration.go
@@ -0,0 +1,52 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceCustomKnowledgeArticleTypeConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceCustomKnowledgeArticleTypeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration.html
+type DataSource_SalesforceCustomKnowledgeArticleTypeConfiguration struct {
+
+ // DocumentDataFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration.html#cfn-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration-documentdatafieldname
+ DocumentDataFieldName *types.Value `json:"DocumentDataFieldName,omitempty"`
+
+ // DocumentTitleFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration.html#cfn-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration-documenttitlefieldname
+ DocumentTitleFieldName *types.Value `json:"DocumentTitleFieldName,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration.html#cfn-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration.html#cfn-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceCustomKnowledgeArticleTypeConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceCustomKnowledgeArticleTypeConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcecustomknowledgearticletypeconfigurationlist.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcecustomknowledgearticletypeconfigurationlist.go
new file mode 100644
index 0000000000..f2f550526d
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcecustomknowledgearticletypeconfigurationlist.go
@@ -0,0 +1,35 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceCustomKnowledgeArticleTypeConfigurationList AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceCustomKnowledgeArticleTypeConfigurationList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcecustomknowledgearticletypeconfigurationlist.html
+type DataSource_SalesforceCustomKnowledgeArticleTypeConfigurationList struct {
+
+ // SalesforceCustomKnowledgeArticleTypeConfigurationList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcecustomknowledgearticletypeconfigurationlist.html#cfn-kendra-datasource-salesforcecustomknowledgearticletypeconfigurationlist-salesforcecustomknowledgearticletypeconfigurationlist
+ SalesforceCustomKnowledgeArticleTypeConfigurationList []DataSource_SalesforceCustomKnowledgeArticleTypeConfiguration `json:"SalesforceCustomKnowledgeArticleTypeConfigurationList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceCustomKnowledgeArticleTypeConfigurationList) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceCustomKnowledgeArticleTypeConfigurationList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceknowledgearticleconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceknowledgearticleconfiguration.go
new file mode 100644
index 0000000000..632a406efc
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceknowledgearticleconfiguration.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceKnowledgeArticleConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceKnowledgeArticleConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceknowledgearticleconfiguration.html
+type DataSource_SalesforceKnowledgeArticleConfiguration struct {
+
+ // CustomKnowledgeArticleTypeConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceknowledgearticleconfiguration.html#cfn-kendra-datasource-salesforceknowledgearticleconfiguration-customknowledgearticletypeconfigurations
+ CustomKnowledgeArticleTypeConfigurations []DataSource_SalesforceCustomKnowledgeArticleTypeConfiguration `json:"CustomKnowledgeArticleTypeConfigurations,omitempty"`
+
+ // IncludedStates AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceknowledgearticleconfiguration.html#cfn-kendra-datasource-salesforceknowledgearticleconfiguration-includedstates
+ IncludedStates *types.Value `json:"IncludedStates,omitempty"`
+
+ // StandardKnowledgeArticleTypeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceknowledgearticleconfiguration.html#cfn-kendra-datasource-salesforceknowledgearticleconfiguration-standardknowledgearticletypeconfiguration
+ StandardKnowledgeArticleTypeConfiguration *DataSource_SalesforceStandardKnowledgeArticleTypeConfiguration `json:"StandardKnowledgeArticleTypeConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceKnowledgeArticleConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceKnowledgeArticleConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceknowledgearticlestatelist.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceknowledgearticlestatelist.go
new file mode 100644
index 0000000000..ae5fe72f23
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforceknowledgearticlestatelist.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceKnowledgeArticleStateList AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceKnowledgeArticleStateList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceknowledgearticlestatelist.html
+type DataSource_SalesforceKnowledgeArticleStateList struct {
+
+ // SalesforceKnowledgeArticleStateList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceknowledgearticlestatelist.html#cfn-kendra-datasource-salesforceknowledgearticlestatelist-salesforceknowledgearticlestatelist
+ SalesforceKnowledgeArticleStateList *types.Value `json:"SalesforceKnowledgeArticleStateList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceKnowledgeArticleStateList) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceKnowledgeArticleStateList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardknowledgearticletypeconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardknowledgearticletypeconfiguration.go
new file mode 100644
index 0000000000..f8a708c895
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardknowledgearticletypeconfiguration.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceStandardKnowledgeArticleTypeConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceStandardKnowledgeArticleTypeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardknowledgearticletypeconfiguration.html
+type DataSource_SalesforceStandardKnowledgeArticleTypeConfiguration struct {
+
+ // DocumentDataFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardknowledgearticletypeconfiguration.html#cfn-kendra-datasource-salesforcestandardknowledgearticletypeconfiguration-documentdatafieldname
+ DocumentDataFieldName *types.Value `json:"DocumentDataFieldName,omitempty"`
+
+ // DocumentTitleFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardknowledgearticletypeconfiguration.html#cfn-kendra-datasource-salesforcestandardknowledgearticletypeconfiguration-documenttitlefieldname
+ DocumentTitleFieldName *types.Value `json:"DocumentTitleFieldName,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardknowledgearticletypeconfiguration.html#cfn-kendra-datasource-salesforcestandardknowledgearticletypeconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceStandardKnowledgeArticleTypeConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceStandardKnowledgeArticleTypeConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectattachmentconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectattachmentconfiguration.go
new file mode 100644
index 0000000000..4ce0967701
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectattachmentconfiguration.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceStandardObjectAttachmentConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceStandardObjectAttachmentConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectattachmentconfiguration.html
+type DataSource_SalesforceStandardObjectAttachmentConfiguration struct {
+
+ // DocumentTitleFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectattachmentconfiguration.html#cfn-kendra-datasource-salesforcestandardobjectattachmentconfiguration-documenttitlefieldname
+ DocumentTitleFieldName *types.Value `json:"DocumentTitleFieldName,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectattachmentconfiguration.html#cfn-kendra-datasource-salesforcestandardobjectattachmentconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceStandardObjectAttachmentConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceStandardObjectAttachmentConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectconfiguration.go
new file mode 100644
index 0000000000..78f1514e39
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectconfiguration.go
@@ -0,0 +1,52 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceStandardObjectConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceStandardObjectConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectconfiguration.html
+type DataSource_SalesforceStandardObjectConfiguration struct {
+
+ // DocumentDataFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectconfiguration.html#cfn-kendra-datasource-salesforcestandardobjectconfiguration-documentdatafieldname
+ DocumentDataFieldName *types.Value `json:"DocumentDataFieldName,omitempty"`
+
+ // DocumentTitleFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectconfiguration.html#cfn-kendra-datasource-salesforcestandardobjectconfiguration-documenttitlefieldname
+ DocumentTitleFieldName *types.Value `json:"DocumentTitleFieldName,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectconfiguration.html#cfn-kendra-datasource-salesforcestandardobjectconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectconfiguration.html#cfn-kendra-datasource-salesforcestandardobjectconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceStandardObjectConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceStandardObjectConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectconfigurationlist.go b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectconfigurationlist.go
new file mode 100644
index 0000000000..9a03ed1927
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_salesforcestandardobjectconfigurationlist.go
@@ -0,0 +1,35 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SalesforceStandardObjectConfigurationList AWS CloudFormation Resource (AWS::Kendra::DataSource.SalesforceStandardObjectConfigurationList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectconfigurationlist.html
+type DataSource_SalesforceStandardObjectConfigurationList struct {
+
+ // SalesforceStandardObjectConfigurationList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectconfigurationlist.html#cfn-kendra-datasource-salesforcestandardobjectconfigurationlist-salesforcestandardobjectconfigurationlist
+ SalesforceStandardObjectConfigurationList []DataSource_SalesforceStandardObjectConfiguration `json:"SalesforceStandardObjectConfigurationList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SalesforceStandardObjectConfigurationList) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SalesforceStandardObjectConfigurationList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowconfiguration.go
new file mode 100644
index 0000000000..54d5c589a0
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowconfiguration.go
@@ -0,0 +1,62 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ServiceNowConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ServiceNowConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html
+type DataSource_ServiceNowConfiguration struct {
+
+ // AuthenticationType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html#cfn-kendra-datasource-servicenowconfiguration-authenticationtype
+ AuthenticationType *types.Value `json:"AuthenticationType,omitempty"`
+
+ // HostUrl AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html#cfn-kendra-datasource-servicenowconfiguration-hosturl
+ HostUrl *types.Value `json:"HostUrl,omitempty"`
+
+ // KnowledgeArticleConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html#cfn-kendra-datasource-servicenowconfiguration-knowledgearticleconfiguration
+ KnowledgeArticleConfiguration *DataSource_ServiceNowKnowledgeArticleConfiguration `json:"KnowledgeArticleConfiguration,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html#cfn-kendra-datasource-servicenowconfiguration-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // ServiceCatalogConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html#cfn-kendra-datasource-servicenowconfiguration-servicecatalogconfiguration
+ ServiceCatalogConfiguration *DataSource_ServiceNowServiceCatalogConfiguration `json:"ServiceCatalogConfiguration,omitempty"`
+
+ // ServiceNowBuildVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html#cfn-kendra-datasource-servicenowconfiguration-servicenowbuildversion
+ ServiceNowBuildVersion *types.Value `json:"ServiceNowBuildVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ServiceNowConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ServiceNowConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowknowledgearticleconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowknowledgearticleconfiguration.go
new file mode 100644
index 0000000000..82b2e40403
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowknowledgearticleconfiguration.go
@@ -0,0 +1,67 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ServiceNowKnowledgeArticleConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ServiceNowKnowledgeArticleConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html
+type DataSource_ServiceNowKnowledgeArticleConfiguration struct {
+
+ // CrawlAttachments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-crawlattachments
+ CrawlAttachments *types.Value `json:"CrawlAttachments,omitempty"`
+
+ // DocumentDataFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-documentdatafieldname
+ DocumentDataFieldName *types.Value `json:"DocumentDataFieldName,omitempty"`
+
+ // DocumentTitleFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-documenttitlefieldname
+ DocumentTitleFieldName *types.Value `json:"DocumentTitleFieldName,omitempty"`
+
+ // ExcludeAttachmentFilePatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-excludeattachmentfilepatterns
+ ExcludeAttachmentFilePatterns *types.Value `json:"ExcludeAttachmentFilePatterns,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // FilterQuery AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-filterquery
+ FilterQuery *types.Value `json:"FilterQuery,omitempty"`
+
+ // IncludeAttachmentFilePatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html#cfn-kendra-datasource-servicenowknowledgearticleconfiguration-includeattachmentfilepatterns
+ IncludeAttachmentFilePatterns *types.Value `json:"IncludeAttachmentFilePatterns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ServiceNowKnowledgeArticleConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ServiceNowKnowledgeArticleConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowservicecatalogconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowservicecatalogconfiguration.go
new file mode 100644
index 0000000000..8d3c3d0cbf
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_servicenowservicecatalogconfiguration.go
@@ -0,0 +1,62 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_ServiceNowServiceCatalogConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.ServiceNowServiceCatalogConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowservicecatalogconfiguration.html
+type DataSource_ServiceNowServiceCatalogConfiguration struct {
+
+ // CrawlAttachments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowservicecatalogconfiguration.html#cfn-kendra-datasource-servicenowservicecatalogconfiguration-crawlattachments
+ CrawlAttachments *types.Value `json:"CrawlAttachments,omitempty"`
+
+ // DocumentDataFieldName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowservicecatalogconfiguration.html#cfn-kendra-datasource-servicenowservicecatalogconfiguration-documentdatafieldname
+ DocumentDataFieldName *types.Value `json:"DocumentDataFieldName,omitempty"`
+
+ // DocumentTitleFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowservicecatalogconfiguration.html#cfn-kendra-datasource-servicenowservicecatalogconfiguration-documenttitlefieldname
+ DocumentTitleFieldName *types.Value `json:"DocumentTitleFieldName,omitempty"`
+
+ // ExcludeAttachmentFilePatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowservicecatalogconfiguration.html#cfn-kendra-datasource-servicenowservicecatalogconfiguration-excludeattachmentfilepatterns
+ ExcludeAttachmentFilePatterns *types.Value `json:"ExcludeAttachmentFilePatterns,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowservicecatalogconfiguration.html#cfn-kendra-datasource-servicenowservicecatalogconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // IncludeAttachmentFilePatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowservicecatalogconfiguration.html#cfn-kendra-datasource-servicenowservicecatalogconfiguration-includeattachmentfilepatterns
+ IncludeAttachmentFilePatterns *types.Value `json:"IncludeAttachmentFilePatterns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_ServiceNowServiceCatalogConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.ServiceNowServiceCatalogConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_sharepointconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_sharepointconfiguration.go
new file mode 100644
index 0000000000..b001738a34
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_sharepointconfiguration.go
@@ -0,0 +1,92 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SharePointConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SharePointConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html
+type DataSource_SharePointConfiguration struct {
+
+ // CrawlAttachments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-crawlattachments
+ CrawlAttachments *types.Value `json:"CrawlAttachments,omitempty"`
+
+ // DisableLocalGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-disablelocalgroups
+ DisableLocalGroups *types.Value `json:"DisableLocalGroups,omitempty"`
+
+ // DocumentTitleFieldName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-documenttitlefieldname
+ DocumentTitleFieldName *types.Value `json:"DocumentTitleFieldName,omitempty"`
+
+ // ExclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-exclusionpatterns
+ ExclusionPatterns *types.Value `json:"ExclusionPatterns,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // InclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-inclusionpatterns
+ InclusionPatterns *types.Value `json:"InclusionPatterns,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // SharePointVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-sharepointversion
+ SharePointVersion *types.Value `json:"SharePointVersion,omitempty"`
+
+ // SslCertificateS3Path AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-sslcertificates3path
+ SslCertificateS3Path *DataSource_S3Path `json:"SslCertificateS3Path,omitempty"`
+
+ // Urls AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-urls
+ Urls *types.Value `json:"Urls,omitempty"`
+
+ // UseChangeLog AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-usechangelog
+ UseChangeLog *types.Value `json:"UseChangeLog,omitempty"`
+
+ // VpcConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html#cfn-kendra-datasource-sharepointconfiguration-vpcconfiguration
+ VpcConfiguration *DataSource_DataSourceVpcConfiguration `json:"VpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SharePointConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SharePointConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_sqlconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_sqlconfiguration.go
new file mode 100644
index 0000000000..29635e633b
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_sqlconfiguration.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_SqlConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.SqlConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sqlconfiguration.html
+type DataSource_SqlConfiguration struct {
+
+ // QueryIdentifiersEnclosingOption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sqlconfiguration.html#cfn-kendra-datasource-sqlconfiguration-queryidentifiersenclosingoption
+ QueryIdentifiersEnclosingOption *types.Value `json:"QueryIdentifiersEnclosingOption,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_SqlConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.SqlConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_taglist.go b/goformation/cloudformation/kendra/aws-kendra-datasource_taglist.go
new file mode 100644
index 0000000000..2ad0b014d0
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_taglist.go
@@ -0,0 +1,36 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_TagList AWS CloudFormation Resource (AWS::Kendra::DataSource.TagList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-taglist.html
+type DataSource_TagList struct {
+
+ // TagList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-taglist.html#cfn-kendra-datasource-taglist-taglist
+ TagList []cloudformation.Tag `json:"TagList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_TagList) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.TagList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerauthenticationconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerauthenticationconfiguration.go
new file mode 100644
index 0000000000..a9285451fb
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerauthenticationconfiguration.go
@@ -0,0 +1,35 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_WebCrawlerAuthenticationConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerauthenticationconfiguration.html
+type DataSource_WebCrawlerAuthenticationConfiguration struct {
+
+ // BasicAuthentication AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerauthenticationconfiguration.html#cfn-kendra-datasource-webcrawlerauthenticationconfiguration-basicauthentication
+ BasicAuthentication []DataSource_WebCrawlerBasicAuthentication `json:"BasicAuthentication,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_WebCrawlerAuthenticationConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerbasicauthentication.go b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerbasicauthentication.go
new file mode 100644
index 0000000000..097406d30f
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerbasicauthentication.go
@@ -0,0 +1,47 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_WebCrawlerBasicAuthentication AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerBasicAuthentication)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerbasicauthentication.html
+type DataSource_WebCrawlerBasicAuthentication struct {
+
+ // Credentials AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerbasicauthentication.html#cfn-kendra-datasource-webcrawlerbasicauthentication-credentials
+ Credentials *types.Value `json:"Credentials,omitempty"`
+
+ // Host AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerbasicauthentication.html#cfn-kendra-datasource-webcrawlerbasicauthentication-host
+ Host *types.Value `json:"Host,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerbasicauthentication.html#cfn-kendra-datasource-webcrawlerbasicauthentication-port
+ Port *types.Value `json:"Port"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_WebCrawlerBasicAuthentication) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.WebCrawlerBasicAuthentication"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerconfiguration.go
new file mode 100644
index 0000000000..e4bcb493fc
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerconfiguration.go
@@ -0,0 +1,77 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_WebCrawlerConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html
+type DataSource_WebCrawlerConfiguration struct {
+
+ // AuthenticationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-authenticationconfiguration
+ AuthenticationConfiguration *DataSource_WebCrawlerAuthenticationConfiguration `json:"AuthenticationConfiguration,omitempty"`
+
+ // CrawlDepth AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-crawldepth
+ CrawlDepth *types.Value `json:"CrawlDepth,omitempty"`
+
+ // MaxContentSizePerPageInMegaBytes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-maxcontentsizeperpageinmegabytes
+ MaxContentSizePerPageInMegaBytes *types.Value `json:"MaxContentSizePerPageInMegaBytes,omitempty"`
+
+ // MaxLinksPerPage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-maxlinksperpage
+ MaxLinksPerPage *types.Value `json:"MaxLinksPerPage,omitempty"`
+
+ // MaxUrlsPerMinuteCrawlRate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-maxurlsperminutecrawlrate
+ MaxUrlsPerMinuteCrawlRate *types.Value `json:"MaxUrlsPerMinuteCrawlRate,omitempty"`
+
+ // ProxyConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-proxyconfiguration
+ ProxyConfiguration *DataSource_ProxyConfiguration `json:"ProxyConfiguration,omitempty"`
+
+ // UrlExclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-urlexclusionpatterns
+ UrlExclusionPatterns *types.Value `json:"UrlExclusionPatterns,omitempty"`
+
+ // UrlInclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-urlinclusionpatterns
+ UrlInclusionPatterns *types.Value `json:"UrlInclusionPatterns,omitempty"`
+
+ // Urls AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerconfiguration.html#cfn-kendra-datasource-webcrawlerconfiguration-urls
+ Urls *DataSource_WebCrawlerUrls `json:"Urls,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_WebCrawlerConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.WebCrawlerConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerseedurlconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerseedurlconfiguration.go
new file mode 100644
index 0000000000..f1efdf56f5
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerseedurlconfiguration.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_WebCrawlerSeedUrlConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerseedurlconfiguration.html
+type DataSource_WebCrawlerSeedUrlConfiguration struct {
+
+ // SeedUrls AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerseedurlconfiguration.html#cfn-kendra-datasource-webcrawlerseedurlconfiguration-seedurls
+ SeedUrls *types.Value `json:"SeedUrls,omitempty"`
+
+ // WebCrawlerMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerseedurlconfiguration.html#cfn-kendra-datasource-webcrawlerseedurlconfiguration-webcrawlermode
+ WebCrawlerMode *types.Value `json:"WebCrawlerMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_WebCrawlerSeedUrlConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlersitemapsconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlersitemapsconfiguration.go
new file mode 100644
index 0000000000..9e393912e5
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlersitemapsconfiguration.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_WebCrawlerSiteMapsConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlersitemapsconfiguration.html
+type DataSource_WebCrawlerSiteMapsConfiguration struct {
+
+ // SiteMaps AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlersitemapsconfiguration.html#cfn-kendra-datasource-webcrawlersitemapsconfiguration-sitemaps
+ SiteMaps *types.Value `json:"SiteMaps,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_WebCrawlerSiteMapsConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerurls.go b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerurls.go
new file mode 100644
index 0000000000..8b5c0f0e88
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_webcrawlerurls.go
@@ -0,0 +1,40 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_WebCrawlerUrls AWS CloudFormation Resource (AWS::Kendra::DataSource.WebCrawlerUrls)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerurls.html
+type DataSource_WebCrawlerUrls struct {
+
+ // SeedUrlConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerurls.html#cfn-kendra-datasource-webcrawlerurls-seedurlconfiguration
+ SeedUrlConfiguration *DataSource_WebCrawlerSeedUrlConfiguration `json:"SeedUrlConfiguration,omitempty"`
+
+ // SiteMapsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-webcrawlerurls.html#cfn-kendra-datasource-webcrawlerurls-sitemapsconfiguration
+ SiteMapsConfiguration *DataSource_WebCrawlerSiteMapsConfiguration `json:"SiteMapsConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_WebCrawlerUrls) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.WebCrawlerUrls"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-datasource_workdocsconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-datasource_workdocsconfiguration.go
new file mode 100644
index 0000000000..3099997d34
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-datasource_workdocsconfiguration.go
@@ -0,0 +1,62 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataSource_WorkDocsConfiguration AWS CloudFormation Resource (AWS::Kendra::DataSource.WorkDocsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html
+type DataSource_WorkDocsConfiguration struct {
+
+ // CrawlComments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-crawlcomments
+ CrawlComments *types.Value `json:"CrawlComments,omitempty"`
+
+ // ExclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-exclusionpatterns
+ ExclusionPatterns *types.Value `json:"ExclusionPatterns,omitempty"`
+
+ // FieldMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-fieldmappings
+ FieldMappings []DataSource_DataSourceToIndexFieldMapping `json:"FieldMappings,omitempty"`
+
+ // InclusionPatterns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-inclusionpatterns
+ InclusionPatterns *types.Value `json:"InclusionPatterns,omitempty"`
+
+ // OrganizationId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-organizationid
+ OrganizationId *types.Value `json:"OrganizationId,omitempty"`
+
+ // UseChangeLog AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-workdocsconfiguration.html#cfn-kendra-datasource-workdocsconfiguration-usechangelog
+ UseChangeLog *types.Value `json:"UseChangeLog,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataSource_WorkDocsConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::DataSource.WorkDocsConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-faq.go b/goformation/cloudformation/kendra/aws-kendra-faq.go
new file mode 100644
index 0000000000..f79699bf6b
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-faq.go
@@ -0,0 +1,139 @@
+package kendra
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Faq AWS CloudFormation Resource (AWS::Kendra::Faq)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html
+type Faq struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FileFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-fileformat
+ FileFormat *types.Value `json:"FileFormat,omitempty"`
+
+ // IndexId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-indexid
+ IndexId *types.Value `json:"IndexId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // S3Path AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-s3path
+ S3Path *Faq_S3Path `json:"S3Path,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html#cfn-kendra-faq-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Faq) AWSCloudFormationType() string {
+ return "AWS::Kendra::Faq"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Faq) MarshalJSON() ([]byte, error) {
+ type Properties Faq
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Faq) UnmarshalJSON(b []byte) error {
+ type Properties Faq
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Faq(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-faq_s3path.go b/goformation/cloudformation/kendra/aws-kendra-faq_s3path.go
new file mode 100644
index 0000000000..fbd99aa1eb
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-faq_s3path.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Faq_S3Path AWS CloudFormation Resource (AWS::Kendra::Faq.S3Path)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-faq-s3path.html
+type Faq_S3Path struct {
+
+ // Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-faq-s3path.html#cfn-kendra-faq-s3path-bucket
+ Bucket *types.Value `json:"Bucket,omitempty"`
+
+ // Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-faq-s3path.html#cfn-kendra-faq-s3path-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Faq_S3Path) AWSCloudFormationType() string {
+ return "AWS::Kendra::Faq.S3Path"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-faq_taglist.go b/goformation/cloudformation/kendra/aws-kendra-faq_taglist.go
new file mode 100644
index 0000000000..e62e8863dc
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-faq_taglist.go
@@ -0,0 +1,36 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Faq_TagList AWS CloudFormation Resource (AWS::Kendra::Faq.TagList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-faq-taglist.html
+type Faq_TagList struct {
+
+ // TagList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-faq-taglist.html#cfn-kendra-faq-taglist-taglist
+ TagList []cloudformation.Tag `json:"TagList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Faq_TagList) AWSCloudFormationType() string {
+ return "AWS::Kendra::Faq.TagList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index.go b/goformation/cloudformation/kendra/aws-kendra-index.go
new file mode 100644
index 0000000000..09c8988673
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index.go
@@ -0,0 +1,154 @@
+package kendra
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index AWS CloudFormation Resource (AWS::Kendra::Index)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html
+type Index struct {
+
+ // CapacityUnits AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-capacityunits
+ CapacityUnits *Index_CapacityUnitsConfiguration `json:"CapacityUnits,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // DocumentMetadataConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-documentmetadataconfigurations
+ DocumentMetadataConfigurations []Index_DocumentMetadataConfiguration `json:"DocumentMetadataConfigurations,omitempty"`
+
+ // Edition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-edition
+ Edition *types.Value `json:"Edition,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // ServerSideEncryptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-serversideencryptionconfiguration
+ ServerSideEncryptionConfiguration *Index_ServerSideEncryptionConfiguration `json:"ServerSideEncryptionConfiguration,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // UserContextPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-usercontextpolicy
+ UserContextPolicy *types.Value `json:"UserContextPolicy,omitempty"`
+
+ // UserTokenConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html#cfn-kendra-index-usertokenconfigurations
+ UserTokenConfigurations []Index_UserTokenConfiguration `json:"UserTokenConfigurations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Index) MarshalJSON() ([]byte, error) {
+ type Properties Index
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Index) UnmarshalJSON(b []byte) error {
+ type Properties Index
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Index(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_capacityunitsconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-index_capacityunitsconfiguration.go
new file mode 100644
index 0000000000..99e34420e6
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_capacityunitsconfiguration.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_CapacityUnitsConfiguration AWS CloudFormation Resource (AWS::Kendra::Index.CapacityUnitsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-capacityunitsconfiguration.html
+type Index_CapacityUnitsConfiguration struct {
+
+ // QueryCapacityUnits AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-capacityunitsconfiguration.html#cfn-kendra-index-capacityunitsconfiguration-querycapacityunits
+ QueryCapacityUnits *types.Value `json:"QueryCapacityUnits"`
+
+ // StorageCapacityUnits AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-capacityunitsconfiguration.html#cfn-kendra-index-capacityunitsconfiguration-storagecapacityunits
+ StorageCapacityUnits *types.Value `json:"StorageCapacityUnits"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_CapacityUnitsConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.CapacityUnitsConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_documentmetadataconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-index_documentmetadataconfiguration.go
new file mode 100644
index 0000000000..4f86621bb8
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_documentmetadataconfiguration.go
@@ -0,0 +1,52 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_DocumentMetadataConfiguration AWS CloudFormation Resource (AWS::Kendra::Index.DocumentMetadataConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-documentmetadataconfiguration.html
+type Index_DocumentMetadataConfiguration struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-documentmetadataconfiguration.html#cfn-kendra-index-documentmetadataconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Relevance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-documentmetadataconfiguration.html#cfn-kendra-index-documentmetadataconfiguration-relevance
+ Relevance *Index_Relevance `json:"Relevance,omitempty"`
+
+ // Search AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-documentmetadataconfiguration.html#cfn-kendra-index-documentmetadataconfiguration-search
+ Search *Index_Search `json:"Search,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-documentmetadataconfiguration.html#cfn-kendra-index-documentmetadataconfiguration-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_DocumentMetadataConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.DocumentMetadataConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_documentmetadataconfigurationlist.go b/goformation/cloudformation/kendra/aws-kendra-index_documentmetadataconfigurationlist.go
new file mode 100644
index 0000000000..b302044e91
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_documentmetadataconfigurationlist.go
@@ -0,0 +1,35 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_DocumentMetadataConfigurationList AWS CloudFormation Resource (AWS::Kendra::Index.DocumentMetadataConfigurationList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-documentmetadataconfigurationlist.html
+type Index_DocumentMetadataConfigurationList struct {
+
+ // DocumentMetadataConfigurationList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-documentmetadataconfigurationlist.html#cfn-kendra-index-documentmetadataconfigurationlist-documentmetadataconfigurationlist
+ DocumentMetadataConfigurationList []Index_DocumentMetadataConfiguration `json:"DocumentMetadataConfigurationList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_DocumentMetadataConfigurationList) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.DocumentMetadataConfigurationList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_jsontokentypeconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-index_jsontokentypeconfiguration.go
new file mode 100644
index 0000000000..6e5f0ee7d0
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_jsontokentypeconfiguration.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_JsonTokenTypeConfiguration AWS CloudFormation Resource (AWS::Kendra::Index.JsonTokenTypeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jsontokentypeconfiguration.html
+type Index_JsonTokenTypeConfiguration struct {
+
+ // GroupAttributeField AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jsontokentypeconfiguration.html#cfn-kendra-index-jsontokentypeconfiguration-groupattributefield
+ GroupAttributeField *types.Value `json:"GroupAttributeField,omitempty"`
+
+ // UserNameAttributeField AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jsontokentypeconfiguration.html#cfn-kendra-index-jsontokentypeconfiguration-usernameattributefield
+ UserNameAttributeField *types.Value `json:"UserNameAttributeField,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_JsonTokenTypeConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.JsonTokenTypeConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_jwttokentypeconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-index_jwttokentypeconfiguration.go
new file mode 100644
index 0000000000..9e4a133c1d
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_jwttokentypeconfiguration.go
@@ -0,0 +1,67 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_JwtTokenTypeConfiguration AWS CloudFormation Resource (AWS::Kendra::Index.JwtTokenTypeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html
+type Index_JwtTokenTypeConfiguration struct {
+
+ // ClaimRegex AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html#cfn-kendra-index-jwttokentypeconfiguration-claimregex
+ ClaimRegex *types.Value `json:"ClaimRegex,omitempty"`
+
+ // GroupAttributeField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html#cfn-kendra-index-jwttokentypeconfiguration-groupattributefield
+ GroupAttributeField *types.Value `json:"GroupAttributeField,omitempty"`
+
+ // Issuer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html#cfn-kendra-index-jwttokentypeconfiguration-issuer
+ Issuer *types.Value `json:"Issuer,omitempty"`
+
+ // KeyLocation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html#cfn-kendra-index-jwttokentypeconfiguration-keylocation
+ KeyLocation *types.Value `json:"KeyLocation,omitempty"`
+
+ // SecretManagerArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html#cfn-kendra-index-jwttokentypeconfiguration-secretmanagerarn
+ SecretManagerArn *types.Value `json:"SecretManagerArn,omitempty"`
+
+ // URL AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html#cfn-kendra-index-jwttokentypeconfiguration-url
+ URL *types.Value `json:"URL,omitempty"`
+
+ // UserNameAttributeField AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html#cfn-kendra-index-jwttokentypeconfiguration-usernameattributefield
+ UserNameAttributeField *types.Value `json:"UserNameAttributeField,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_JwtTokenTypeConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.JwtTokenTypeConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_relevance.go b/goformation/cloudformation/kendra/aws-kendra-index_relevance.go
new file mode 100644
index 0000000000..027c534f86
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_relevance.go
@@ -0,0 +1,57 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_Relevance AWS CloudFormation Resource (AWS::Kendra::Index.Relevance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html
+type Index_Relevance struct {
+
+ // Duration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-duration
+ Duration *types.Value `json:"Duration,omitempty"`
+
+ // Freshness AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-freshness
+ Freshness *types.Value `json:"Freshness,omitempty"`
+
+ // Importance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-importance
+ Importance *types.Value `json:"Importance,omitempty"`
+
+ // RankOrder AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-rankorder
+ RankOrder *types.Value `json:"RankOrder,omitempty"`
+
+ // ValueImportanceItems AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html#cfn-kendra-index-relevance-valueimportanceitems
+ ValueImportanceItems []Index_ValueImportanceItem `json:"ValueImportanceItems,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_Relevance) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.Relevance"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_search.go b/goformation/cloudformation/kendra/aws-kendra-index_search.go
new file mode 100644
index 0000000000..d69b58640d
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_search.go
@@ -0,0 +1,52 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_Search AWS CloudFormation Resource (AWS::Kendra::Index.Search)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-search.html
+type Index_Search struct {
+
+ // Displayable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-search.html#cfn-kendra-index-search-displayable
+ Displayable *types.Value `json:"Displayable,omitempty"`
+
+ // Facetable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-search.html#cfn-kendra-index-search-facetable
+ Facetable *types.Value `json:"Facetable,omitempty"`
+
+ // Searchable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-search.html#cfn-kendra-index-search-searchable
+ Searchable *types.Value `json:"Searchable,omitempty"`
+
+ // Sortable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-search.html#cfn-kendra-index-search-sortable
+ Sortable *types.Value `json:"Sortable,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_Search) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.Search"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_serversideencryptionconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-index_serversideencryptionconfiguration.go
new file mode 100644
index 0000000000..464d83c763
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_serversideencryptionconfiguration.go
@@ -0,0 +1,37 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_ServerSideEncryptionConfiguration AWS CloudFormation Resource (AWS::Kendra::Index.ServerSideEncryptionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-serversideencryptionconfiguration.html
+type Index_ServerSideEncryptionConfiguration struct {
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-serversideencryptionconfiguration.html#cfn-kendra-index-serversideencryptionconfiguration-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_ServerSideEncryptionConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.ServerSideEncryptionConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_taglist.go b/goformation/cloudformation/kendra/aws-kendra-index_taglist.go
new file mode 100644
index 0000000000..80667f8061
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_taglist.go
@@ -0,0 +1,36 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_TagList AWS CloudFormation Resource (AWS::Kendra::Index.TagList)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-taglist.html
+type Index_TagList struct {
+
+ // TagList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-taglist.html#cfn-kendra-index-taglist-taglist
+ TagList []cloudformation.Tag `json:"TagList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_TagList) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.TagList"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_usertokenconfiguration.go b/goformation/cloudformation/kendra/aws-kendra-index_usertokenconfiguration.go
new file mode 100644
index 0000000000..55282ed6ab
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_usertokenconfiguration.go
@@ -0,0 +1,40 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_UserTokenConfiguration AWS CloudFormation Resource (AWS::Kendra::Index.UserTokenConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-usertokenconfiguration.html
+type Index_UserTokenConfiguration struct {
+
+ // JsonTokenTypeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-usertokenconfiguration.html#cfn-kendra-index-usertokenconfiguration-jsontokentypeconfiguration
+ JsonTokenTypeConfiguration *Index_JsonTokenTypeConfiguration `json:"JsonTokenTypeConfiguration,omitempty"`
+
+ // JwtTokenTypeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-usertokenconfiguration.html#cfn-kendra-index-usertokenconfiguration-jwttokentypeconfiguration
+ JwtTokenTypeConfiguration *Index_JwtTokenTypeConfiguration `json:"JwtTokenTypeConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_UserTokenConfiguration) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.UserTokenConfiguration"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_valueimportanceitem.go b/goformation/cloudformation/kendra/aws-kendra-index_valueimportanceitem.go
new file mode 100644
index 0000000000..6c7b861af3
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_valueimportanceitem.go
@@ -0,0 +1,42 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_ValueImportanceItem AWS CloudFormation Resource (AWS::Kendra::Index.ValueImportanceItem)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-valueimportanceitem.html
+type Index_ValueImportanceItem struct {
+
+ // Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-valueimportanceitem.html#cfn-kendra-index-valueimportanceitem-key
+ Key *types.Value `json:"Key,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-valueimportanceitem.html#cfn-kendra-index-valueimportanceitem-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_ValueImportanceItem) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.ValueImportanceItem"
+}
diff --git a/goformation/cloudformation/kendra/aws-kendra-index_valueimportanceitems.go b/goformation/cloudformation/kendra/aws-kendra-index_valueimportanceitems.go
new file mode 100644
index 0000000000..e46f758188
--- /dev/null
+++ b/goformation/cloudformation/kendra/aws-kendra-index_valueimportanceitems.go
@@ -0,0 +1,35 @@
+package kendra
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Index_ValueImportanceItems AWS CloudFormation Resource (AWS::Kendra::Index.ValueImportanceItems)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-valueimportanceitems.html
+type Index_ValueImportanceItems struct {
+
+ // ValueImportanceItems AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-valueimportanceitems.html#cfn-kendra-index-valueimportanceitems-valueimportanceitems
+ ValueImportanceItems []Index_ValueImportanceItem `json:"ValueImportanceItems,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Index_ValueImportanceItems) AWSCloudFormationType() string {
+ return "AWS::Kendra::Index.ValueImportanceItems"
+}
diff --git a/goformation/cloudformation/kinesis/aws-kinesis-stream.go b/goformation/cloudformation/kinesis/aws-kinesis-stream.go
new file mode 100644
index 0000000000..3de5d31e31
--- /dev/null
+++ b/goformation/cloudformation/kinesis/aws-kinesis-stream.go
@@ -0,0 +1,129 @@
+package kinesis
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stream AWS CloudFormation Resource (AWS::Kinesis::Stream)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html
+type Stream struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RetentionPeriodHours AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-retentionperiodhours
+ RetentionPeriodHours *types.Value `json:"RetentionPeriodHours,omitempty"`
+
+ // ShardCount AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-shardcount
+ ShardCount *types.Value `json:"ShardCount"`
+
+ // StreamEncryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-streamencryption
+ StreamEncryption *Stream_StreamEncryption `json:"StreamEncryption,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stream) AWSCloudFormationType() string {
+ return "AWS::Kinesis::Stream"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Stream) MarshalJSON() ([]byte, error) {
+ type Properties Stream
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Stream) UnmarshalJSON(b []byte) error {
+ type Properties Stream
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Stream(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesis/aws-kinesis-stream_streamencryption.go b/goformation/cloudformation/kinesis/aws-kinesis-stream_streamencryption.go
new file mode 100644
index 0000000000..136f7ab6bd
--- /dev/null
+++ b/goformation/cloudformation/kinesis/aws-kinesis-stream_streamencryption.go
@@ -0,0 +1,42 @@
+package kinesis
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Stream_StreamEncryption AWS CloudFormation Resource (AWS::Kinesis::Stream.StreamEncryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html
+type Stream_StreamEncryption struct {
+
+ // EncryptionType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html#cfn-kinesis-stream-streamencryption-encryptiontype
+ EncryptionType *types.Value `json:"EncryptionType,omitempty"`
+
+ // KeyId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html#cfn-kinesis-stream-streamencryption-keyid
+ KeyId *types.Value `json:"KeyId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Stream_StreamEncryption) AWSCloudFormationType() string {
+ return "AWS::Kinesis::Stream.StreamEncryption"
+}
diff --git a/goformation/cloudformation/kinesis/aws-kinesis-streamconsumer.go b/goformation/cloudformation/kinesis/aws-kinesis-streamconsumer.go
new file mode 100644
index 0000000000..eaf31edadf
--- /dev/null
+++ b/goformation/cloudformation/kinesis/aws-kinesis-streamconsumer.go
@@ -0,0 +1,113 @@
+package kinesis
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StreamConsumer AWS CloudFormation Resource (AWS::Kinesis::StreamConsumer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html
+type StreamConsumer struct {
+
+ // ConsumerName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html#cfn-kinesis-streamconsumer-consumername
+ ConsumerName *types.Value `json:"ConsumerName,omitempty"`
+
+ // StreamARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html#cfn-kinesis-streamconsumer-streamarn
+ StreamARN *types.Value `json:"StreamARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StreamConsumer) AWSCloudFormationType() string {
+ return "AWS::Kinesis::StreamConsumer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StreamConsumer) MarshalJSON() ([]byte, error) {
+ type Properties StreamConsumer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StreamConsumer) UnmarshalJSON(b []byte) error {
+ type Properties StreamConsumer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StreamConsumer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application.go
new file mode 100644
index 0000000000..f7b3c286a1
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application.go
@@ -0,0 +1,123 @@
+package kinesisanalytics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application AWS CloudFormation Resource (AWS::KinesisAnalytics::Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html
+type Application struct {
+
+ // ApplicationCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html#cfn-kinesisanalytics-application-applicationcode
+ ApplicationCode *types.Value `json:"ApplicationCode,omitempty"`
+
+ // ApplicationDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html#cfn-kinesisanalytics-application-applicationdescription
+ ApplicationDescription *types.Value `json:"ApplicationDescription,omitempty"`
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html#cfn-kinesisanalytics-application-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // Inputs AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-application.html#cfn-kinesisanalytics-application-inputs
+ Inputs []Application_Input `json:"Inputs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Application) MarshalJSON() ([]byte, error) {
+ type Properties Application
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Application) UnmarshalJSON(b []byte) error {
+ type Properties Application
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Application(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_csvmappingparameters.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_csvmappingparameters.go
new file mode 100644
index 0000000000..d485dee31f
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_csvmappingparameters.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.CSVMappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-csvmappingparameters.html
+type Application_CSVMappingParameters struct {
+
+ // RecordColumnDelimiter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-csvmappingparameters.html#cfn-kinesisanalytics-application-csvmappingparameters-recordcolumndelimiter
+ RecordColumnDelimiter *types.Value `json:"RecordColumnDelimiter,omitempty"`
+
+ // RecordRowDelimiter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-csvmappingparameters.html#cfn-kinesisanalytics-application-csvmappingparameters-recordrowdelimiter
+ RecordRowDelimiter *types.Value `json:"RecordRowDelimiter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_CSVMappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.CSVMappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_input.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_input.go
new file mode 100644
index 0000000000..0e0ce2060b
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_input.go
@@ -0,0 +1,62 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_Input AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.Input)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html
+type Application_Input struct {
+
+ // InputParallelism AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-inputparallelism
+ InputParallelism *Application_InputParallelism `json:"InputParallelism,omitempty"`
+
+ // InputProcessingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-inputprocessingconfiguration
+ InputProcessingConfiguration *Application_InputProcessingConfiguration `json:"InputProcessingConfiguration,omitempty"`
+
+ // InputSchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-inputschema
+ InputSchema *Application_InputSchema `json:"InputSchema,omitempty"`
+
+ // KinesisFirehoseInput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-kinesisfirehoseinput
+ KinesisFirehoseInput *Application_KinesisFirehoseInput `json:"KinesisFirehoseInput,omitempty"`
+
+ // KinesisStreamsInput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-kinesisstreamsinput
+ KinesisStreamsInput *Application_KinesisStreamsInput `json:"KinesisStreamsInput,omitempty"`
+
+ // NamePrefix AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html#cfn-kinesisanalytics-application-input-nameprefix
+ NamePrefix *types.Value `json:"NamePrefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_Input) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.Input"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputlambdaprocessor.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputlambdaprocessor.go
new file mode 100644
index 0000000000..1e1482a38e
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputlambdaprocessor.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_InputLambdaProcessor AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.InputLambdaProcessor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputlambdaprocessor.html
+type Application_InputLambdaProcessor struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputlambdaprocessor.html#cfn-kinesisanalytics-application-inputlambdaprocessor-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputlambdaprocessor.html#cfn-kinesisanalytics-application-inputlambdaprocessor-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_InputLambdaProcessor) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.InputLambdaProcessor"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputparallelism.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputparallelism.go
new file mode 100644
index 0000000000..de9833d6f9
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputparallelism.go
@@ -0,0 +1,37 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_InputParallelism AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.InputParallelism)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputparallelism.html
+type Application_InputParallelism struct {
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputparallelism.html#cfn-kinesisanalytics-application-inputparallelism-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_InputParallelism) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.InputParallelism"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputprocessingconfiguration.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputprocessingconfiguration.go
new file mode 100644
index 0000000000..8e9a9d1067
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputprocessingconfiguration.go
@@ -0,0 +1,35 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_InputProcessingConfiguration AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.InputProcessingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputprocessingconfiguration.html
+type Application_InputProcessingConfiguration struct {
+
+ // InputLambdaProcessor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputprocessingconfiguration.html#cfn-kinesisanalytics-application-inputprocessingconfiguration-inputlambdaprocessor
+ InputLambdaProcessor *Application_InputLambdaProcessor `json:"InputLambdaProcessor,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_InputProcessingConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.InputProcessingConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputschema.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputschema.go
new file mode 100644
index 0000000000..42719840a1
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_inputschema.go
@@ -0,0 +1,47 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_InputSchema AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.InputSchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html
+type Application_InputSchema struct {
+
+ // RecordColumns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html#cfn-kinesisanalytics-application-inputschema-recordcolumns
+ RecordColumns []Application_RecordColumn `json:"RecordColumns,omitempty"`
+
+ // RecordEncoding AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html#cfn-kinesisanalytics-application-inputschema-recordencoding
+ RecordEncoding *types.Value `json:"RecordEncoding,omitempty"`
+
+ // RecordFormat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputschema.html#cfn-kinesisanalytics-application-inputschema-recordformat
+ RecordFormat *Application_RecordFormat `json:"RecordFormat,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_InputSchema) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.InputSchema"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_jsonmappingparameters.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_jsonmappingparameters.go
new file mode 100644
index 0000000000..777168f541
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_jsonmappingparameters.go
@@ -0,0 +1,37 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.JSONMappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-jsonmappingparameters.html
+type Application_JSONMappingParameters struct {
+
+ // RecordRowPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-jsonmappingparameters.html#cfn-kinesisanalytics-application-jsonmappingparameters-recordrowpath
+ RecordRowPath *types.Value `json:"RecordRowPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_JSONMappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.JSONMappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_kinesisfirehoseinput.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_kinesisfirehoseinput.go
new file mode 100644
index 0000000000..7626fb3047
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_kinesisfirehoseinput.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_KinesisFirehoseInput AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.KinesisFirehoseInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisfirehoseinput.html
+type Application_KinesisFirehoseInput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisfirehoseinput.html#cfn-kinesisanalytics-application-kinesisfirehoseinput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisfirehoseinput.html#cfn-kinesisanalytics-application-kinesisfirehoseinput-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_KinesisFirehoseInput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.KinesisFirehoseInput"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_kinesisstreamsinput.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_kinesisstreamsinput.go
new file mode 100644
index 0000000000..2da175c69c
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_kinesisstreamsinput.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_KinesisStreamsInput AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.KinesisStreamsInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisstreamsinput.html
+type Application_KinesisStreamsInput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisstreamsinput.html#cfn-kinesisanalytics-application-kinesisstreamsinput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-kinesisstreamsinput.html#cfn-kinesisanalytics-application-kinesisstreamsinput-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_KinesisStreamsInput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.KinesisStreamsInput"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_mappingparameters.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_mappingparameters.go
new file mode 100644
index 0000000000..2d97ca4e47
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_mappingparameters.go
@@ -0,0 +1,40 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.MappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-mappingparameters.html
+type Application_MappingParameters struct {
+
+ // CSVMappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-mappingparameters.html#cfn-kinesisanalytics-application-mappingparameters-csvmappingparameters
+ CSVMappingParameters *Application_CSVMappingParameters `json:"CSVMappingParameters,omitempty"`
+
+ // JSONMappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-mappingparameters.html#cfn-kinesisanalytics-application-mappingparameters-jsonmappingparameters
+ JSONMappingParameters *Application_JSONMappingParameters `json:"JSONMappingParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_MappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.MappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_recordcolumn.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_recordcolumn.go
new file mode 100644
index 0000000000..c16eb978ee
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_recordcolumn.go
@@ -0,0 +1,47 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.RecordColumn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html
+type Application_RecordColumn struct {
+
+ // Mapping AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-mapping
+ Mapping *types.Value `json:"Mapping,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SqlType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-sqltype
+ SqlType *types.Value `json:"SqlType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_RecordColumn) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.RecordColumn"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_recordformat.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_recordformat.go
new file mode 100644
index 0000000000..aef1d14aab
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-application_recordformat.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalytics::Application.RecordFormat)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordformat.html
+type Application_RecordFormat struct {
+
+ // MappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordformat.html#cfn-kinesisanalytics-application-recordformat-mappingparameters
+ MappingParameters *Application_MappingParameters `json:"MappingParameters,omitempty"`
+
+ // RecordFormatType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordformat.html#cfn-kinesisanalytics-application-recordformat-recordformattype
+ RecordFormatType *types.Value `json:"RecordFormatType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_RecordFormat) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::Application.RecordFormat"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput.go
new file mode 100644
index 0000000000..ac89331f46
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput.go
@@ -0,0 +1,113 @@
+package kinesisanalytics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html
+type ApplicationOutput struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html#cfn-kinesisanalytics-applicationoutput-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // Output AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationoutput.html#cfn-kinesisanalytics-applicationoutput-output
+ Output *ApplicationOutput_Output `json:"Output,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationOutput"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApplicationOutput) MarshalJSON() ([]byte, error) {
+ type Properties ApplicationOutput
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApplicationOutput) UnmarshalJSON(b []byte) error {
+ type Properties ApplicationOutput
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApplicationOutput(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_destinationschema.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_destinationschema.go
new file mode 100644
index 0000000000..93c1edf282
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_destinationschema.go
@@ -0,0 +1,37 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_DestinationSchema AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-destinationschema.html
+type ApplicationOutput_DestinationSchema struct {
+
+ // RecordFormatType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-destinationschema.html#cfn-kinesisanalytics-applicationoutput-destinationschema-recordformattype
+ RecordFormatType *types.Value `json:"RecordFormatType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_DestinationSchema) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go
new file mode 100644
index 0000000000..297feba382
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_kinesisfirehoseoutput.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_KinesisFirehoseOutput AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisfirehoseoutput.html
+type ApplicationOutput_KinesisFirehoseOutput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisfirehoseoutput.html#cfn-kinesisanalytics-applicationoutput-kinesisfirehoseoutput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisfirehoseoutput.html#cfn-kinesisanalytics-applicationoutput-kinesisfirehoseoutput-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_KinesisFirehoseOutput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go
new file mode 100644
index 0000000000..b7c82ea5ea
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_kinesisstreamsoutput.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_KinesisStreamsOutput AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisstreamsoutput.html
+type ApplicationOutput_KinesisStreamsOutput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisstreamsoutput.html#cfn-kinesisanalytics-applicationoutput-kinesisstreamsoutput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-kinesisstreamsoutput.html#cfn-kinesisanalytics-applicationoutput-kinesisstreamsoutput-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_KinesisStreamsOutput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_lambdaoutput.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_lambdaoutput.go
new file mode 100644
index 0000000000..31f9f43026
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_lambdaoutput.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_LambdaOutput AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-lambdaoutput.html
+type ApplicationOutput_LambdaOutput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-lambdaoutput.html#cfn-kinesisanalytics-applicationoutput-lambdaoutput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-lambdaoutput.html#cfn-kinesisanalytics-applicationoutput-lambdaoutput-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_LambdaOutput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_output.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_output.go
new file mode 100644
index 0000000000..05d4cd5189
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationoutput_output.go
@@ -0,0 +1,57 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_Output AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationOutput.Output)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html
+type ApplicationOutput_Output struct {
+
+ // DestinationSchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-destinationschema
+ DestinationSchema *ApplicationOutput_DestinationSchema `json:"DestinationSchema,omitempty"`
+
+ // KinesisFirehoseOutput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-kinesisfirehoseoutput
+ KinesisFirehoseOutput *ApplicationOutput_KinesisFirehoseOutput `json:"KinesisFirehoseOutput,omitempty"`
+
+ // KinesisStreamsOutput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-kinesisstreamsoutput
+ KinesisStreamsOutput *ApplicationOutput_KinesisStreamsOutput `json:"KinesisStreamsOutput,omitempty"`
+
+ // LambdaOutput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-lambdaoutput
+ LambdaOutput *ApplicationOutput_LambdaOutput `json:"LambdaOutput,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationoutput-output.html#cfn-kinesisanalytics-applicationoutput-output-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_Output) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationOutput.Output"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource.go
new file mode 100644
index 0000000000..5a087997dc
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource.go
@@ -0,0 +1,113 @@
+package kinesisanalytics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html
+type ApplicationReferenceDataSource struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // ReferenceDataSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalytics-applicationreferencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource
+ ReferenceDataSource *ApplicationReferenceDataSource_ReferenceDataSource `json:"ReferenceDataSource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApplicationReferenceDataSource) MarshalJSON() ([]byte, error) {
+ type Properties ApplicationReferenceDataSource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApplicationReferenceDataSource) UnmarshalJSON(b []byte) error {
+ type Properties ApplicationReferenceDataSource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApplicationReferenceDataSource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go
new file mode 100644
index 0000000000..907bc75dab
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_csvmappingparameters.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-csvmappingparameters.html
+type ApplicationReferenceDataSource_CSVMappingParameters struct {
+
+ // RecordColumnDelimiter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-csvmappingparameters-recordcolumndelimiter
+ RecordColumnDelimiter *types.Value `json:"RecordColumnDelimiter,omitempty"`
+
+ // RecordRowDelimiter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-csvmappingparameters-recordrowdelimiter
+ RecordRowDelimiter *types.Value `json:"RecordRowDelimiter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_CSVMappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go
new file mode 100644
index 0000000000..a0374e18bc
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_jsonmappingparameters.go
@@ -0,0 +1,37 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-jsonmappingparameters.html
+type ApplicationReferenceDataSource_JSONMappingParameters struct {
+
+ // RecordRowPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-jsonmappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-jsonmappingparameters-recordrowpath
+ RecordRowPath *types.Value `json:"RecordRowPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_JSONMappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go
new file mode 100644
index 0000000000..0c2bf17b5b
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_mappingparameters.go
@@ -0,0 +1,40 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-mappingparameters.html
+type ApplicationReferenceDataSource_MappingParameters struct {
+
+ // CSVMappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-mappingparameters-csvmappingparameters
+ CSVMappingParameters *ApplicationReferenceDataSource_CSVMappingParameters `json:"CSVMappingParameters,omitempty"`
+
+ // JSONMappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalytics-applicationreferencedatasource-mappingparameters-jsonmappingparameters
+ JSONMappingParameters *ApplicationReferenceDataSource_JSONMappingParameters `json:"JSONMappingParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_MappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go
new file mode 100644
index 0000000000..fd878484a9
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_recordcolumn.go
@@ -0,0 +1,47 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html
+type ApplicationReferenceDataSource_RecordColumn struct {
+
+ // Mapping AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalytics-applicationreferencedatasource-recordcolumn-mapping
+ Mapping *types.Value `json:"Mapping,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalytics-applicationreferencedatasource-recordcolumn-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SqlType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalytics-applicationreferencedatasource-recordcolumn-sqltype
+ SqlType *types.Value `json:"SqlType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_RecordColumn) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go
new file mode 100644
index 0000000000..bcdd39d9e9
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_recordformat.go
@@ -0,0 +1,42 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordformat.html
+type ApplicationReferenceDataSource_RecordFormat struct {
+
+ // MappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordformat.html#cfn-kinesisanalytics-applicationreferencedatasource-recordformat-mappingparameters
+ MappingParameters *ApplicationReferenceDataSource_MappingParameters `json:"MappingParameters,omitempty"`
+
+ // RecordFormatType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-recordformat.html#cfn-kinesisanalytics-applicationreferencedatasource-recordformat-recordformattype
+ RecordFormatType *types.Value `json:"RecordFormatType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_RecordFormat) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go
new file mode 100644
index 0000000000..adb20f5035
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_referencedatasource.go
@@ -0,0 +1,47 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html
+type ApplicationReferenceDataSource_ReferenceDataSource struct {
+
+ // ReferenceSchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource-referenceschema
+ ReferenceSchema *ApplicationReferenceDataSource_ReferenceSchema `json:"ReferenceSchema,omitempty"`
+
+ // S3ReferenceDataSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource-s3referencedatasource
+ S3ReferenceDataSource *ApplicationReferenceDataSource_S3ReferenceDataSource `json:"S3ReferenceDataSource,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-referencedatasource-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_ReferenceDataSource) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go
new file mode 100644
index 0000000000..82589ae83a
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_referenceschema.go
@@ -0,0 +1,47 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_ReferenceSchema AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html
+type ApplicationReferenceDataSource_ReferenceSchema struct {
+
+ // RecordColumns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalytics-applicationreferencedatasource-referenceschema-recordcolumns
+ RecordColumns []ApplicationReferenceDataSource_RecordColumn `json:"RecordColumns,omitempty"`
+
+ // RecordEncoding AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalytics-applicationreferencedatasource-referenceschema-recordencoding
+ RecordEncoding *types.Value `json:"RecordEncoding,omitempty"`
+
+ // RecordFormat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalytics-applicationreferencedatasource-referenceschema-recordformat
+ RecordFormat *ApplicationReferenceDataSource_RecordFormat `json:"RecordFormat,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_ReferenceSchema) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema"
+}
diff --git a/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go
new file mode 100644
index 0000000000..3cdba42192
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalytics/aws-kinesisanalytics-applicationreferencedatasource_s3referencedatasource.go
@@ -0,0 +1,47 @@
+package kinesisanalytics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_S3ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html
+type ApplicationReferenceDataSource_S3ReferenceDataSource struct {
+
+ // BucketARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-s3referencedatasource-bucketarn
+ BucketARN *types.Value `json:"BucketARN,omitempty"`
+
+ // FileKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-s3referencedatasource-filekey
+ FileKey *types.Value `json:"FileKey,omitempty"`
+
+ // ReferenceRoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalytics-applicationreferencedatasource-s3referencedatasource-referencerolearn
+ ReferenceRoleARN *types.Value `json:"ReferenceRoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_S3ReferenceDataSource) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application.go
new file mode 100644
index 0000000000..16ce075b3b
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application.go
@@ -0,0 +1,139 @@
+package kinesisanalyticsv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html
+type Application struct {
+
+ // ApplicationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationconfiguration
+ ApplicationConfiguration *Application_ApplicationConfiguration `json:"ApplicationConfiguration,omitempty"`
+
+ // ApplicationDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationdescription
+ ApplicationDescription *types.Value `json:"ApplicationDescription,omitempty"`
+
+ // ApplicationMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationmode
+ ApplicationMode *types.Value `json:"ApplicationMode,omitempty"`
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // RuntimeEnvironment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-runtimeenvironment
+ RuntimeEnvironment *types.Value `json:"RuntimeEnvironment,omitempty"`
+
+ // ServiceExecutionRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-serviceexecutionrole
+ ServiceExecutionRole *types.Value `json:"ServiceExecutionRole,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html#cfn-kinesisanalyticsv2-application-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Application) MarshalJSON() ([]byte, error) {
+ type Properties Application
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Application) UnmarshalJSON(b []byte) error {
+ type Properties Application
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Application(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go
new file mode 100644
index 0000000000..21744238f8
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationcodeconfiguration.go
@@ -0,0 +1,42 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ApplicationCodeConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html
+type Application_ApplicationCodeConfiguration struct {
+
+ // CodeContent AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html#cfn-kinesisanalyticsv2-application-applicationcodeconfiguration-codecontent
+ CodeContent *Application_CodeContent `json:"CodeContent,omitempty"`
+
+ // CodeContentType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationcodeconfiguration.html#cfn-kinesisanalyticsv2-application-applicationcodeconfiguration-codecontenttype
+ CodeContentType *types.Value `json:"CodeContentType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ApplicationCodeConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationconfiguration.go
new file mode 100644
index 0000000000..de63f9013b
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationconfiguration.go
@@ -0,0 +1,60 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html
+type Application_ApplicationConfiguration struct {
+
+ // ApplicationCodeConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-applicationcodeconfiguration
+ ApplicationCodeConfiguration *Application_ApplicationCodeConfiguration `json:"ApplicationCodeConfiguration,omitempty"`
+
+ // ApplicationSnapshotConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-applicationsnapshotconfiguration
+ ApplicationSnapshotConfiguration *Application_ApplicationSnapshotConfiguration `json:"ApplicationSnapshotConfiguration,omitempty"`
+
+ // EnvironmentProperties AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-environmentproperties
+ EnvironmentProperties *Application_EnvironmentProperties `json:"EnvironmentProperties,omitempty"`
+
+ // FlinkApplicationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-flinkapplicationconfiguration
+ FlinkApplicationConfiguration *Application_FlinkApplicationConfiguration `json:"FlinkApplicationConfiguration,omitempty"`
+
+ // SqlApplicationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-sqlapplicationconfiguration
+ SqlApplicationConfiguration *Application_SqlApplicationConfiguration `json:"SqlApplicationConfiguration,omitempty"`
+
+ // ZeppelinApplicationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationconfiguration.html#cfn-kinesisanalyticsv2-application-applicationconfiguration-zeppelinapplicationconfiguration
+ ZeppelinApplicationConfiguration *Application_ZeppelinApplicationConfiguration `json:"ZeppelinApplicationConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ApplicationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go
new file mode 100644
index 0000000000..44a9c587ac
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_applicationsnapshotconfiguration.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ApplicationSnapshotConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationsnapshotconfiguration.html
+type Application_ApplicationSnapshotConfiguration struct {
+
+ // SnapshotsEnabled AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-applicationsnapshotconfiguration.html#cfn-kinesisanalyticsv2-application-applicationsnapshotconfiguration-snapshotsenabled
+ SnapshotsEnabled *types.Value `json:"SnapshotsEnabled"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ApplicationSnapshotConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_catalogconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_catalogconfiguration.go
new file mode 100644
index 0000000000..b862b44eca
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_catalogconfiguration.go
@@ -0,0 +1,35 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_CatalogConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CatalogConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-catalogconfiguration.html
+type Application_CatalogConfiguration struct {
+
+ // GlueDataCatalogConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-catalogconfiguration.html#cfn-kinesisanalyticsv2-application-catalogconfiguration-gluedatacatalogconfiguration
+ GlueDataCatalogConfiguration *Application_GlueDataCatalogConfiguration `json:"GlueDataCatalogConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_CatalogConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.CatalogConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_checkpointconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_checkpointconfiguration.go
new file mode 100644
index 0000000000..2ba8910bd0
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_checkpointconfiguration.go
@@ -0,0 +1,52 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_CheckpointConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html
+type Application_CheckpointConfiguration struct {
+
+ // CheckpointInterval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-checkpointinterval
+ CheckpointInterval *types.Value `json:"CheckpointInterval,omitempty"`
+
+ // CheckpointingEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-checkpointingenabled
+ CheckpointingEnabled *types.Value `json:"CheckpointingEnabled,omitempty"`
+
+ // ConfigurationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-configurationtype
+ ConfigurationType *types.Value `json:"ConfigurationType,omitempty"`
+
+ // MinPauseBetweenCheckpoints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-checkpointconfiguration.html#cfn-kinesisanalyticsv2-application-checkpointconfiguration-minpausebetweencheckpoints
+ MinPauseBetweenCheckpoints *types.Value `json:"MinPauseBetweenCheckpoints,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_CheckpointConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_codecontent.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_codecontent.go
new file mode 100644
index 0000000000..e6543d444a
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_codecontent.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_CodeContent AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CodeContent)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html
+type Application_CodeContent struct {
+
+ // S3ContentLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-s3contentlocation
+ S3ContentLocation *Application_S3ContentLocation `json:"S3ContentLocation,omitempty"`
+
+ // TextContent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-textcontent
+ TextContent *types.Value `json:"TextContent,omitempty"`
+
+ // ZipFileContent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-codecontent.html#cfn-kinesisanalyticsv2-application-codecontent-zipfilecontent
+ ZipFileContent *types.Value `json:"ZipFileContent,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_CodeContent) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.CodeContent"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_csvmappingparameters.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_csvmappingparameters.go
new file mode 100644
index 0000000000..48e7987202
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_csvmappingparameters.go
@@ -0,0 +1,42 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CSVMappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html
+type Application_CSVMappingParameters struct {
+
+ // RecordColumnDelimiter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html#cfn-kinesisanalyticsv2-application-csvmappingparameters-recordcolumndelimiter
+ RecordColumnDelimiter *types.Value `json:"RecordColumnDelimiter,omitempty"`
+
+ // RecordRowDelimiter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-csvmappingparameters.html#cfn-kinesisanalyticsv2-application-csvmappingparameters-recordrowdelimiter
+ RecordRowDelimiter *types.Value `json:"RecordRowDelimiter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_CSVMappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.CSVMappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_customartifactconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_customartifactconfiguration.go
new file mode 100644
index 0000000000..e04152343c
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_customartifactconfiguration.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_CustomArtifactConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CustomArtifactConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactconfiguration.html
+type Application_CustomArtifactConfiguration struct {
+
+ // ArtifactType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactconfiguration.html#cfn-kinesisanalyticsv2-application-customartifactconfiguration-artifacttype
+ ArtifactType *types.Value `json:"ArtifactType,omitempty"`
+
+ // MavenReference AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactconfiguration.html#cfn-kinesisanalyticsv2-application-customartifactconfiguration-mavenreference
+ MavenReference *Application_MavenReference `json:"MavenReference,omitempty"`
+
+ // S3ContentLocation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactconfiguration.html#cfn-kinesisanalyticsv2-application-customartifactconfiguration-s3contentlocation
+ S3ContentLocation *Application_S3ContentLocation `json:"S3ContentLocation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_CustomArtifactConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.CustomArtifactConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_customartifactsconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_customartifactsconfiguration.go
new file mode 100644
index 0000000000..45d673048e
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_customartifactsconfiguration.go
@@ -0,0 +1,30 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_CustomArtifactsConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.CustomArtifactsConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-customartifactsconfiguration.html
+type Application_CustomArtifactsConfiguration struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_CustomArtifactsConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.CustomArtifactsConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_deployasapplicationconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_deployasapplicationconfiguration.go
new file mode 100644
index 0000000000..83917ae551
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_deployasapplicationconfiguration.go
@@ -0,0 +1,35 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_DeployAsApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-deployasapplicationconfiguration.html
+type Application_DeployAsApplicationConfiguration struct {
+
+ // S3ContentLocation AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-deployasapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-deployasapplicationconfiguration-s3contentlocation
+ S3ContentLocation *Application_S3ContentBaseLocation `json:"S3ContentLocation,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_DeployAsApplicationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_environmentproperties.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_environmentproperties.go
new file mode 100644
index 0000000000..6ddf2f3e02
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_environmentproperties.go
@@ -0,0 +1,35 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_EnvironmentProperties AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.EnvironmentProperties)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-environmentproperties.html
+type Application_EnvironmentProperties struct {
+
+ // PropertyGroups AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-environmentproperties.html#cfn-kinesisanalyticsv2-application-environmentproperties-propertygroups
+ PropertyGroups []Application_PropertyGroup `json:"PropertyGroups,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_EnvironmentProperties) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.EnvironmentProperties"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go
new file mode 100644
index 0000000000..69af80ed0c
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_flinkapplicationconfiguration.go
@@ -0,0 +1,45 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_FlinkApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html
+type Application_FlinkApplicationConfiguration struct {
+
+ // CheckpointConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-checkpointconfiguration
+ CheckpointConfiguration *Application_CheckpointConfiguration `json:"CheckpointConfiguration,omitempty"`
+
+ // MonitoringConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-monitoringconfiguration
+ MonitoringConfiguration *Application_MonitoringConfiguration `json:"MonitoringConfiguration,omitempty"`
+
+ // ParallelismConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-flinkapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-flinkapplicationconfiguration-parallelismconfiguration
+ ParallelismConfiguration *Application_ParallelismConfiguration `json:"ParallelismConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_FlinkApplicationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_gluedatacatalogconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_gluedatacatalogconfiguration.go
new file mode 100644
index 0000000000..6b61bb92a6
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_gluedatacatalogconfiguration.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_GlueDataCatalogConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.GlueDataCatalogConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-gluedatacatalogconfiguration.html
+type Application_GlueDataCatalogConfiguration struct {
+
+ // DatabaseARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-gluedatacatalogconfiguration.html#cfn-kinesisanalyticsv2-application-gluedatacatalogconfiguration-databasearn
+ DatabaseARN *types.Value `json:"DatabaseARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_GlueDataCatalogConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.GlueDataCatalogConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_input.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_input.go
new file mode 100644
index 0000000000..47c4db0d5b
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_input.go
@@ -0,0 +1,62 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_Input AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.Input)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html
+type Application_Input struct {
+
+ // InputParallelism AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputparallelism
+ InputParallelism *Application_InputParallelism `json:"InputParallelism,omitempty"`
+
+ // InputProcessingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputprocessingconfiguration
+ InputProcessingConfiguration *Application_InputProcessingConfiguration `json:"InputProcessingConfiguration,omitempty"`
+
+ // InputSchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-inputschema
+ InputSchema *Application_InputSchema `json:"InputSchema,omitempty"`
+
+ // KinesisFirehoseInput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-kinesisfirehoseinput
+ KinesisFirehoseInput *Application_KinesisFirehoseInput `json:"KinesisFirehoseInput,omitempty"`
+
+ // KinesisStreamsInput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-kinesisstreamsinput
+ KinesisStreamsInput *Application_KinesisStreamsInput `json:"KinesisStreamsInput,omitempty"`
+
+ // NamePrefix AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-input.html#cfn-kinesisanalyticsv2-application-input-nameprefix
+ NamePrefix *types.Value `json:"NamePrefix,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_Input) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.Input"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go
new file mode 100644
index 0000000000..6482aac350
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputlambdaprocessor.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_InputLambdaProcessor AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html
+type Application_InputLambdaProcessor struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputlambdaprocessor.html#cfn-kinesisanalyticsv2-application-inputlambdaprocessor-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_InputLambdaProcessor) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputparallelism.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputparallelism.go
new file mode 100644
index 0000000000..aa2facc6da
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputparallelism.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_InputParallelism AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputParallelism)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputparallelism.html
+type Application_InputParallelism struct {
+
+ // Count AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputparallelism.html#cfn-kinesisanalyticsv2-application-inputparallelism-count
+ Count *types.Value `json:"Count,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_InputParallelism) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.InputParallelism"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go
new file mode 100644
index 0000000000..aad4813135
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputprocessingconfiguration.go
@@ -0,0 +1,35 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_InputProcessingConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputprocessingconfiguration.html
+type Application_InputProcessingConfiguration struct {
+
+ // InputLambdaProcessor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputprocessingconfiguration.html#cfn-kinesisanalyticsv2-application-inputprocessingconfiguration-inputlambdaprocessor
+ InputLambdaProcessor *Application_InputLambdaProcessor `json:"InputLambdaProcessor,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_InputProcessingConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputschema.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputschema.go
new file mode 100644
index 0000000000..f0c2b4af66
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_inputschema.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_InputSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.InputSchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html
+type Application_InputSchema struct {
+
+ // RecordColumns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordcolumns
+ RecordColumns []Application_RecordColumn `json:"RecordColumns,omitempty"`
+
+ // RecordEncoding AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordencoding
+ RecordEncoding *types.Value `json:"RecordEncoding,omitempty"`
+
+ // RecordFormat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-inputschema.html#cfn-kinesisanalyticsv2-application-inputschema-recordformat
+ RecordFormat *Application_RecordFormat `json:"RecordFormat,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_InputSchema) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.InputSchema"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_jsonmappingparameters.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_jsonmappingparameters.go
new file mode 100644
index 0000000000..4975674e23
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_jsonmappingparameters.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.JSONMappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html
+type Application_JSONMappingParameters struct {
+
+ // RecordRowPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-jsonmappingparameters.html#cfn-kinesisanalyticsv2-application-jsonmappingparameters-recordrowpath
+ RecordRowPath *types.Value `json:"RecordRowPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_JSONMappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go
new file mode 100644
index 0000000000..64c661a95d
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_kinesisfirehoseinput.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_KinesisFirehoseInput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisfirehoseinput.html
+type Application_KinesisFirehoseInput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisfirehoseinput.html#cfn-kinesisanalyticsv2-application-kinesisfirehoseinput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_KinesisFirehoseInput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go
new file mode 100644
index 0000000000..59a12901b7
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_kinesisstreamsinput.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_KinesisStreamsInput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisstreamsinput.html
+type Application_KinesisStreamsInput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-kinesisstreamsinput.html#cfn-kinesisanalyticsv2-application-kinesisstreamsinput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_KinesisStreamsInput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_mappingparameters.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_mappingparameters.go
new file mode 100644
index 0000000000..cc34a9ea65
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_mappingparameters.go
@@ -0,0 +1,40 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.MappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html
+type Application_MappingParameters struct {
+
+ // CSVMappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html#cfn-kinesisanalyticsv2-application-mappingparameters-csvmappingparameters
+ CSVMappingParameters *Application_CSVMappingParameters `json:"CSVMappingParameters,omitempty"`
+
+ // JSONMappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mappingparameters.html#cfn-kinesisanalyticsv2-application-mappingparameters-jsonmappingparameters
+ JSONMappingParameters *Application_JSONMappingParameters `json:"JSONMappingParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_MappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.MappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_mavenreference.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_mavenreference.go
new file mode 100644
index 0000000000..8553f9903e
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_mavenreference.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_MavenReference AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.MavenReference)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mavenreference.html
+type Application_MavenReference struct {
+
+ // ArtifactId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mavenreference.html#cfn-kinesisanalyticsv2-application-mavenreference-artifactid
+ ArtifactId *types.Value `json:"ArtifactId,omitempty"`
+
+ // GroupId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mavenreference.html#cfn-kinesisanalyticsv2-application-mavenreference-groupid
+ GroupId *types.Value `json:"GroupId,omitempty"`
+
+ // Version AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-mavenreference.html#cfn-kinesisanalyticsv2-application-mavenreference-version
+ Version *types.Value `json:"Version,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_MavenReference) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.MavenReference"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_monitoringconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_monitoringconfiguration.go
new file mode 100644
index 0000000000..bd514a72f7
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_monitoringconfiguration.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_MonitoringConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html
+type Application_MonitoringConfiguration struct {
+
+ // ConfigurationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-configurationtype
+ ConfigurationType *types.Value `json:"ConfigurationType,omitempty"`
+
+ // LogLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-loglevel
+ LogLevel *types.Value `json:"LogLevel,omitempty"`
+
+ // MetricsLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-monitoringconfiguration.html#cfn-kinesisanalyticsv2-application-monitoringconfiguration-metricslevel
+ MetricsLevel *types.Value `json:"MetricsLevel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_MonitoringConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_parallelismconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_parallelismconfiguration.go
new file mode 100644
index 0000000000..3c19e34656
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_parallelismconfiguration.go
@@ -0,0 +1,52 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ParallelismConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html
+type Application_ParallelismConfiguration struct {
+
+ // AutoScalingEnabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-autoscalingenabled
+ AutoScalingEnabled *types.Value `json:"AutoScalingEnabled,omitempty"`
+
+ // ConfigurationType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-configurationtype
+ ConfigurationType *types.Value `json:"ConfigurationType,omitempty"`
+
+ // Parallelism AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-parallelism
+ Parallelism *types.Value `json:"Parallelism,omitempty"`
+
+ // ParallelismPerKPU AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-parallelismconfiguration.html#cfn-kinesisanalyticsv2-application-parallelismconfiguration-parallelismperkpu
+ ParallelismPerKPU *types.Value `json:"ParallelismPerKPU,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ParallelismConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_propertygroup.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_propertygroup.go
new file mode 100644
index 0000000000..b54bb7128d
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_propertygroup.go
@@ -0,0 +1,42 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_PropertyGroup AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.PropertyGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html
+type Application_PropertyGroup struct {
+
+ // PropertyGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html#cfn-kinesisanalyticsv2-application-propertygroup-propertygroupid
+ PropertyGroupId *types.Value `json:"PropertyGroupId,omitempty"`
+
+ // PropertyMap AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-propertygroup.html#cfn-kinesisanalyticsv2-application-propertygroup-propertymap
+ PropertyMap interface{} `json:"PropertyMap,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_PropertyGroup) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.PropertyGroup"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_recordcolumn.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_recordcolumn.go
new file mode 100644
index 0000000000..0d1b028e44
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_recordcolumn.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.RecordColumn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html
+type Application_RecordColumn struct {
+
+ // Mapping AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-mapping
+ Mapping *types.Value `json:"Mapping,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SqlType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordcolumn.html#cfn-kinesisanalyticsv2-application-recordcolumn-sqltype
+ SqlType *types.Value `json:"SqlType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_RecordColumn) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.RecordColumn"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_recordformat.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_recordformat.go
new file mode 100644
index 0000000000..426f454523
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_recordformat.go
@@ -0,0 +1,42 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.RecordFormat)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html
+type Application_RecordFormat struct {
+
+ // MappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html#cfn-kinesisanalyticsv2-application-recordformat-mappingparameters
+ MappingParameters *Application_MappingParameters `json:"MappingParameters,omitempty"`
+
+ // RecordFormatType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-recordformat.html#cfn-kinesisanalyticsv2-application-recordformat-recordformattype
+ RecordFormatType *types.Value `json:"RecordFormatType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_RecordFormat) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.RecordFormat"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentbaselocation.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentbaselocation.go
new file mode 100644
index 0000000000..7b3dde5ba0
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentbaselocation.go
@@ -0,0 +1,42 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_S3ContentBaseLocation AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.S3ContentBaseLocation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentbaselocation.html
+type Application_S3ContentBaseLocation struct {
+
+ // BasePath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentbaselocation.html#cfn-kinesisanalyticsv2-application-s3contentbaselocation-basepath
+ BasePath *types.Value `json:"BasePath,omitempty"`
+
+ // BucketARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentbaselocation.html#cfn-kinesisanalyticsv2-application-s3contentbaselocation-bucketarn
+ BucketARN *types.Value `json:"BucketARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_S3ContentBaseLocation) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.S3ContentBaseLocation"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentlocation.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentlocation.go
new file mode 100644
index 0000000000..dd66949926
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_s3contentlocation.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_S3ContentLocation AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.S3ContentLocation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html
+type Application_S3ContentLocation struct {
+
+ // BucketARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-bucketarn
+ BucketARN *types.Value `json:"BucketARN,omitempty"`
+
+ // FileKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-filekey
+ FileKey *types.Value `json:"FileKey,omitempty"`
+
+ // ObjectVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-s3contentlocation.html#cfn-kinesisanalyticsv2-application-s3contentlocation-objectversion
+ ObjectVersion *types.Value `json:"ObjectVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_S3ContentLocation) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.S3ContentLocation"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go
new file mode 100644
index 0000000000..14ed17781b
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_sqlapplicationconfiguration.go
@@ -0,0 +1,35 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_SqlApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-sqlapplicationconfiguration.html
+type Application_SqlApplicationConfiguration struct {
+
+ // Inputs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-sqlapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-sqlapplicationconfiguration-inputs
+ Inputs []Application_Input `json:"Inputs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_SqlApplicationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_zeppelinapplicationconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_zeppelinapplicationconfiguration.go
new file mode 100644
index 0000000000..9bfd36db24
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_zeppelinapplicationconfiguration.go
@@ -0,0 +1,50 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ZeppelinApplicationConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ZeppelinApplicationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinapplicationconfiguration.html
+type Application_ZeppelinApplicationConfiguration struct {
+
+ // CatalogConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-zeppelinapplicationconfiguration-catalogconfiguration
+ CatalogConfiguration *Application_CatalogConfiguration `json:"CatalogConfiguration,omitempty"`
+
+ // CustomArtifactsConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-zeppelinapplicationconfiguration-customartifactsconfiguration
+ CustomArtifactsConfiguration *Application_CustomArtifactsConfiguration `json:"CustomArtifactsConfiguration,omitempty"`
+
+ // DeployAsApplicationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-zeppelinapplicationconfiguration-deployasapplicationconfiguration
+ DeployAsApplicationConfiguration *Application_DeployAsApplicationConfiguration `json:"DeployAsApplicationConfiguration,omitempty"`
+
+ // MonitoringConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinapplicationconfiguration.html#cfn-kinesisanalyticsv2-application-zeppelinapplicationconfiguration-monitoringconfiguration
+ MonitoringConfiguration *Application_ZeppelinMonitoringConfiguration `json:"MonitoringConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ZeppelinApplicationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.ZeppelinApplicationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_zeppelinmonitoringconfiguration.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_zeppelinmonitoringconfiguration.go
new file mode 100644
index 0000000000..6b16170565
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-application_zeppelinmonitoringconfiguration.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Application_ZeppelinMonitoringConfiguration AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinmonitoringconfiguration.html
+type Application_ZeppelinMonitoringConfiguration struct {
+
+ // LogLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-application-zeppelinmonitoringconfiguration.html#cfn-kinesisanalyticsv2-application-zeppelinmonitoringconfiguration-loglevel
+ LogLevel *types.Value `json:"LogLevel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Application_ZeppelinMonitoringConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go
new file mode 100644
index 0000000000..13533452a6
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.go
@@ -0,0 +1,113 @@
+package kinesisanalyticsv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationCloudWatchLoggingOption AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html
+type ApplicationCloudWatchLoggingOption struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // CloudWatchLoggingOption AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationcloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption
+ CloudWatchLoggingOption *ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption `json:"CloudWatchLoggingOption,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationCloudWatchLoggingOption) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApplicationCloudWatchLoggingOption) MarshalJSON() ([]byte, error) {
+ type Properties ApplicationCloudWatchLoggingOption
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApplicationCloudWatchLoggingOption) UnmarshalJSON(b []byte) error {
+ type Properties ApplicationCloudWatchLoggingOption
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApplicationCloudWatchLoggingOption(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go
new file mode 100644
index 0000000000..94c34d26a6
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption_cloudwatchloggingoption.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html
+type ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption struct {
+
+ // LogStreamARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption.html#cfn-kinesisanalyticsv2-applicationcloudwatchloggingoption-cloudwatchloggingoption-logstreamarn
+ LogStreamARN *types.Value `json:"LogStreamARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationCloudWatchLoggingOption_CloudWatchLoggingOption) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput.go
new file mode 100644
index 0000000000..c916876071
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput.go
@@ -0,0 +1,113 @@
+package kinesisanalyticsv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html
+type ApplicationOutput struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // Output AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationoutput.html#cfn-kinesisanalyticsv2-applicationoutput-output
+ Output *ApplicationOutput_Output `json:"Output,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationOutput"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApplicationOutput) MarshalJSON() ([]byte, error) {
+ type Properties ApplicationOutput
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApplicationOutput) UnmarshalJSON(b []byte) error {
+ type Properties ApplicationOutput
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApplicationOutput(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go
new file mode 100644
index 0000000000..772c8358ea
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_destinationschema.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_DestinationSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html
+type ApplicationOutput_DestinationSchema struct {
+
+ // RecordFormatType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-destinationschema.html#cfn-kinesisanalyticsv2-applicationoutput-destinationschema-recordformattype
+ RecordFormatType *types.Value `json:"RecordFormatType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_DestinationSchema) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go
new file mode 100644
index 0000000000..3da7cc4506
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_kinesisfirehoseoutput.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_KinesisFirehoseOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html
+type ApplicationOutput_KinesisFirehoseOutput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput.html#cfn-kinesisanalyticsv2-applicationoutput-kinesisfirehoseoutput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_KinesisFirehoseOutput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go
new file mode 100644
index 0000000000..96bd7cb35b
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_kinesisstreamsoutput.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_KinesisStreamsOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html
+type ApplicationOutput_KinesisStreamsOutput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput.html#cfn-kinesisanalyticsv2-applicationoutput-kinesisstreamsoutput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_KinesisStreamsOutput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go
new file mode 100644
index 0000000000..c89f3f194f
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_lambdaoutput.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_LambdaOutput AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html
+type ApplicationOutput_LambdaOutput struct {
+
+ // ResourceARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-lambdaoutput.html#cfn-kinesisanalyticsv2-applicationoutput-lambdaoutput-resourcearn
+ ResourceARN *types.Value `json:"ResourceARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_LambdaOutput) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_output.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_output.go
new file mode 100644
index 0000000000..40770e0f12
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationoutput_output.go
@@ -0,0 +1,57 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationOutput_Output AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationOutput.Output)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html
+type ApplicationOutput_Output struct {
+
+ // DestinationSchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-destinationschema
+ DestinationSchema *ApplicationOutput_DestinationSchema `json:"DestinationSchema,omitempty"`
+
+ // KinesisFirehoseOutput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-kinesisfirehoseoutput
+ KinesisFirehoseOutput *ApplicationOutput_KinesisFirehoseOutput `json:"KinesisFirehoseOutput,omitempty"`
+
+ // KinesisStreamsOutput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-kinesisstreamsoutput
+ KinesisStreamsOutput *ApplicationOutput_KinesisStreamsOutput `json:"KinesisStreamsOutput,omitempty"`
+
+ // LambdaOutput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-lambdaoutput
+ LambdaOutput *ApplicationOutput_LambdaOutput `json:"LambdaOutput,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationoutput-output.html#cfn-kinesisanalyticsv2-applicationoutput-output-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationOutput_Output) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationOutput.Output"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource.go
new file mode 100644
index 0000000000..19090ddd8c
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource.go
@@ -0,0 +1,113 @@
+package kinesisanalyticsv2
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html
+type ApplicationReferenceDataSource struct {
+
+ // ApplicationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-applicationname
+ ApplicationName *types.Value `json:"ApplicationName,omitempty"`
+
+ // ReferenceDataSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-applicationreferencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource
+ ReferenceDataSource *ApplicationReferenceDataSource_ReferenceDataSource `json:"ReferenceDataSource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ApplicationReferenceDataSource) MarshalJSON() ([]byte, error) {
+ type Properties ApplicationReferenceDataSource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ApplicationReferenceDataSource) UnmarshalJSON(b []byte) error {
+ type Properties ApplicationReferenceDataSource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ApplicationReferenceDataSource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go
new file mode 100644
index 0000000000..8178492eb8
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_csvmappingparameters.go
@@ -0,0 +1,42 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_CSVMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html
+type ApplicationReferenceDataSource_CSVMappingParameters struct {
+
+ // RecordColumnDelimiter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters-recordcolumndelimiter
+ RecordColumnDelimiter *types.Value `json:"RecordColumnDelimiter,omitempty"`
+
+ // RecordRowDelimiter AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-csvmappingparameters-recordrowdelimiter
+ RecordRowDelimiter *types.Value `json:"RecordRowDelimiter,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_CSVMappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go
new file mode 100644
index 0000000000..3bd7c8ae2a
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_jsonmappingparameters.go
@@ -0,0 +1,37 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_JSONMappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html
+type ApplicationReferenceDataSource_JSONMappingParameters struct {
+
+ // RecordRowPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-jsonmappingparameters-recordrowpath
+ RecordRowPath *types.Value `json:"RecordRowPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_JSONMappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go
new file mode 100644
index 0000000000..61a7a6334e
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_mappingparameters.go
@@ -0,0 +1,40 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_MappingParameters AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html
+type ApplicationReferenceDataSource_MappingParameters struct {
+
+ // CSVMappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters-csvmappingparameters
+ CSVMappingParameters *ApplicationReferenceDataSource_CSVMappingParameters `json:"CSVMappingParameters,omitempty"`
+
+ // JSONMappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-mappingparameters-jsonmappingparameters
+ JSONMappingParameters *ApplicationReferenceDataSource_JSONMappingParameters `json:"JSONMappingParameters,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_MappingParameters) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go
new file mode 100644
index 0000000000..7badcc98c6
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_recordcolumn.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_RecordColumn AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html
+type ApplicationReferenceDataSource_RecordColumn struct {
+
+ // Mapping AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-mapping
+ Mapping *types.Value `json:"Mapping,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SqlType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordcolumn-sqltype
+ SqlType *types.Value `json:"SqlType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_RecordColumn) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go
new file mode 100644
index 0000000000..243f7c78fb
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_recordformat.go
@@ -0,0 +1,42 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_RecordFormat AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html
+type ApplicationReferenceDataSource_RecordFormat struct {
+
+ // MappingParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordformat-mappingparameters
+ MappingParameters *ApplicationReferenceDataSource_MappingParameters `json:"MappingParameters,omitempty"`
+
+ // RecordFormatType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-recordformat.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-recordformat-recordformattype
+ RecordFormatType *types.Value `json:"RecordFormatType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_RecordFormat) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go
new file mode 100644
index 0000000000..a20fada916
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_referencedatasource.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html
+type ApplicationReferenceDataSource_ReferenceDataSource struct {
+
+ // ReferenceSchema AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-referenceschema
+ ReferenceSchema *ApplicationReferenceDataSource_ReferenceSchema `json:"ReferenceSchema,omitempty"`
+
+ // S3ReferenceDataSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-s3referencedatasource
+ S3ReferenceDataSource *ApplicationReferenceDataSource_S3ReferenceDataSource `json:"S3ReferenceDataSource,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referencedatasource-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_ReferenceDataSource) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go
new file mode 100644
index 0000000000..01f86fc95f
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_referenceschema.go
@@ -0,0 +1,47 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_ReferenceSchema AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html
+type ApplicationReferenceDataSource_ReferenceSchema struct {
+
+ // RecordColumns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordcolumns
+ RecordColumns []ApplicationReferenceDataSource_RecordColumn `json:"RecordColumns,omitempty"`
+
+ // RecordEncoding AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordencoding
+ RecordEncoding *types.Value `json:"RecordEncoding,omitempty"`
+
+ // RecordFormat AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-referenceschema.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-referenceschema-recordformat
+ RecordFormat *ApplicationReferenceDataSource_RecordFormat `json:"RecordFormat,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_ReferenceSchema) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema"
+}
diff --git a/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go
new file mode 100644
index 0000000000..03d7d776f8
--- /dev/null
+++ b/goformation/cloudformation/kinesisanalyticsv2/aws-kinesisanalyticsv2-applicationreferencedatasource_s3referencedatasource.go
@@ -0,0 +1,42 @@
+package kinesisanalyticsv2
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ApplicationReferenceDataSource_S3ReferenceDataSource AWS CloudFormation Resource (AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html
+type ApplicationReferenceDataSource_S3ReferenceDataSource struct {
+
+ // BucketARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource-bucketarn
+ BucketARN *types.Value `json:"BucketARN,omitempty"`
+
+ // FileKey AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource.html#cfn-kinesisanalyticsv2-applicationreferencedatasource-s3referencedatasource-filekey
+ FileKey *types.Value `json:"FileKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ApplicationReferenceDataSource_S3ReferenceDataSource) AWSCloudFormationType() string {
+ return "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go
new file mode 100644
index 0000000000..e4c7d6bb35
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream.go
@@ -0,0 +1,164 @@
+package kinesisfirehose
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html
+type DeliveryStream struct {
+
+ // AmazonopensearchserviceDestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration
+ AmazonopensearchserviceDestinationConfiguration *DeliveryStream_AmazonopensearchserviceDestinationConfiguration `json:"AmazonopensearchserviceDestinationConfiguration,omitempty"`
+
+ // DeliveryStreamEncryptionConfigurationInput AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput
+ DeliveryStreamEncryptionConfigurationInput *DeliveryStream_DeliveryStreamEncryptionConfigurationInput `json:"DeliveryStreamEncryptionConfigurationInput,omitempty"`
+
+ // DeliveryStreamName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamname
+ DeliveryStreamName *types.Value `json:"DeliveryStreamName,omitempty"`
+
+ // DeliveryStreamType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-deliverystreamtype
+ DeliveryStreamType *types.Value `json:"DeliveryStreamType,omitempty"`
+
+ // ElasticsearchDestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration
+ ElasticsearchDestinationConfiguration *DeliveryStream_ElasticsearchDestinationConfiguration `json:"ElasticsearchDestinationConfiguration,omitempty"`
+
+ // ExtendedS3DestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration
+ ExtendedS3DestinationConfiguration *DeliveryStream_ExtendedS3DestinationConfiguration `json:"ExtendedS3DestinationConfiguration,omitempty"`
+
+ // HttpEndpointDestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration
+ HttpEndpointDestinationConfiguration *DeliveryStream_HttpEndpointDestinationConfiguration `json:"HttpEndpointDestinationConfiguration,omitempty"`
+
+ // KinesisStreamSourceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration
+ KinesisStreamSourceConfiguration *DeliveryStream_KinesisStreamSourceConfiguration `json:"KinesisStreamSourceConfiguration,omitempty"`
+
+ // RedshiftDestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration
+ RedshiftDestinationConfiguration *DeliveryStream_RedshiftDestinationConfiguration `json:"RedshiftDestinationConfiguration,omitempty"`
+
+ // S3DestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration
+ S3DestinationConfiguration *DeliveryStream_S3DestinationConfiguration `json:"S3DestinationConfiguration,omitempty"`
+
+ // SplunkDestinationConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration
+ SplunkDestinationConfiguration *DeliveryStream_SplunkDestinationConfiguration `json:"SplunkDestinationConfiguration,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html#cfn-kinesisfirehose-deliverystream-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DeliveryStream) MarshalJSON() ([]byte, error) {
+ type Properties DeliveryStream
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DeliveryStream) UnmarshalJSON(b []byte) error {
+ type Properties DeliveryStream
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DeliveryStream(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicebufferinghints.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicebufferinghints.go
new file mode 100644
index 0000000000..8c818dc325
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicebufferinghints.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_AmazonopensearchserviceBufferingHints AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html
+type DeliveryStream_AmazonopensearchserviceBufferingHints struct {
+
+ // IntervalInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints-intervalinseconds
+ IntervalInSeconds *types.Value `json:"IntervalInSeconds,omitempty"`
+
+ // SizeInMBs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicebufferinghints-sizeinmbs
+ SizeInMBs *types.Value `json:"SizeInMBs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_AmazonopensearchserviceBufferingHints) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicedestinationconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicedestinationconfiguration.go
new file mode 100644
index 0000000000..72fbd90d04
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchservicedestinationconfiguration.go
@@ -0,0 +1,97 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_AmazonopensearchserviceDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html
+type DeliveryStream_AmazonopensearchserviceDestinationConfiguration struct {
+
+ // BufferingHints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-bufferinghints
+ BufferingHints *DeliveryStream_AmazonopensearchserviceBufferingHints `json:"BufferingHints,omitempty"`
+
+ // CloudWatchLoggingOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-cloudwatchloggingoptions
+ CloudWatchLoggingOptions *DeliveryStream_CloudWatchLoggingOptions `json:"CloudWatchLoggingOptions,omitempty"`
+
+ // ClusterEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-clusterendpoint
+ ClusterEndpoint *types.Value `json:"ClusterEndpoint,omitempty"`
+
+ // DomainARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-domainarn
+ DomainARN *types.Value `json:"DomainARN,omitempty"`
+
+ // IndexName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // IndexRotationPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-indexrotationperiod
+ IndexRotationPeriod *types.Value `json:"IndexRotationPeriod,omitempty"`
+
+ // ProcessingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-processingconfiguration
+ ProcessingConfiguration *DeliveryStream_ProcessingConfiguration `json:"ProcessingConfiguration,omitempty"`
+
+ // RetryOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-retryoptions
+ RetryOptions *DeliveryStream_AmazonopensearchserviceRetryOptions `json:"RetryOptions,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // S3BackupMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-s3backupmode
+ S3BackupMode *types.Value `json:"S3BackupMode,omitempty"`
+
+ // S3Configuration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-s3configuration
+ S3Configuration *DeliveryStream_S3DestinationConfiguration `json:"S3Configuration,omitempty"`
+
+ // TypeName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-typename
+ TypeName *types.Value `json:"TypeName,omitempty"`
+
+ // VpcConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-amazonopensearchservicedestinationconfiguration-vpcconfiguration
+ VpcConfiguration *DeliveryStream_VpcConfiguration `json:"VpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_AmazonopensearchserviceDestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchserviceretryoptions.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchserviceretryoptions.go
new file mode 100644
index 0000000000..115968a244
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_amazonopensearchserviceretryoptions.go
@@ -0,0 +1,37 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_AmazonopensearchserviceRetryOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions.html
+type DeliveryStream_AmazonopensearchserviceRetryOptions struct {
+
+ // DurationInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions.html#cfn-kinesisfirehose-deliverystream-amazonopensearchserviceretryoptions-durationinseconds
+ DurationInSeconds *types.Value `json:"DurationInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_AmazonopensearchserviceRetryOptions) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_bufferinghints.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_bufferinghints.go
new file mode 100644
index 0000000000..f12e92e987
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_bufferinghints.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_BufferingHints AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.BufferingHints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html
+type DeliveryStream_BufferingHints struct {
+
+ // IntervalInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-intervalinseconds
+ IntervalInSeconds *types.Value `json:"IntervalInSeconds,omitempty"`
+
+ // SizeInMBs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-bufferinghints.html#cfn-kinesisfirehose-deliverystream-bufferinghints-sizeinmbs
+ SizeInMBs *types.Value `json:"SizeInMBs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_BufferingHints) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.BufferingHints"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go
new file mode 100644
index 0000000000..7d33847d6e
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_cloudwatchloggingoptions.go
@@ -0,0 +1,47 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_CloudWatchLoggingOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html
+type DeliveryStream_CloudWatchLoggingOptions struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // LogStreamName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-cloudwatchloggingoptions.html#cfn-kinesisfirehose-deliverystream-cloudwatchloggingoptions-logstreamname
+ LogStreamName *types.Value `json:"LogStreamName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_CloudWatchLoggingOptions) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_copycommand.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_copycommand.go
new file mode 100644
index 0000000000..80bde8dfdf
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_copycommand.go
@@ -0,0 +1,47 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_CopyCommand AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.CopyCommand)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html
+type DeliveryStream_CopyCommand struct {
+
+ // CopyOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-copyoptions
+ CopyOptions *types.Value `json:"CopyOptions,omitempty"`
+
+ // DataTableColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-datatablecolumns
+ DataTableColumns *types.Value `json:"DataTableColumns,omitempty"`
+
+ // DataTableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-copycommand.html#cfn-kinesisfirehose-deliverystream-copycommand-datatablename
+ DataTableName *types.Value `json:"DataTableName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_CopyCommand) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.CopyCommand"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_dataformatconversionconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_dataformatconversionconfiguration.go
new file mode 100644
index 0000000000..24d2805807
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_dataformatconversionconfiguration.go
@@ -0,0 +1,52 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_DataFormatConversionConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html
+type DeliveryStream_DataFormatConversionConfiguration struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // InputFormatConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-inputformatconfiguration
+ InputFormatConfiguration *DeliveryStream_InputFormatConfiguration `json:"InputFormatConfiguration,omitempty"`
+
+ // OutputFormatConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-outputformatconfiguration
+ OutputFormatConfiguration *DeliveryStream_OutputFormatConfiguration `json:"OutputFormatConfiguration,omitempty"`
+
+ // SchemaConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dataformatconversionconfiguration.html#cfn-kinesisfirehose-deliverystream-dataformatconversionconfiguration-schemaconfiguration
+ SchemaConfiguration *DeliveryStream_SchemaConfiguration `json:"SchemaConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_DataFormatConversionConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deliverystreamencryptionconfigurationinput.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deliverystreamencryptionconfigurationinput.go
new file mode 100644
index 0000000000..1e1e21e395
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deliverystreamencryptionconfigurationinput.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_DeliveryStreamEncryptionConfigurationInput AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html
+type DeliveryStream_DeliveryStreamEncryptionConfigurationInput struct {
+
+ // KeyARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput-keyarn
+ KeyARN *types.Value `json:"KeyARN,omitempty"`
+
+ // KeyType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput.html#cfn-kinesisfirehose-deliverystream-deliverystreamencryptionconfigurationinput-keytype
+ KeyType *types.Value `json:"KeyType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_DeliveryStreamEncryptionConfigurationInput) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deserializer.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deserializer.go
new file mode 100644
index 0000000000..9654d8062b
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_deserializer.go
@@ -0,0 +1,40 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_Deserializer AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.Deserializer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html
+type DeliveryStream_Deserializer struct {
+
+ // HiveJsonSerDe AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html#cfn-kinesisfirehose-deliverystream-deserializer-hivejsonserde
+ HiveJsonSerDe *DeliveryStream_HiveJsonSerDe `json:"HiveJsonSerDe,omitempty"`
+
+ // OpenXJsonSerDe AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-deserializer.html#cfn-kinesisfirehose-deliverystream-deserializer-openxjsonserde
+ OpenXJsonSerDe *DeliveryStream_OpenXJsonSerDe `json:"OpenXJsonSerDe,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_Deserializer) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.Deserializer"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_dynamicpartitioningconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_dynamicpartitioningconfiguration.go
new file mode 100644
index 0000000000..8f56f56c64
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_dynamicpartitioningconfiguration.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_DynamicPartitioningConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dynamicpartitioningconfiguration.html
+type DeliveryStream_DynamicPartitioningConfiguration struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dynamicpartitioningconfiguration.html#cfn-kinesisfirehose-deliverystream-dynamicpartitioningconfiguration-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // RetryOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-dynamicpartitioningconfiguration.html#cfn-kinesisfirehose-deliverystream-dynamicpartitioningconfiguration-retryoptions
+ RetryOptions *DeliveryStream_RetryOptions `json:"RetryOptions,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_DynamicPartitioningConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go
new file mode 100644
index 0000000000..841e74450a
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchbufferinghints.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_ElasticsearchBufferingHints AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html
+type DeliveryStream_ElasticsearchBufferingHints struct {
+
+ // IntervalInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-intervalinseconds
+ IntervalInSeconds *types.Value `json:"IntervalInSeconds,omitempty"`
+
+ // SizeInMBs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchbufferinghints.html#cfn-kinesisfirehose-deliverystream-elasticsearchbufferinghints-sizeinmbs
+ SizeInMBs *types.Value `json:"SizeInMBs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_ElasticsearchBufferingHints) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go
new file mode 100644
index 0000000000..988feb121b
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchdestinationconfiguration.go
@@ -0,0 +1,97 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_ElasticsearchDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html
+type DeliveryStream_ElasticsearchDestinationConfiguration struct {
+
+ // BufferingHints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-bufferinghints
+ BufferingHints *DeliveryStream_ElasticsearchBufferingHints `json:"BufferingHints,omitempty"`
+
+ // CloudWatchLoggingOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-cloudwatchloggingoptions
+ CloudWatchLoggingOptions *DeliveryStream_CloudWatchLoggingOptions `json:"CloudWatchLoggingOptions,omitempty"`
+
+ // ClusterEndpoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-clusterendpoint
+ ClusterEndpoint *types.Value `json:"ClusterEndpoint,omitempty"`
+
+ // DomainARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-domainarn
+ DomainARN *types.Value `json:"DomainARN,omitempty"`
+
+ // IndexName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // IndexRotationPeriod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-indexrotationperiod
+ IndexRotationPeriod *types.Value `json:"IndexRotationPeriod,omitempty"`
+
+ // ProcessingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-processingconfiguration
+ ProcessingConfiguration *DeliveryStream_ProcessingConfiguration `json:"ProcessingConfiguration,omitempty"`
+
+ // RetryOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-retryoptions
+ RetryOptions *DeliveryStream_ElasticsearchRetryOptions `json:"RetryOptions,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // S3BackupMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3backupmode
+ S3BackupMode *types.Value `json:"S3BackupMode,omitempty"`
+
+ // S3Configuration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-s3configuration
+ S3Configuration *DeliveryStream_S3DestinationConfiguration `json:"S3Configuration,omitempty"`
+
+ // TypeName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-typename
+ TypeName *types.Value `json:"TypeName,omitempty"`
+
+ // VpcConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-elasticsearchdestinationconfiguration-vpcconfiguration
+ VpcConfiguration *DeliveryStream_VpcConfiguration `json:"VpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_ElasticsearchDestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go
new file mode 100644
index 0000000000..aa539f6a81
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_elasticsearchretryoptions.go
@@ -0,0 +1,37 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_ElasticsearchRetryOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html
+type DeliveryStream_ElasticsearchRetryOptions struct {
+
+ // DurationInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-elasticsearchretryoptions.html#cfn-kinesisfirehose-deliverystream-elasticsearchretryoptions-durationinseconds
+ DurationInSeconds *types.Value `json:"DurationInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_ElasticsearchRetryOptions) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go
new file mode 100644
index 0000000000..4ddd8bd658
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_encryptionconfiguration.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_EncryptionConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html
+type DeliveryStream_EncryptionConfiguration struct {
+
+ // KMSEncryptionConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html#cfn-kinesisfirehose-deliverystream-encryptionconfiguration-kmsencryptionconfig
+ KMSEncryptionConfig *DeliveryStream_KMSEncryptionConfig `json:"KMSEncryptionConfig,omitempty"`
+
+ // NoEncryptionConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-encryptionconfiguration.html#cfn-kinesisfirehose-deliverystream-encryptionconfiguration-noencryptionconfig
+ NoEncryptionConfig *types.Value `json:"NoEncryptionConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_EncryptionConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go
new file mode 100644
index 0000000000..dc81107a0e
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_extendeds3destinationconfiguration.go
@@ -0,0 +1,97 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_ExtendedS3DestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html
+type DeliveryStream_ExtendedS3DestinationConfiguration struct {
+
+ // BucketARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bucketarn
+ BucketARN *types.Value `json:"BucketARN,omitempty"`
+
+ // BufferingHints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-bufferinghints
+ BufferingHints *DeliveryStream_BufferingHints `json:"BufferingHints,omitempty"`
+
+ // CloudWatchLoggingOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-cloudwatchloggingoptions
+ CloudWatchLoggingOptions *DeliveryStream_CloudWatchLoggingOptions `json:"CloudWatchLoggingOptions,omitempty"`
+
+ // CompressionFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-compressionformat
+ CompressionFormat *types.Value `json:"CompressionFormat,omitempty"`
+
+ // DataFormatConversionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-dataformatconversionconfiguration
+ DataFormatConversionConfiguration *DeliveryStream_DataFormatConversionConfiguration `json:"DataFormatConversionConfiguration,omitempty"`
+
+ // DynamicPartitioningConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-dynamicpartitioningconfiguration
+ DynamicPartitioningConfiguration *DeliveryStream_DynamicPartitioningConfiguration `json:"DynamicPartitioningConfiguration,omitempty"`
+
+ // EncryptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-encryptionconfiguration
+ EncryptionConfiguration *DeliveryStream_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"`
+
+ // ErrorOutputPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-erroroutputprefix
+ ErrorOutputPrefix *types.Value `json:"ErrorOutputPrefix,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // ProcessingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-processingconfiguration
+ ProcessingConfiguration *DeliveryStream_ProcessingConfiguration `json:"ProcessingConfiguration,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // S3BackupConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-s3backupconfiguration
+ S3BackupConfiguration *DeliveryStream_S3DestinationConfiguration `json:"S3BackupConfiguration,omitempty"`
+
+ // S3BackupMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-extendeds3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-extendeds3destinationconfiguration-s3backupmode
+ S3BackupMode *types.Value `json:"S3BackupMode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_ExtendedS3DestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_hivejsonserde.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_hivejsonserde.go
new file mode 100644
index 0000000000..15a9815edc
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_hivejsonserde.go
@@ -0,0 +1,37 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_HiveJsonSerDe AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-hivejsonserde.html
+type DeliveryStream_HiveJsonSerDe struct {
+
+ // TimestampFormats AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-hivejsonserde.html#cfn-kinesisfirehose-deliverystream-hivejsonserde-timestampformats
+ TimestampFormats *types.Value `json:"TimestampFormats,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_HiveJsonSerDe) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointcommonattribute.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointcommonattribute.go
new file mode 100644
index 0000000000..b6546596c1
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointcommonattribute.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_HttpEndpointCommonAttribute AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointcommonattribute.html
+type DeliveryStream_HttpEndpointCommonAttribute struct {
+
+ // AttributeName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointcommonattribute.html#cfn-kinesisfirehose-deliverystream-httpendpointcommonattribute-attributename
+ AttributeName *types.Value `json:"AttributeName,omitempty"`
+
+ // AttributeValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointcommonattribute.html#cfn-kinesisfirehose-deliverystream-httpendpointcommonattribute-attributevalue
+ AttributeValue *types.Value `json:"AttributeValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_HttpEndpointCommonAttribute) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointconfiguration.go
new file mode 100644
index 0000000000..34a49a2515
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointconfiguration.go
@@ -0,0 +1,47 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_HttpEndpointConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointconfiguration.html
+type DeliveryStream_HttpEndpointConfiguration struct {
+
+ // AccessKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointconfiguration-accesskey
+ AccessKey *types.Value `json:"AccessKey,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Url AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointconfiguration-url
+ Url *types.Value `json:"Url,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_HttpEndpointConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointdestinationconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointdestinationconfiguration.go
new file mode 100644
index 0000000000..4458a2e5e3
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointdestinationconfiguration.go
@@ -0,0 +1,77 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_HttpEndpointDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html
+type DeliveryStream_HttpEndpointDestinationConfiguration struct {
+
+ // BufferingHints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-bufferinghints
+ BufferingHints *DeliveryStream_BufferingHints `json:"BufferingHints,omitempty"`
+
+ // CloudWatchLoggingOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-cloudwatchloggingoptions
+ CloudWatchLoggingOptions *DeliveryStream_CloudWatchLoggingOptions `json:"CloudWatchLoggingOptions,omitempty"`
+
+ // EndpointConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-endpointconfiguration
+ EndpointConfiguration *DeliveryStream_HttpEndpointConfiguration `json:"EndpointConfiguration,omitempty"`
+
+ // ProcessingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-processingconfiguration
+ ProcessingConfiguration *DeliveryStream_ProcessingConfiguration `json:"ProcessingConfiguration,omitempty"`
+
+ // RequestConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-requestconfiguration
+ RequestConfiguration *DeliveryStream_HttpEndpointRequestConfiguration `json:"RequestConfiguration,omitempty"`
+
+ // RetryOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-retryoptions
+ RetryOptions *DeliveryStream_RetryOptions `json:"RetryOptions,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // S3BackupMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-s3backupmode
+ S3BackupMode *types.Value `json:"S3BackupMode,omitempty"`
+
+ // S3Configuration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointdestinationconfiguration-s3configuration
+ S3Configuration *DeliveryStream_S3DestinationConfiguration `json:"S3Configuration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_HttpEndpointDestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointrequestconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointrequestconfiguration.go
new file mode 100644
index 0000000000..81558a2091
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_httpendpointrequestconfiguration.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_HttpEndpointRequestConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointrequestconfiguration.html
+type DeliveryStream_HttpEndpointRequestConfiguration struct {
+
+ // CommonAttributes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointrequestconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointrequestconfiguration-commonattributes
+ CommonAttributes []DeliveryStream_HttpEndpointCommonAttribute `json:"CommonAttributes,omitempty"`
+
+ // ContentEncoding AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-httpendpointrequestconfiguration.html#cfn-kinesisfirehose-deliverystream-httpendpointrequestconfiguration-contentencoding
+ ContentEncoding *types.Value `json:"ContentEncoding,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_HttpEndpointRequestConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_inputformatconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_inputformatconfiguration.go
new file mode 100644
index 0000000000..85505c8a33
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_inputformatconfiguration.go
@@ -0,0 +1,35 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_InputFormatConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-inputformatconfiguration.html
+type DeliveryStream_InputFormatConfiguration struct {
+
+ // Deserializer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-inputformatconfiguration.html#cfn-kinesisfirehose-deliverystream-inputformatconfiguration-deserializer
+ Deserializer *DeliveryStream_Deserializer `json:"Deserializer,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_InputFormatConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go
new file mode 100644
index 0000000000..3b28ec893d
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_kinesisstreamsourceconfiguration.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_KinesisStreamSourceConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html
+type DeliveryStream_KinesisStreamSourceConfiguration struct {
+
+ // KinesisStreamARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration-kinesisstreamarn
+ KinesisStreamARN *types.Value `json:"KinesisStreamARN,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration.html#cfn-kinesisfirehose-deliverystream-kinesisstreamsourceconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_KinesisStreamSourceConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go
new file mode 100644
index 0000000000..0586336219
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_kmsencryptionconfig.go
@@ -0,0 +1,37 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_KMSEncryptionConfig AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html
+type DeliveryStream_KMSEncryptionConfig struct {
+
+ // AWSKMSKeyARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-kmsencryptionconfig.html#cfn-kinesisfirehose-deliverystream-kmsencryptionconfig-awskmskeyarn
+ AWSKMSKeyARN *types.Value `json:"AWSKMSKeyARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_KMSEncryptionConfig) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_openxjsonserde.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_openxjsonserde.go
new file mode 100644
index 0000000000..af95efad5e
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_openxjsonserde.go
@@ -0,0 +1,47 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_OpenXJsonSerDe AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html
+type DeliveryStream_OpenXJsonSerDe struct {
+
+ // CaseInsensitive AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html#cfn-kinesisfirehose-deliverystream-openxjsonserde-caseinsensitive
+ CaseInsensitive *types.Value `json:"CaseInsensitive,omitempty"`
+
+ // ColumnToJsonKeyMappings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html#cfn-kinesisfirehose-deliverystream-openxjsonserde-columntojsonkeymappings
+ ColumnToJsonKeyMappings map[string]*types.Value `json:"ColumnToJsonKeyMappings,omitempty"`
+
+ // ConvertDotsInJsonKeysToUnderscores AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-openxjsonserde.html#cfn-kinesisfirehose-deliverystream-openxjsonserde-convertdotsinjsonkeystounderscores
+ ConvertDotsInJsonKeysToUnderscores *types.Value `json:"ConvertDotsInJsonKeysToUnderscores,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_OpenXJsonSerDe) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_orcserde.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_orcserde.go
new file mode 100644
index 0000000000..ef92a7daf0
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_orcserde.go
@@ -0,0 +1,82 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_OrcSerDe AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.OrcSerDe)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html
+type DeliveryStream_OrcSerDe struct {
+
+ // BlockSizeBytes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-blocksizebytes
+ BlockSizeBytes *types.Value `json:"BlockSizeBytes,omitempty"`
+
+ // BloomFilterColumns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-bloomfiltercolumns
+ BloomFilterColumns *types.Value `json:"BloomFilterColumns,omitempty"`
+
+ // BloomFilterFalsePositiveProbability AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-bloomfilterfalsepositiveprobability
+ BloomFilterFalsePositiveProbability *types.Value `json:"BloomFilterFalsePositiveProbability,omitempty"`
+
+ // Compression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-compression
+ Compression *types.Value `json:"Compression,omitempty"`
+
+ // DictionaryKeyThreshold AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-dictionarykeythreshold
+ DictionaryKeyThreshold *types.Value `json:"DictionaryKeyThreshold,omitempty"`
+
+ // EnablePadding AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-enablepadding
+ EnablePadding *types.Value `json:"EnablePadding,omitempty"`
+
+ // FormatVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-formatversion
+ FormatVersion *types.Value `json:"FormatVersion,omitempty"`
+
+ // PaddingTolerance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-paddingtolerance
+ PaddingTolerance *types.Value `json:"PaddingTolerance,omitempty"`
+
+ // RowIndexStride AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-rowindexstride
+ RowIndexStride *types.Value `json:"RowIndexStride,omitempty"`
+
+ // StripeSizeBytes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-orcserde.html#cfn-kinesisfirehose-deliverystream-orcserde-stripesizebytes
+ StripeSizeBytes *types.Value `json:"StripeSizeBytes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_OrcSerDe) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.OrcSerDe"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_outputformatconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_outputformatconfiguration.go
new file mode 100644
index 0000000000..147352405d
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_outputformatconfiguration.go
@@ -0,0 +1,35 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_OutputFormatConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-outputformatconfiguration.html
+type DeliveryStream_OutputFormatConfiguration struct {
+
+ // Serializer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-outputformatconfiguration.html#cfn-kinesisfirehose-deliverystream-outputformatconfiguration-serializer
+ Serializer *DeliveryStream_Serializer `json:"Serializer,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_OutputFormatConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_parquetserde.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_parquetserde.go
new file mode 100644
index 0000000000..6c8af4391d
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_parquetserde.go
@@ -0,0 +1,62 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_ParquetSerDe AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ParquetSerDe)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html
+type DeliveryStream_ParquetSerDe struct {
+
+ // BlockSizeBytes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-blocksizebytes
+ BlockSizeBytes *types.Value `json:"BlockSizeBytes,omitempty"`
+
+ // Compression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-compression
+ Compression *types.Value `json:"Compression,omitempty"`
+
+ // EnableDictionaryCompression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-enabledictionarycompression
+ EnableDictionaryCompression *types.Value `json:"EnableDictionaryCompression,omitempty"`
+
+ // MaxPaddingBytes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-maxpaddingbytes
+ MaxPaddingBytes *types.Value `json:"MaxPaddingBytes,omitempty"`
+
+ // PageSizeBytes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-pagesizebytes
+ PageSizeBytes *types.Value `json:"PageSizeBytes,omitempty"`
+
+ // WriterVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-parquetserde.html#cfn-kinesisfirehose-deliverystream-parquetserde-writerversion
+ WriterVersion *types.Value `json:"WriterVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_ParquetSerDe) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.ParquetSerDe"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processingconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processingconfiguration.go
new file mode 100644
index 0000000000..9cd36b61b2
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processingconfiguration.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_ProcessingConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html
+type DeliveryStream_ProcessingConfiguration struct {
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html#cfn-kinesisfirehose-deliverystream-processingconfiguration-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // Processors AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processingconfiguration.html#cfn-kinesisfirehose-deliverystream-processingconfiguration-processors
+ Processors []DeliveryStream_Processor `json:"Processors,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_ProcessingConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processor.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processor.go
new file mode 100644
index 0000000000..17876e506f
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processor.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_Processor AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.Processor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html
+type DeliveryStream_Processor struct {
+
+ // Parameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-parameters
+ Parameters []DeliveryStream_ProcessorParameter `json:"Parameters,omitempty"`
+
+ // Type AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processor.html#cfn-kinesisfirehose-deliverystream-processor-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_Processor) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.Processor"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processorparameter.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processorparameter.go
new file mode 100644
index 0000000000..3b679992e5
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_processorparameter.go
@@ -0,0 +1,42 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_ProcessorParameter AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.ProcessorParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html
+type DeliveryStream_ProcessorParameter struct {
+
+ // ParameterName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html#cfn-kinesisfirehose-deliverystream-processorparameter-parametername
+ ParameterName *types.Value `json:"ParameterName,omitempty"`
+
+ // ParameterValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-processorparameter.html#cfn-kinesisfirehose-deliverystream-processorparameter-parametervalue
+ ParameterValue *types.Value `json:"ParameterValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_ProcessorParameter) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.ProcessorParameter"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go
new file mode 100644
index 0000000000..0376fed9f8
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_redshiftdestinationconfiguration.go
@@ -0,0 +1,87 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_RedshiftDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html
+type DeliveryStream_RedshiftDestinationConfiguration struct {
+
+ // CloudWatchLoggingOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-cloudwatchloggingoptions
+ CloudWatchLoggingOptions *DeliveryStream_CloudWatchLoggingOptions `json:"CloudWatchLoggingOptions,omitempty"`
+
+ // ClusterJDBCURL AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-clusterjdbcurl
+ ClusterJDBCURL *types.Value `json:"ClusterJDBCURL,omitempty"`
+
+ // CopyCommand AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-copycommand
+ CopyCommand *DeliveryStream_CopyCommand `json:"CopyCommand,omitempty"`
+
+ // Password AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-password
+ Password *types.Value `json:"Password,omitempty"`
+
+ // ProcessingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-processingconfiguration
+ ProcessingConfiguration *DeliveryStream_ProcessingConfiguration `json:"ProcessingConfiguration,omitempty"`
+
+ // RetryOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-retryoptions
+ RetryOptions *DeliveryStream_RedshiftRetryOptions `json:"RetryOptions,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // S3BackupConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3backupconfiguration
+ S3BackupConfiguration *DeliveryStream_S3DestinationConfiguration `json:"S3BackupConfiguration,omitempty"`
+
+ // S3BackupMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3backupmode
+ S3BackupMode *types.Value `json:"S3BackupMode,omitempty"`
+
+ // S3Configuration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3configuration
+ S3Configuration *DeliveryStream_S3DestinationConfiguration `json:"S3Configuration,omitempty"`
+
+ // Username AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-username
+ Username *types.Value `json:"Username,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_RedshiftDestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_redshiftretryoptions.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_redshiftretryoptions.go
new file mode 100644
index 0000000000..03d377678e
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_redshiftretryoptions.go
@@ -0,0 +1,37 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_RedshiftRetryOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.RedshiftRetryOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftretryoptions.html
+type DeliveryStream_RedshiftRetryOptions struct {
+
+ // DurationInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-redshiftretryoptions.html#cfn-kinesisfirehose-deliverystream-redshiftretryoptions-durationinseconds
+ DurationInSeconds *types.Value `json:"DurationInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_RedshiftRetryOptions) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.RedshiftRetryOptions"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_retryoptions.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_retryoptions.go
new file mode 100644
index 0000000000..ce2ecb595d
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_retryoptions.go
@@ -0,0 +1,37 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_RetryOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.RetryOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-retryoptions.html
+type DeliveryStream_RetryOptions struct {
+
+ // DurationInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-retryoptions.html#cfn-kinesisfirehose-deliverystream-retryoptions-durationinseconds
+ DurationInSeconds *types.Value `json:"DurationInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_RetryOptions) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.RetryOptions"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go
new file mode 100644
index 0000000000..eb3e223633
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_s3destinationconfiguration.go
@@ -0,0 +1,72 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_S3DestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html
+type DeliveryStream_S3DestinationConfiguration struct {
+
+ // BucketARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bucketarn
+ BucketARN *types.Value `json:"BucketARN,omitempty"`
+
+ // BufferingHints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bufferinghints
+ BufferingHints *DeliveryStream_BufferingHints `json:"BufferingHints,omitempty"`
+
+ // CloudWatchLoggingOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-cloudwatchloggingoptions
+ CloudWatchLoggingOptions *DeliveryStream_CloudWatchLoggingOptions `json:"CloudWatchLoggingOptions,omitempty"`
+
+ // CompressionFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-compressionformat
+ CompressionFormat *types.Value `json:"CompressionFormat,omitempty"`
+
+ // EncryptionConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-encryptionconfiguration
+ EncryptionConfiguration *DeliveryStream_EncryptionConfiguration `json:"EncryptionConfiguration,omitempty"`
+
+ // ErrorOutputPrefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-erroroutputprefix
+ ErrorOutputPrefix *types.Value `json:"ErrorOutputPrefix,omitempty"`
+
+ // Prefix AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-prefix
+ Prefix *types.Value `json:"Prefix,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html#cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_S3DestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_schemaconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_schemaconfiguration.go
new file mode 100644
index 0000000000..6cc53e4563
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_schemaconfiguration.go
@@ -0,0 +1,62 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_SchemaConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html
+type DeliveryStream_SchemaConfiguration struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // RoleARN AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // VersionId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-schemaconfiguration.html#cfn-kinesisfirehose-deliverystream-schemaconfiguration-versionid
+ VersionId *types.Value `json:"VersionId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_SchemaConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_serializer.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_serializer.go
new file mode 100644
index 0000000000..4d12dd5c37
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_serializer.go
@@ -0,0 +1,40 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_Serializer AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.Serializer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-serializer.html
+type DeliveryStream_Serializer struct {
+
+ // OrcSerDe AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-serializer.html#cfn-kinesisfirehose-deliverystream-serializer-orcserde
+ OrcSerDe *DeliveryStream_OrcSerDe `json:"OrcSerDe,omitempty"`
+
+ // ParquetSerDe AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-serializer.html#cfn-kinesisfirehose-deliverystream-serializer-parquetserde
+ ParquetSerDe *DeliveryStream_ParquetSerDe `json:"ParquetSerDe,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_Serializer) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.Serializer"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go
new file mode 100644
index 0000000000..c28345d949
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_splunkdestinationconfiguration.go
@@ -0,0 +1,77 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_SplunkDestinationConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html
+type DeliveryStream_SplunkDestinationConfiguration struct {
+
+ // CloudWatchLoggingOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-cloudwatchloggingoptions
+ CloudWatchLoggingOptions *DeliveryStream_CloudWatchLoggingOptions `json:"CloudWatchLoggingOptions,omitempty"`
+
+ // HECAcknowledgmentTimeoutInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecacknowledgmenttimeoutinseconds
+ HECAcknowledgmentTimeoutInSeconds *types.Value `json:"HECAcknowledgmentTimeoutInSeconds,omitempty"`
+
+ // HECEndpoint AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecendpoint
+ HECEndpoint *types.Value `json:"HECEndpoint,omitempty"`
+
+ // HECEndpointType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hecendpointtype
+ HECEndpointType *types.Value `json:"HECEndpointType,omitempty"`
+
+ // HECToken AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-hectoken
+ HECToken *types.Value `json:"HECToken,omitempty"`
+
+ // ProcessingConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-processingconfiguration
+ ProcessingConfiguration *DeliveryStream_ProcessingConfiguration `json:"ProcessingConfiguration,omitempty"`
+
+ // RetryOptions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-retryoptions
+ RetryOptions *DeliveryStream_SplunkRetryOptions `json:"RetryOptions,omitempty"`
+
+ // S3BackupMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-s3backupmode
+ S3BackupMode *types.Value `json:"S3BackupMode,omitempty"`
+
+ // S3Configuration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkdestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-splunkdestinationconfiguration-s3configuration
+ S3Configuration *DeliveryStream_S3DestinationConfiguration `json:"S3Configuration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_SplunkDestinationConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_splunkretryoptions.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_splunkretryoptions.go
new file mode 100644
index 0000000000..bfcbe57274
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_splunkretryoptions.go
@@ -0,0 +1,37 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_SplunkRetryOptions AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.SplunkRetryOptions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkretryoptions.html
+type DeliveryStream_SplunkRetryOptions struct {
+
+ // DurationInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-splunkretryoptions.html#cfn-kinesisfirehose-deliverystream-splunkretryoptions-durationinseconds
+ DurationInSeconds *types.Value `json:"DurationInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_SplunkRetryOptions) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.SplunkRetryOptions"
+}
diff --git a/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_vpcconfiguration.go b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_vpcconfiguration.go
new file mode 100644
index 0000000000..19a76fa72d
--- /dev/null
+++ b/goformation/cloudformation/kinesisfirehose/aws-kinesisfirehose-deliverystream_vpcconfiguration.go
@@ -0,0 +1,47 @@
+package kinesisfirehose
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DeliveryStream_VpcConfiguration AWS CloudFormation Resource (AWS::KinesisFirehose::DeliveryStream.VpcConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html
+type DeliveryStream_VpcConfiguration struct {
+
+ // RoleARN AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-rolearn
+ RoleARN *types.Value `json:"RoleARN,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-vpcconfiguration.html#cfn-kinesisfirehose-deliverystream-vpcconfiguration-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DeliveryStream_VpcConfiguration) AWSCloudFormationType() string {
+ return "AWS::KinesisFirehose::DeliveryStream.VpcConfiguration"
+}
diff --git a/goformation/cloudformation/kms/aws-kms-alias.go b/goformation/cloudformation/kms/aws-kms-alias.go
new file mode 100644
index 0000000000..9771531229
--- /dev/null
+++ b/goformation/cloudformation/kms/aws-kms-alias.go
@@ -0,0 +1,113 @@
+package kms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alias AWS CloudFormation Resource (AWS::KMS::Alias)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html
+type Alias struct {
+
+ // AliasName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html#cfn-kms-alias-aliasname
+ AliasName *types.Value `json:"AliasName,omitempty"`
+
+ // TargetKeyId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-alias.html#cfn-kms-alias-targetkeyid
+ TargetKeyId *types.Value `json:"TargetKeyId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alias) AWSCloudFormationType() string {
+ return "AWS::KMS::Alias"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Alias) MarshalJSON() ([]byte, error) {
+ type Properties Alias
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Alias) UnmarshalJSON(b []byte) error {
+ type Properties Alias
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Alias(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kms/aws-kms-key.go b/goformation/cloudformation/kms/aws-kms-key.go
new file mode 100644
index 0000000000..729917bfd1
--- /dev/null
+++ b/goformation/cloudformation/kms/aws-kms-key.go
@@ -0,0 +1,149 @@
+package kms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Key AWS CloudFormation Resource (AWS::KMS::Key)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html
+type Key struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EnableKeyRotation AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-enablekeyrotation
+ EnableKeyRotation *types.Value `json:"EnableKeyRotation,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // KeyPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keypolicy
+ KeyPolicy interface{} `json:"KeyPolicy,omitempty"`
+
+ // KeySpec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keyspec
+ KeySpec *types.Value `json:"KeySpec,omitempty"`
+
+ // KeyUsage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-keyusage
+ KeyUsage *types.Value `json:"KeyUsage,omitempty"`
+
+ // MultiRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-multiregion
+ MultiRegion *types.Value `json:"MultiRegion,omitempty"`
+
+ // PendingWindowInDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-pendingwindowindays
+ PendingWindowInDays *types.Value `json:"PendingWindowInDays,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html#cfn-kms-key-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Key) AWSCloudFormationType() string {
+ return "AWS::KMS::Key"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Key) MarshalJSON() ([]byte, error) {
+ type Properties Key
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Key) UnmarshalJSON(b []byte) error {
+ type Properties Key
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Key(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/kms/aws-kms-replicakey.go b/goformation/cloudformation/kms/aws-kms-replicakey.go
new file mode 100644
index 0000000000..f609e89ff5
--- /dev/null
+++ b/goformation/cloudformation/kms/aws-kms-replicakey.go
@@ -0,0 +1,134 @@
+package kms
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// ReplicaKey AWS CloudFormation Resource (AWS::KMS::ReplicaKey)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html
+type ReplicaKey struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html#cfn-kms-replicakey-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html#cfn-kms-replicakey-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // KeyPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html#cfn-kms-replicakey-keypolicy
+ KeyPolicy interface{} `json:"KeyPolicy,omitempty"`
+
+ // PendingWindowInDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html#cfn-kms-replicakey-pendingwindowindays
+ PendingWindowInDays *types.Value `json:"PendingWindowInDays,omitempty"`
+
+ // PrimaryKeyArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html#cfn-kms-replicakey-primarykeyarn
+ PrimaryKeyArn *types.Value `json:"PrimaryKeyArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html#cfn-kms-replicakey-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ReplicaKey) AWSCloudFormationType() string {
+ return "AWS::KMS::ReplicaKey"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ReplicaKey) MarshalJSON() ([]byte, error) {
+ type Properties ReplicaKey
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ReplicaKey) UnmarshalJSON(b []byte) error {
+ type Properties ReplicaKey
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ReplicaKey(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings.go b/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings.go
new file mode 100644
index 0000000000..5ee644e79f
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings.go
@@ -0,0 +1,113 @@
+package lakeformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataLakeSettings AWS CloudFormation Resource (AWS::LakeFormation::DataLakeSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html
+type DataLakeSettings struct {
+
+ // Admins AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html#cfn-lakeformation-datalakesettings-admins
+ Admins *DataLakeSettings_Admins `json:"Admins,omitempty"`
+
+ // TrustedResourceOwners AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-datalakesettings.html#cfn-lakeformation-datalakesettings-trustedresourceowners
+ TrustedResourceOwners *types.Value `json:"TrustedResourceOwners,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataLakeSettings) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::DataLakeSettings"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r DataLakeSettings) MarshalJSON() ([]byte, error) {
+ type Properties DataLakeSettings
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *DataLakeSettings) UnmarshalJSON(b []byte) error {
+ type Properties DataLakeSettings
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = DataLakeSettings(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings_admins.go b/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings_admins.go
new file mode 100644
index 0000000000..06f90ff14d
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings_admins.go
@@ -0,0 +1,30 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataLakeSettings_Admins AWS CloudFormation Resource (AWS::LakeFormation::DataLakeSettings.Admins)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-datalakesettings-admins.html
+type DataLakeSettings_Admins struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataLakeSettings_Admins) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::DataLakeSettings.Admins"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings_datalakeprincipal.go b/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings_datalakeprincipal.go
new file mode 100644
index 0000000000..f4a3115fe6
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-datalakesettings_datalakeprincipal.go
@@ -0,0 +1,37 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// DataLakeSettings_DataLakePrincipal AWS CloudFormation Resource (AWS::LakeFormation::DataLakeSettings.DataLakePrincipal)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-datalakesettings-datalakeprincipal.html
+type DataLakeSettings_DataLakePrincipal struct {
+
+ // DataLakePrincipalIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-datalakesettings-datalakeprincipal.html#cfn-lakeformation-datalakesettings-datalakeprincipal-datalakeprincipalidentifier
+ DataLakePrincipalIdentifier *types.Value `json:"DataLakePrincipalIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *DataLakeSettings_DataLakePrincipal) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::DataLakeSettings.DataLakePrincipal"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions.go
new file mode 100644
index 0000000000..0096c5442e
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions.go
@@ -0,0 +1,123 @@
+package lakeformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions AWS CloudFormation Resource (AWS::LakeFormation::Permissions)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html
+type Permissions struct {
+
+ // DataLakePrincipal AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html#cfn-lakeformation-permissions-datalakeprincipal
+ DataLakePrincipal *Permissions_DataLakePrincipal `json:"DataLakePrincipal,omitempty"`
+
+ // Permissions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html#cfn-lakeformation-permissions-permissions
+ Permissions *types.Value `json:"Permissions,omitempty"`
+
+ // PermissionsWithGrantOption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html#cfn-lakeformation-permissions-permissionswithgrantoption
+ PermissionsWithGrantOption *types.Value `json:"PermissionsWithGrantOption,omitempty"`
+
+ // Resource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-permissions.html#cfn-lakeformation-permissions-resource
+ Resource *Permissions_Resource `json:"Resource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Permissions) MarshalJSON() ([]byte, error) {
+ type Properties Permissions
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Permissions) UnmarshalJSON(b []byte) error {
+ type Properties Permissions
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Permissions(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_columnwildcard.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_columnwildcard.go
new file mode 100644
index 0000000000..15ce587932
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_columnwildcard.go
@@ -0,0 +1,37 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions_ColumnWildcard AWS CloudFormation Resource (AWS::LakeFormation::Permissions.ColumnWildcard)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-columnwildcard.html
+type Permissions_ColumnWildcard struct {
+
+ // ExcludedColumnNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-columnwildcard.html#cfn-lakeformation-permissions-columnwildcard-excludedcolumnnames
+ ExcludedColumnNames *types.Value `json:"ExcludedColumnNames,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions_ColumnWildcard) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions.ColumnWildcard"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_databaseresource.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_databaseresource.go
new file mode 100644
index 0000000000..47ff894c72
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_databaseresource.go
@@ -0,0 +1,42 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions_DatabaseResource AWS CloudFormation Resource (AWS::LakeFormation::Permissions.DatabaseResource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-databaseresource.html
+type Permissions_DatabaseResource struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-databaseresource.html#cfn-lakeformation-permissions-databaseresource-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-databaseresource.html#cfn-lakeformation-permissions-databaseresource-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions_DatabaseResource) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions.DatabaseResource"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_datalakeprincipal.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_datalakeprincipal.go
new file mode 100644
index 0000000000..5444935cdd
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_datalakeprincipal.go
@@ -0,0 +1,37 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions_DataLakePrincipal AWS CloudFormation Resource (AWS::LakeFormation::Permissions.DataLakePrincipal)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-datalakeprincipal.html
+type Permissions_DataLakePrincipal struct {
+
+ // DataLakePrincipalIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-datalakeprincipal.html#cfn-lakeformation-permissions-datalakeprincipal-datalakeprincipalidentifier
+ DataLakePrincipalIdentifier *types.Value `json:"DataLakePrincipalIdentifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions_DataLakePrincipal) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions.DataLakePrincipal"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_datalocationresource.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_datalocationresource.go
new file mode 100644
index 0000000000..d1fbea354b
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_datalocationresource.go
@@ -0,0 +1,42 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions_DataLocationResource AWS CloudFormation Resource (AWS::LakeFormation::Permissions.DataLocationResource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-datalocationresource.html
+type Permissions_DataLocationResource struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-datalocationresource.html#cfn-lakeformation-permissions-datalocationresource-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // S3Resource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-datalocationresource.html#cfn-lakeformation-permissions-datalocationresource-s3resource
+ S3Resource *types.Value `json:"S3Resource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions_DataLocationResource) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions.DataLocationResource"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_resource.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_resource.go
new file mode 100644
index 0000000000..e8cdfada32
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_resource.go
@@ -0,0 +1,50 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions_Resource AWS CloudFormation Resource (AWS::LakeFormation::Permissions.Resource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-resource.html
+type Permissions_Resource struct {
+
+ // DataLocationResource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-resource.html#cfn-lakeformation-permissions-resource-datalocationresource
+ DataLocationResource *Permissions_DataLocationResource `json:"DataLocationResource,omitempty"`
+
+ // DatabaseResource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-resource.html#cfn-lakeformation-permissions-resource-databaseresource
+ DatabaseResource *Permissions_DatabaseResource `json:"DatabaseResource,omitempty"`
+
+ // TableResource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-resource.html#cfn-lakeformation-permissions-resource-tableresource
+ TableResource *Permissions_TableResource `json:"TableResource,omitempty"`
+
+ // TableWithColumnsResource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-resource.html#cfn-lakeformation-permissions-resource-tablewithcolumnsresource
+ TableWithColumnsResource *Permissions_TableWithColumnsResource `json:"TableWithColumnsResource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions_Resource) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions.Resource"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tableresource.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tableresource.go
new file mode 100644
index 0000000000..4044f6d6dd
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tableresource.go
@@ -0,0 +1,52 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions_TableResource AWS CloudFormation Resource (AWS::LakeFormation::Permissions.TableResource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tableresource.html
+type Permissions_TableResource struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tableresource.html#cfn-lakeformation-permissions-tableresource-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tableresource.html#cfn-lakeformation-permissions-tableresource-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tableresource.html#cfn-lakeformation-permissions-tableresource-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // TableWildcard AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tableresource.html#cfn-lakeformation-permissions-tableresource-tablewildcard
+ TableWildcard *Permissions_TableWildcard `json:"TableWildcard,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions_TableResource) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions.TableResource"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tablewildcard.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tablewildcard.go
new file mode 100644
index 0000000000..eb1c0e3f06
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tablewildcard.go
@@ -0,0 +1,30 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions_TableWildcard AWS CloudFormation Resource (AWS::LakeFormation::Permissions.TableWildcard)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewildcard.html
+type Permissions_TableWildcard struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions_TableWildcard) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions.TableWildcard"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tablewithcolumnsresource.go b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tablewithcolumnsresource.go
new file mode 100644
index 0000000000..535e4b9952
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-permissions_tablewithcolumnsresource.go
@@ -0,0 +1,57 @@
+package lakeformation
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permissions_TableWithColumnsResource AWS CloudFormation Resource (AWS::LakeFormation::Permissions.TableWithColumnsResource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html
+type Permissions_TableWithColumnsResource struct {
+
+ // CatalogId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-catalogid
+ CatalogId *types.Value `json:"CatalogId,omitempty"`
+
+ // ColumnNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-columnnames
+ ColumnNames *types.Value `json:"ColumnNames,omitempty"`
+
+ // ColumnWildcard AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-columnwildcard
+ ColumnWildcard *Permissions_ColumnWildcard `json:"ColumnWildcard,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permissions_TableWithColumnsResource) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Permissions.TableWithColumnsResource"
+}
diff --git a/goformation/cloudformation/lakeformation/aws-lakeformation-resource.go b/goformation/cloudformation/lakeformation/aws-lakeformation-resource.go
new file mode 100644
index 0000000000..1d228518b5
--- /dev/null
+++ b/goformation/cloudformation/lakeformation/aws-lakeformation-resource.go
@@ -0,0 +1,118 @@
+package lakeformation
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Resource AWS CloudFormation Resource (AWS::LakeFormation::Resource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html
+type Resource struct {
+
+ // ResourceArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html#cfn-lakeformation-resource-resourcearn
+ ResourceArn *types.Value `json:"ResourceArn,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html#cfn-lakeformation-resource-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // UseServiceLinkedRole AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lakeformation-resource.html#cfn-lakeformation-resource-useservicelinkedrole
+ UseServiceLinkedRole *types.Value `json:"UseServiceLinkedRole"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Resource) AWSCloudFormationType() string {
+ return "AWS::LakeFormation::Resource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Resource) MarshalJSON() ([]byte, error) {
+ type Properties Resource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Resource) UnmarshalJSON(b []byte) error {
+ type Properties Resource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Resource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-alias.go b/goformation/cloudformation/lambda/aws-lambda-alias.go
new file mode 100644
index 0000000000..74278a81b2
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-alias.go
@@ -0,0 +1,143 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alias AWS CloudFormation Resource (AWS::Lambda::Alias)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html
+type Alias struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FunctionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-functionname
+ FunctionName *types.Value `json:"FunctionName,omitempty"`
+
+ // FunctionVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-functionversion
+ FunctionVersion *types.Value `json:"FunctionVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // ProvisionedConcurrencyConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig
+ ProvisionedConcurrencyConfig *Alias_ProvisionedConcurrencyConfiguration `json:"ProvisionedConcurrencyConfig,omitempty"`
+
+ // RoutingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-routingconfig
+ RoutingConfig *Alias_AliasRoutingConfiguration `json:"RoutingConfig,omitempty"`
+
+ // AWSCloudFormationUpdatePolicy represents a CloudFormation UpdatePolicy
+ AWSCloudFormationUpdatePolicy *policies.UpdatePolicy `json:"-"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alias) AWSCloudFormationType() string {
+ return "AWS::Lambda::Alias"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Alias) MarshalJSON() ([]byte, error) {
+ type Properties Alias
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ UpdatePolicy *policies.UpdatePolicy `json:"UpdatePolicy,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ UpdatePolicy: r.AWSCloudFormationUpdatePolicy,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Alias) UnmarshalJSON(b []byte) error {
+ type Properties Alias
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ UpdatePolicy *policies.UpdatePolicy
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Alias(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ if res.UpdatePolicy != nil {
+ r.AWSCloudFormationUpdatePolicy = res.UpdatePolicy
+ }
+
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-alias_aliasroutingconfiguration.go b/goformation/cloudformation/lambda/aws-lambda-alias_aliasroutingconfiguration.go
new file mode 100644
index 0000000000..59dcc3cd18
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-alias_aliasroutingconfiguration.go
@@ -0,0 +1,35 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alias_AliasRoutingConfiguration AWS CloudFormation Resource (AWS::Lambda::Alias.AliasRoutingConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html
+type Alias_AliasRoutingConfiguration struct {
+
+ // AdditionalVersionWeights AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html#cfn-lambda-alias-aliasroutingconfiguration-additionalversionweights
+ AdditionalVersionWeights []Alias_VersionWeight `json:"AdditionalVersionWeights,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alias_AliasRoutingConfiguration) AWSCloudFormationType() string {
+ return "AWS::Lambda::Alias.AliasRoutingConfiguration"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-alias_provisionedconcurrencyconfiguration.go b/goformation/cloudformation/lambda/aws-lambda-alias_provisionedconcurrencyconfiguration.go
new file mode 100644
index 0000000000..9b11d1b2ab
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-alias_provisionedconcurrencyconfiguration.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alias_ProvisionedConcurrencyConfiguration AWS CloudFormation Resource (AWS::Lambda::Alias.ProvisionedConcurrencyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-provisionedconcurrencyconfiguration.html
+type Alias_ProvisionedConcurrencyConfiguration struct {
+
+ // ProvisionedConcurrentExecutions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-provisionedconcurrencyconfiguration.html#cfn-lambda-alias-provisionedconcurrencyconfiguration-provisionedconcurrentexecutions
+ ProvisionedConcurrentExecutions *types.Value `json:"ProvisionedConcurrentExecutions"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alias_ProvisionedConcurrencyConfiguration) AWSCloudFormationType() string {
+ return "AWS::Lambda::Alias.ProvisionedConcurrencyConfiguration"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-alias_versionweight.go b/goformation/cloudformation/lambda/aws-lambda-alias_versionweight.go
new file mode 100644
index 0000000000..92c9ea2d45
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-alias_versionweight.go
@@ -0,0 +1,42 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alias_VersionWeight AWS CloudFormation Resource (AWS::Lambda::Alias.VersionWeight)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html
+type Alias_VersionWeight struct {
+
+ // FunctionVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html#cfn-lambda-alias-versionweight-functionversion
+ FunctionVersion *types.Value `json:"FunctionVersion,omitempty"`
+
+ // FunctionWeight AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html#cfn-lambda-alias-versionweight-functionweight
+ FunctionWeight *types.Value `json:"FunctionWeight"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alias_VersionWeight) AWSCloudFormationType() string {
+ return "AWS::Lambda::Alias.VersionWeight"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-codesigningconfig.go b/goformation/cloudformation/lambda/aws-lambda-codesigningconfig.go
new file mode 100644
index 0000000000..4b8a18bbbc
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-codesigningconfig.go
@@ -0,0 +1,118 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CodeSigningConfig AWS CloudFormation Resource (AWS::Lambda::CodeSigningConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html
+type CodeSigningConfig struct {
+
+ // AllowedPublishers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html#cfn-lambda-codesigningconfig-allowedpublishers
+ AllowedPublishers *CodeSigningConfig_AllowedPublishers `json:"AllowedPublishers,omitempty"`
+
+ // CodeSigningPolicies AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html#cfn-lambda-codesigningconfig-codesigningpolicies
+ CodeSigningPolicies *CodeSigningConfig_CodeSigningPolicies `json:"CodeSigningPolicies,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-codesigningconfig.html#cfn-lambda-codesigningconfig-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CodeSigningConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::CodeSigningConfig"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CodeSigningConfig) MarshalJSON() ([]byte, error) {
+ type Properties CodeSigningConfig
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CodeSigningConfig) UnmarshalJSON(b []byte) error {
+ type Properties CodeSigningConfig
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CodeSigningConfig(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-codesigningconfig_allowedpublishers.go b/goformation/cloudformation/lambda/aws-lambda-codesigningconfig_allowedpublishers.go
new file mode 100644
index 0000000000..b7a731561f
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-codesigningconfig_allowedpublishers.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CodeSigningConfig_AllowedPublishers AWS CloudFormation Resource (AWS::Lambda::CodeSigningConfig.AllowedPublishers)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-allowedpublishers.html
+type CodeSigningConfig_AllowedPublishers struct {
+
+ // SigningProfileVersionArns AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-allowedpublishers.html#cfn-lambda-codesigningconfig-allowedpublishers-signingprofileversionarns
+ SigningProfileVersionArns *types.Value `json:"SigningProfileVersionArns,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CodeSigningConfig_AllowedPublishers) AWSCloudFormationType() string {
+ return "AWS::Lambda::CodeSigningConfig.AllowedPublishers"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-codesigningconfig_codesigningpolicies.go b/goformation/cloudformation/lambda/aws-lambda-codesigningconfig_codesigningpolicies.go
new file mode 100644
index 0000000000..9693fa3398
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-codesigningconfig_codesigningpolicies.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CodeSigningConfig_CodeSigningPolicies AWS CloudFormation Resource (AWS::Lambda::CodeSigningConfig.CodeSigningPolicies)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-codesigningpolicies.html
+type CodeSigningConfig_CodeSigningPolicies struct {
+
+ // UntrustedArtifactOnDeployment AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-codesigningconfig-codesigningpolicies.html#cfn-lambda-codesigningconfig-codesigningpolicies-untrustedartifactondeployment
+ UntrustedArtifactOnDeployment *types.Value `json:"UntrustedArtifactOnDeployment,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CodeSigningConfig_CodeSigningPolicies) AWSCloudFormationType() string {
+ return "AWS::Lambda::CodeSigningConfig.CodeSigningPolicies"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig.go b/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig.go
new file mode 100644
index 0000000000..4430974156
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig.go
@@ -0,0 +1,128 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventInvokeConfig AWS CloudFormation Resource (AWS::Lambda::EventInvokeConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html
+type EventInvokeConfig struct {
+
+ // DestinationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-destinationconfig
+ DestinationConfig *EventInvokeConfig_DestinationConfig `json:"DestinationConfig,omitempty"`
+
+ // FunctionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-functionname
+ FunctionName *types.Value `json:"FunctionName,omitempty"`
+
+ // MaximumEventAgeInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds
+ MaximumEventAgeInSeconds *types.Value `json:"MaximumEventAgeInSeconds,omitempty"`
+
+ // MaximumRetryAttempts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts
+ MaximumRetryAttempts *types.Value `json:"MaximumRetryAttempts,omitempty"`
+
+ // Qualifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-qualifier
+ Qualifier *types.Value `json:"Qualifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventInvokeConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventInvokeConfig"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EventInvokeConfig) MarshalJSON() ([]byte, error) {
+ type Properties EventInvokeConfig
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EventInvokeConfig) UnmarshalJSON(b []byte) error {
+ type Properties EventInvokeConfig
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EventInvokeConfig(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_destinationconfig.go b/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_destinationconfig.go
new file mode 100644
index 0000000000..b90d8e52f6
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_destinationconfig.go
@@ -0,0 +1,40 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventInvokeConfig_DestinationConfig AWS CloudFormation Resource (AWS::Lambda::EventInvokeConfig.DestinationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html
+type EventInvokeConfig_DestinationConfig struct {
+
+ // OnFailure AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure
+ OnFailure *EventInvokeConfig_OnFailure `json:"OnFailure,omitempty"`
+
+ // OnSuccess AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess
+ OnSuccess *EventInvokeConfig_OnSuccess `json:"OnSuccess,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventInvokeConfig_DestinationConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventInvokeConfig.DestinationConfig"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_onfailure.go b/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_onfailure.go
new file mode 100644
index 0000000000..83f0d92a56
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_onfailure.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventInvokeConfig_OnFailure AWS CloudFormation Resource (AWS::Lambda::EventInvokeConfig.OnFailure)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html
+type EventInvokeConfig_OnFailure struct {
+
+ // Destination AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination
+ Destination *types.Value `json:"Destination,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventInvokeConfig_OnFailure) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventInvokeConfig.OnFailure"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_onsuccess.go b/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_onsuccess.go
new file mode 100644
index 0000000000..be37eadb0f
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventinvokeconfig_onsuccess.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventInvokeConfig_OnSuccess AWS CloudFormation Resource (AWS::Lambda::EventInvokeConfig.OnSuccess)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onsuccess.html
+type EventInvokeConfig_OnSuccess struct {
+
+ // Destination AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onsuccess.html#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination
+ Destination *types.Value `json:"Destination,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventInvokeConfig_OnSuccess) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventInvokeConfig.OnSuccess"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping.go b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping.go
new file mode 100644
index 0000000000..6b46dddb70
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping.go
@@ -0,0 +1,198 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventSourceMapping AWS CloudFormation Resource (AWS::Lambda::EventSourceMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html
+type EventSourceMapping struct {
+
+ // BatchSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize
+ BatchSize *types.Value `json:"BatchSize,omitempty"`
+
+ // BisectBatchOnFunctionError AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-bisectbatchonfunctionerror
+ BisectBatchOnFunctionError *types.Value `json:"BisectBatchOnFunctionError,omitempty"`
+
+ // DestinationConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig
+ DestinationConfig *EventSourceMapping_DestinationConfig `json:"DestinationConfig,omitempty"`
+
+ // Enabled AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled
+ Enabled *types.Value `json:"Enabled,omitempty"`
+
+ // EventSourceArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn
+ EventSourceArn *types.Value `json:"EventSourceArn,omitempty"`
+
+ // FilterCriteria AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-filtercriteria
+ FilterCriteria interface{} `json:"FilterCriteria,omitempty"`
+
+ // FunctionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionname
+ FunctionName *types.Value `json:"FunctionName,omitempty"`
+
+ // FunctionResponseTypes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes
+ FunctionResponseTypes *types.Value `json:"FunctionResponseTypes,omitempty"`
+
+ // MaximumBatchingWindowInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds
+ MaximumBatchingWindowInSeconds *types.Value `json:"MaximumBatchingWindowInSeconds,omitempty"`
+
+ // MaximumRecordAgeInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds
+ MaximumRecordAgeInSeconds *types.Value `json:"MaximumRecordAgeInSeconds,omitempty"`
+
+ // MaximumRetryAttempts AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts
+ MaximumRetryAttempts *types.Value `json:"MaximumRetryAttempts,omitempty"`
+
+ // ParallelizationFactor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor
+ ParallelizationFactor *types.Value `json:"ParallelizationFactor,omitempty"`
+
+ // Queues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues
+ Queues *types.Value `json:"Queues,omitempty"`
+
+ // SelfManagedEventSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-selfmanagedeventsource
+ SelfManagedEventSource *EventSourceMapping_SelfManagedEventSource `json:"SelfManagedEventSource,omitempty"`
+
+ // SourceAccessConfigurations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations
+ SourceAccessConfigurations []EventSourceMapping_SourceAccessConfiguration `json:"SourceAccessConfigurations,omitempty"`
+
+ // StartingPosition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition
+ StartingPosition *types.Value `json:"StartingPosition,omitempty"`
+
+ // StartingPositionTimestamp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp
+ StartingPositionTimestamp *types.Value `json:"StartingPositionTimestamp,omitempty"`
+
+ // Topics AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics
+ Topics *types.Value `json:"Topics,omitempty"`
+
+ // TumblingWindowInSeconds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds
+ TumblingWindowInSeconds *types.Value `json:"TumblingWindowInSeconds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventSourceMapping) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventSourceMapping"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r EventSourceMapping) MarshalJSON() ([]byte, error) {
+ type Properties EventSourceMapping
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *EventSourceMapping) UnmarshalJSON(b []byte) error {
+ type Properties EventSourceMapping
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = EventSourceMapping(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_destinationconfig.go b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_destinationconfig.go
new file mode 100644
index 0000000000..7f239ff334
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_destinationconfig.go
@@ -0,0 +1,35 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventSourceMapping_DestinationConfig AWS CloudFormation Resource (AWS::Lambda::EventSourceMapping.DestinationConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html
+type EventSourceMapping_DestinationConfig struct {
+
+ // OnFailure AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html#cfn-lambda-eventsourcemapping-destinationconfig-onfailure
+ OnFailure *EventSourceMapping_OnFailure `json:"OnFailure,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventSourceMapping_DestinationConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventSourceMapping.DestinationConfig"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_endpoints.go b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_endpoints.go
new file mode 100644
index 0000000000..457c1c108c
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_endpoints.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventSourceMapping_Endpoints AWS CloudFormation Resource (AWS::Lambda::EventSourceMapping.Endpoints)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-endpoints.html
+type EventSourceMapping_Endpoints struct {
+
+ // KafkaBootstrapServers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-endpoints.html#cfn-lambda-eventsourcemapping-endpoints-kafkabootstrapservers
+ KafkaBootstrapServers *types.Value `json:"KafkaBootstrapServers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventSourceMapping_Endpoints) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventSourceMapping.Endpoints"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_onfailure.go b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_onfailure.go
new file mode 100644
index 0000000000..e3d55ad531
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_onfailure.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventSourceMapping_OnFailure AWS CloudFormation Resource (AWS::Lambda::EventSourceMapping.OnFailure)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-onfailure.html
+type EventSourceMapping_OnFailure struct {
+
+ // Destination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-onfailure.html#cfn-lambda-eventsourcemapping-onfailure-destination
+ Destination *types.Value `json:"Destination,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventSourceMapping_OnFailure) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventSourceMapping.OnFailure"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_selfmanagedeventsource.go b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_selfmanagedeventsource.go
new file mode 100644
index 0000000000..06749e4bae
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_selfmanagedeventsource.go
@@ -0,0 +1,35 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventSourceMapping_SelfManagedEventSource AWS CloudFormation Resource (AWS::Lambda::EventSourceMapping.SelfManagedEventSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedeventsource.html
+type EventSourceMapping_SelfManagedEventSource struct {
+
+ // Endpoints AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedeventsource.html#cfn-lambda-eventsourcemapping-selfmanagedeventsource-endpoints
+ Endpoints *EventSourceMapping_Endpoints `json:"Endpoints,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventSourceMapping_SelfManagedEventSource) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventSourceMapping.SelfManagedEventSource"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_sourceaccessconfiguration.go b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_sourceaccessconfiguration.go
new file mode 100644
index 0000000000..b3f96729f3
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-eventsourcemapping_sourceaccessconfiguration.go
@@ -0,0 +1,42 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// EventSourceMapping_SourceAccessConfiguration AWS CloudFormation Resource (AWS::Lambda::EventSourceMapping.SourceAccessConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html
+type EventSourceMapping_SourceAccessConfiguration struct {
+
+ // Type AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html#cfn-lambda-eventsourcemapping-sourceaccessconfiguration-type
+ Type *types.Value `json:"Type,omitempty"`
+
+ // URI AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html#cfn-lambda-eventsourcemapping-sourceaccessconfiguration-uri
+ URI *types.Value `json:"URI,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *EventSourceMapping_SourceAccessConfiguration) AWSCloudFormationType() string {
+ return "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-function.go b/goformation/cloudformation/lambda/aws-lambda-function.go
new file mode 100644
index 0000000000..bb7b1fe86f
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-function.go
@@ -0,0 +1,209 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function AWS CloudFormation Resource (AWS::Lambda::Function)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
+type Function struct {
+
+ // Architectures AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures
+ Architectures *types.Value `json:"Architectures,omitempty"`
+
+ // Code AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code
+ Code *Function_Code `json:"Code,omitempty"`
+
+ // CodeSigningConfigArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn
+ CodeSigningConfigArn *types.Value `json:"CodeSigningConfigArn,omitempty"`
+
+ // DeadLetterConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-deadletterconfig
+ DeadLetterConfig *Function_DeadLetterConfig `json:"DeadLetterConfig,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Environment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment
+ Environment *Function_Environment `json:"Environment,omitempty"`
+
+ // FileSystemConfigs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs
+ FileSystemConfigs []Function_FileSystemConfig `json:"FileSystemConfigs,omitempty"`
+
+ // FunctionName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname
+ FunctionName *types.Value `json:"FunctionName,omitempty"`
+
+ // Handler AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler
+ Handler *types.Value `json:"Handler,omitempty"`
+
+ // ImageConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig
+ ImageConfig *Function_ImageConfig `json:"ImageConfig,omitempty"`
+
+ // KmsKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn
+ KmsKeyArn *types.Value `json:"KmsKeyArn,omitempty"`
+
+ // Layers AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers
+ Layers *types.Value `json:"Layers,omitempty"`
+
+ // MemorySize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize
+ MemorySize *types.Value `json:"MemorySize,omitempty"`
+
+ // PackageType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype
+ PackageType *types.Value `json:"PackageType,omitempty"`
+
+ // ReservedConcurrentExecutions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions
+ ReservedConcurrentExecutions *types.Value `json:"ReservedConcurrentExecutions,omitempty"`
+
+ // Role AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role
+ Role *types.Value `json:"Role,omitempty"`
+
+ // Runtime AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime
+ Runtime *types.Value `json:"Runtime,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // Timeout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout
+ Timeout *types.Value `json:"Timeout,omitempty"`
+
+ // TracingConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig
+ TracingConfig *Function_TracingConfig `json:"TracingConfig,omitempty"`
+
+ // VpcConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-vpcconfig
+ VpcConfig *Function_VpcConfig `json:"VpcConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function) AWSCloudFormationType() string {
+ return "AWS::Lambda::Function"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Function) MarshalJSON() ([]byte, error) {
+ type Properties Function
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Function) UnmarshalJSON(b []byte) error {
+ type Properties Function
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Function(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-function_code.go b/goformation/cloudformation/lambda/aws-lambda-function_code.go
new file mode 100644
index 0000000000..f4b049bee6
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-function_code.go
@@ -0,0 +1,57 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_Code AWS CloudFormation Resource (AWS::Lambda::Function.Code)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html
+type Function_Code struct {
+
+ // ImageUri AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri
+ ImageUri *types.Value `json:"ImageUri,omitempty"`
+
+ // S3Bucket AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3bucket
+ S3Bucket *types.Value `json:"S3Bucket,omitempty"`
+
+ // S3Key AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key
+ S3Key *types.Value `json:"S3Key,omitempty"`
+
+ // S3ObjectVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion
+ S3ObjectVersion *types.Value `json:"S3ObjectVersion,omitempty"`
+
+ // ZipFile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile
+ ZipFile *types.Value `json:"ZipFile,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_Code) AWSCloudFormationType() string {
+ return "AWS::Lambda::Function.Code"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-function_deadletterconfig.go b/goformation/cloudformation/lambda/aws-lambda-function_deadletterconfig.go
new file mode 100644
index 0000000000..2e15a5d3ec
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-function_deadletterconfig.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_DeadLetterConfig AWS CloudFormation Resource (AWS::Lambda::Function.DeadLetterConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html
+type Function_DeadLetterConfig struct {
+
+ // TargetArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn
+ TargetArn *types.Value `json:"TargetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_DeadLetterConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::Function.DeadLetterConfig"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-function_environment.go b/goformation/cloudformation/lambda/aws-lambda-function_environment.go
new file mode 100644
index 0000000000..c843b6c471
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-function_environment.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_Environment AWS CloudFormation Resource (AWS::Lambda::Function.Environment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html
+type Function_Environment struct {
+
+ // Variables AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html#cfn-lambda-function-environment-variables
+ Variables map[string]*types.Value `json:"Variables,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_Environment) AWSCloudFormationType() string {
+ return "AWS::Lambda::Function.Environment"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-function_filesystemconfig.go b/goformation/cloudformation/lambda/aws-lambda-function_filesystemconfig.go
new file mode 100644
index 0000000000..a2c07e631f
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-function_filesystemconfig.go
@@ -0,0 +1,42 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_FileSystemConfig AWS CloudFormation Resource (AWS::Lambda::Function.FileSystemConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html
+type Function_FileSystemConfig struct {
+
+ // Arn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-arn
+ Arn *types.Value `json:"Arn,omitempty"`
+
+ // LocalMountPath AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath
+ LocalMountPath *types.Value `json:"LocalMountPath,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_FileSystemConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::Function.FileSystemConfig"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-function_imageconfig.go b/goformation/cloudformation/lambda/aws-lambda-function_imageconfig.go
new file mode 100644
index 0000000000..cbd30a0778
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-function_imageconfig.go
@@ -0,0 +1,47 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_ImageConfig AWS CloudFormation Resource (AWS::Lambda::Function.ImageConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html
+type Function_ImageConfig struct {
+
+ // Command AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html#cfn-lambda-function-imageconfig-command
+ Command *types.Value `json:"Command,omitempty"`
+
+ // EntryPoint AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html#cfn-lambda-function-imageconfig-entrypoint
+ EntryPoint *types.Value `json:"EntryPoint,omitempty"`
+
+ // WorkingDirectory AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-imageconfig.html#cfn-lambda-function-imageconfig-workingdirectory
+ WorkingDirectory *types.Value `json:"WorkingDirectory,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_ImageConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::Function.ImageConfig"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-function_tracingconfig.go b/goformation/cloudformation/lambda/aws-lambda-function_tracingconfig.go
new file mode 100644
index 0000000000..80f673e29c
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-function_tracingconfig.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_TracingConfig AWS CloudFormation Resource (AWS::Lambda::Function.TracingConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tracingconfig.html
+type Function_TracingConfig struct {
+
+ // Mode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-tracingconfig.html#cfn-lambda-function-tracingconfig-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_TracingConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::Function.TracingConfig"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-function_vpcconfig.go b/goformation/cloudformation/lambda/aws-lambda-function_vpcconfig.go
new file mode 100644
index 0000000000..f6b8748951
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-function_vpcconfig.go
@@ -0,0 +1,42 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Function_VpcConfig AWS CloudFormation Resource (AWS::Lambda::Function.VpcConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html
+type Function_VpcConfig struct {
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html#cfn-lambda-function-vpcconfig-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetIds AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html#cfn-lambda-function-vpcconfig-subnetids
+ SubnetIds *types.Value `json:"SubnetIds,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Function_VpcConfig) AWSCloudFormationType() string {
+ return "AWS::Lambda::Function.VpcConfig"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-layerversion.go b/goformation/cloudformation/lambda/aws-lambda-layerversion.go
new file mode 100644
index 0000000000..2853a850aa
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-layerversion.go
@@ -0,0 +1,133 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LayerVersion AWS CloudFormation Resource (AWS::Lambda::LayerVersion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html
+type LayerVersion struct {
+
+ // CompatibleArchitectures AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures
+ CompatibleArchitectures *types.Value `json:"CompatibleArchitectures,omitempty"`
+
+ // CompatibleRuntimes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes
+ CompatibleRuntimes *types.Value `json:"CompatibleRuntimes,omitempty"`
+
+ // Content AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content
+ Content *LayerVersion_Content `json:"Content,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // LayerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername
+ LayerName *types.Value `json:"LayerName,omitempty"`
+
+ // LicenseInfo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo
+ LicenseInfo *types.Value `json:"LicenseInfo,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LayerVersion) AWSCloudFormationType() string {
+ return "AWS::Lambda::LayerVersion"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LayerVersion) MarshalJSON() ([]byte, error) {
+ type Properties LayerVersion
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LayerVersion) UnmarshalJSON(b []byte) error {
+ type Properties LayerVersion
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LayerVersion(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-layerversion_content.go b/goformation/cloudformation/lambda/aws-lambda-layerversion_content.go
new file mode 100644
index 0000000000..0c80c988a3
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-layerversion_content.go
@@ -0,0 +1,47 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LayerVersion_Content AWS CloudFormation Resource (AWS::Lambda::LayerVersion.Content)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html
+type LayerVersion_Content struct {
+
+ // S3Bucket AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket
+ S3Bucket *types.Value `json:"S3Bucket,omitempty"`
+
+ // S3Key AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key
+ S3Key *types.Value `json:"S3Key,omitempty"`
+
+ // S3ObjectVersion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion
+ S3ObjectVersion *types.Value `json:"S3ObjectVersion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LayerVersion_Content) AWSCloudFormationType() string {
+ return "AWS::Lambda::LayerVersion.Content"
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-layerversionpermission.go b/goformation/cloudformation/lambda/aws-lambda-layerversionpermission.go
new file mode 100644
index 0000000000..3eee3a02f5
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-layerversionpermission.go
@@ -0,0 +1,123 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LayerVersionPermission AWS CloudFormation Resource (AWS::Lambda::LayerVersionPermission)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html
+type LayerVersionPermission struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html#cfn-lambda-layerversionpermission-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // LayerVersionArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html#cfn-lambda-layerversionpermission-layerversionarn
+ LayerVersionArn *types.Value `json:"LayerVersionArn,omitempty"`
+
+ // OrganizationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html#cfn-lambda-layerversionpermission-organizationid
+ OrganizationId *types.Value `json:"OrganizationId,omitempty"`
+
+ // Principal AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html#cfn-lambda-layerversionpermission-principal
+ Principal *types.Value `json:"Principal,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LayerVersionPermission) AWSCloudFormationType() string {
+ return "AWS::Lambda::LayerVersionPermission"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LayerVersionPermission) MarshalJSON() ([]byte, error) {
+ type Properties LayerVersionPermission
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LayerVersionPermission) UnmarshalJSON(b []byte) error {
+ type Properties LayerVersionPermission
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LayerVersionPermission(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-permission.go b/goformation/cloudformation/lambda/aws-lambda-permission.go
new file mode 100644
index 0000000000..8a09e367d4
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-permission.go
@@ -0,0 +1,133 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Permission AWS CloudFormation Resource (AWS::Lambda::Permission)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html
+type Permission struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // EventSourceToken AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-eventsourcetoken
+ EventSourceToken *types.Value `json:"EventSourceToken,omitempty"`
+
+ // FunctionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-functionname
+ FunctionName *types.Value `json:"FunctionName,omitempty"`
+
+ // Principal AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-principal
+ Principal *types.Value `json:"Principal,omitempty"`
+
+ // SourceAccount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-sourceaccount
+ SourceAccount *types.Value `json:"SourceAccount,omitempty"`
+
+ // SourceArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-sourcearn
+ SourceArn *types.Value `json:"SourceArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Permission) AWSCloudFormationType() string {
+ return "AWS::Lambda::Permission"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Permission) MarshalJSON() ([]byte, error) {
+ type Properties Permission
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Permission) UnmarshalJSON(b []byte) error {
+ type Properties Permission
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Permission(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-version.go b/goformation/cloudformation/lambda/aws-lambda-version.go
new file mode 100644
index 0000000000..a80f2807cf
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-version.go
@@ -0,0 +1,123 @@
+package lambda
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Version AWS CloudFormation Resource (AWS::Lambda::Version)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html
+type Version struct {
+
+ // CodeSha256 AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-codesha256
+ CodeSha256 *types.Value `json:"CodeSha256,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FunctionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-functionname
+ FunctionName *types.Value `json:"FunctionName,omitempty"`
+
+ // ProvisionedConcurrencyConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-provisionedconcurrencyconfig
+ ProvisionedConcurrencyConfig *Version_ProvisionedConcurrencyConfiguration `json:"ProvisionedConcurrencyConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Version) AWSCloudFormationType() string {
+ return "AWS::Lambda::Version"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Version) MarshalJSON() ([]byte, error) {
+ type Properties Version
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Version) UnmarshalJSON(b []byte) error {
+ type Properties Version
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Version(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lambda/aws-lambda-version_provisionedconcurrencyconfiguration.go b/goformation/cloudformation/lambda/aws-lambda-version_provisionedconcurrencyconfiguration.go
new file mode 100644
index 0000000000..ae318c6f26
--- /dev/null
+++ b/goformation/cloudformation/lambda/aws-lambda-version_provisionedconcurrencyconfiguration.go
@@ -0,0 +1,37 @@
+package lambda
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Version_ProvisionedConcurrencyConfiguration AWS CloudFormation Resource (AWS::Lambda::Version.ProvisionedConcurrencyConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-version-provisionedconcurrencyconfiguration.html
+type Version_ProvisionedConcurrencyConfiguration struct {
+
+ // ProvisionedConcurrentExecutions AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-version-provisionedconcurrencyconfiguration.html#cfn-lambda-version-provisionedconcurrencyconfiguration-provisionedconcurrentexecutions
+ ProvisionedConcurrentExecutions *types.Value `json:"ProvisionedConcurrentExecutions"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Version_ProvisionedConcurrencyConfiguration) AWSCloudFormationType() string {
+ return "AWS::Lambda::Version.ProvisionedConcurrencyConfiguration"
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-grant.go b/goformation/cloudformation/licensemanager/aws-licensemanager-grant.go
new file mode 100644
index 0000000000..0b199125ae
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-grant.go
@@ -0,0 +1,133 @@
+package licensemanager
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Grant AWS CloudFormation Resource (AWS::LicenseManager::Grant)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html
+type Grant struct {
+
+ // AllowedOperations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html#cfn-licensemanager-grant-allowedoperations
+ AllowedOperations *types.Value `json:"AllowedOperations,omitempty"`
+
+ // GrantName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html#cfn-licensemanager-grant-grantname
+ GrantName *types.Value `json:"GrantName,omitempty"`
+
+ // HomeRegion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html#cfn-licensemanager-grant-homeregion
+ HomeRegion *types.Value `json:"HomeRegion,omitempty"`
+
+ // LicenseArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html#cfn-licensemanager-grant-licensearn
+ LicenseArn *types.Value `json:"LicenseArn,omitempty"`
+
+ // Principals AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html#cfn-licensemanager-grant-principals
+ Principals *types.Value `json:"Principals,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-grant.html#cfn-licensemanager-grant-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Grant) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::Grant"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Grant) MarshalJSON() ([]byte, error) {
+ type Properties Grant
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Grant) UnmarshalJSON(b []byte) error {
+ type Properties Grant
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Grant(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-license.go b/goformation/cloudformation/licensemanager/aws-licensemanager-license.go
new file mode 100644
index 0000000000..7769b31e79
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-license.go
@@ -0,0 +1,158 @@
+package licensemanager
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// License AWS CloudFormation Resource (AWS::LicenseManager::License)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html
+type License struct {
+
+ // Beneficiary AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-beneficiary
+ Beneficiary *types.Value `json:"Beneficiary,omitempty"`
+
+ // ConsumptionConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-consumptionconfiguration
+ ConsumptionConfiguration *License_ConsumptionConfiguration `json:"ConsumptionConfiguration,omitempty"`
+
+ // Entitlements AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-entitlements
+ Entitlements []License_Entitlement `json:"Entitlements,omitempty"`
+
+ // HomeRegion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-homeregion
+ HomeRegion *types.Value `json:"HomeRegion,omitempty"`
+
+ // Issuer AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-issuer
+ Issuer *License_IssuerData `json:"Issuer,omitempty"`
+
+ // LicenseMetadata AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-licensemetadata
+ LicenseMetadata []License_Metadata `json:"LicenseMetadata,omitempty"`
+
+ // LicenseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-licensename
+ LicenseName *types.Value `json:"LicenseName,omitempty"`
+
+ // ProductName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-productname
+ ProductName *types.Value `json:"ProductName,omitempty"`
+
+ // ProductSKU AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-productsku
+ ProductSKU *types.Value `json:"ProductSKU,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // Validity AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-licensemanager-license.html#cfn-licensemanager-license-validity
+ Validity *License_ValidityDateFormat `json:"Validity,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *License) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::License"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r License) MarshalJSON() ([]byte, error) {
+ type Properties License
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *License) UnmarshalJSON(b []byte) error {
+ type Properties License
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = License(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-license_borrowconfiguration.go b/goformation/cloudformation/licensemanager/aws-licensemanager-license_borrowconfiguration.go
new file mode 100644
index 0000000000..27ea4ba088
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-license_borrowconfiguration.go
@@ -0,0 +1,42 @@
+package licensemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// License_BorrowConfiguration AWS CloudFormation Resource (AWS::LicenseManager::License.BorrowConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-borrowconfiguration.html
+type License_BorrowConfiguration struct {
+
+ // AllowEarlyCheckIn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-borrowconfiguration.html#cfn-licensemanager-license-borrowconfiguration-allowearlycheckin
+ AllowEarlyCheckIn *types.Value `json:"AllowEarlyCheckIn"`
+
+ // MaxTimeToLiveInMinutes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-borrowconfiguration.html#cfn-licensemanager-license-borrowconfiguration-maxtimetoliveinminutes
+ MaxTimeToLiveInMinutes *types.Value `json:"MaxTimeToLiveInMinutes"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *License_BorrowConfiguration) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::License.BorrowConfiguration"
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-license_consumptionconfiguration.go b/goformation/cloudformation/licensemanager/aws-licensemanager-license_consumptionconfiguration.go
new file mode 100644
index 0000000000..28e2657f63
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-license_consumptionconfiguration.go
@@ -0,0 +1,47 @@
+package licensemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// License_ConsumptionConfiguration AWS CloudFormation Resource (AWS::LicenseManager::License.ConsumptionConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-consumptionconfiguration.html
+type License_ConsumptionConfiguration struct {
+
+ // BorrowConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-consumptionconfiguration.html#cfn-licensemanager-license-consumptionconfiguration-borrowconfiguration
+ BorrowConfiguration *License_BorrowConfiguration `json:"BorrowConfiguration,omitempty"`
+
+ // ProvisionalConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-consumptionconfiguration.html#cfn-licensemanager-license-consumptionconfiguration-provisionalconfiguration
+ ProvisionalConfiguration *License_ProvisionalConfiguration `json:"ProvisionalConfiguration,omitempty"`
+
+ // RenewType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-consumptionconfiguration.html#cfn-licensemanager-license-consumptionconfiguration-renewtype
+ RenewType *types.Value `json:"RenewType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *License_ConsumptionConfiguration) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::License.ConsumptionConfiguration"
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-license_entitlement.go b/goformation/cloudformation/licensemanager/aws-licensemanager-license_entitlement.go
new file mode 100644
index 0000000000..4819523043
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-license_entitlement.go
@@ -0,0 +1,62 @@
+package licensemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// License_Entitlement AWS CloudFormation Resource (AWS::LicenseManager::License.Entitlement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html
+type License_Entitlement struct {
+
+ // AllowCheckIn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html#cfn-licensemanager-license-entitlement-allowcheckin
+ AllowCheckIn *types.Value `json:"AllowCheckIn,omitempty"`
+
+ // MaxCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html#cfn-licensemanager-license-entitlement-maxcount
+ MaxCount *types.Value `json:"MaxCount,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html#cfn-licensemanager-license-entitlement-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Overage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html#cfn-licensemanager-license-entitlement-overage
+ Overage *types.Value `json:"Overage,omitempty"`
+
+ // Unit AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html#cfn-licensemanager-license-entitlement-unit
+ Unit *types.Value `json:"Unit,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-entitlement.html#cfn-licensemanager-license-entitlement-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *License_Entitlement) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::License.Entitlement"
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-license_issuerdata.go b/goformation/cloudformation/licensemanager/aws-licensemanager-license_issuerdata.go
new file mode 100644
index 0000000000..e7ebeb886a
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-license_issuerdata.go
@@ -0,0 +1,42 @@
+package licensemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// License_IssuerData AWS CloudFormation Resource (AWS::LicenseManager::License.IssuerData)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-issuerdata.html
+type License_IssuerData struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-issuerdata.html#cfn-licensemanager-license-issuerdata-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SignKey AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-issuerdata.html#cfn-licensemanager-license-issuerdata-signkey
+ SignKey *types.Value `json:"SignKey,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *License_IssuerData) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::License.IssuerData"
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-license_metadata.go b/goformation/cloudformation/licensemanager/aws-licensemanager-license_metadata.go
new file mode 100644
index 0000000000..f881122a51
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-license_metadata.go
@@ -0,0 +1,42 @@
+package licensemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// License_Metadata AWS CloudFormation Resource (AWS::LicenseManager::License.Metadata)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-metadata.html
+type License_Metadata struct {
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-metadata.html#cfn-licensemanager-license-metadata-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Value AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-metadata.html#cfn-licensemanager-license-metadata-value
+ Value *types.Value `json:"Value,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *License_Metadata) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::License.Metadata"
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-license_provisionalconfiguration.go b/goformation/cloudformation/licensemanager/aws-licensemanager-license_provisionalconfiguration.go
new file mode 100644
index 0000000000..f301554356
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-license_provisionalconfiguration.go
@@ -0,0 +1,37 @@
+package licensemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// License_ProvisionalConfiguration AWS CloudFormation Resource (AWS::LicenseManager::License.ProvisionalConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-provisionalconfiguration.html
+type License_ProvisionalConfiguration struct {
+
+ // MaxTimeToLiveInMinutes AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-provisionalconfiguration.html#cfn-licensemanager-license-provisionalconfiguration-maxtimetoliveinminutes
+ MaxTimeToLiveInMinutes *types.Value `json:"MaxTimeToLiveInMinutes"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *License_ProvisionalConfiguration) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::License.ProvisionalConfiguration"
+}
diff --git a/goformation/cloudformation/licensemanager/aws-licensemanager-license_validitydateformat.go b/goformation/cloudformation/licensemanager/aws-licensemanager-license_validitydateformat.go
new file mode 100644
index 0000000000..23fabf9888
--- /dev/null
+++ b/goformation/cloudformation/licensemanager/aws-licensemanager-license_validitydateformat.go
@@ -0,0 +1,42 @@
+package licensemanager
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// License_ValidityDateFormat AWS CloudFormation Resource (AWS::LicenseManager::License.ValidityDateFormat)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-validitydateformat.html
+type License_ValidityDateFormat struct {
+
+ // Begin AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-validitydateformat.html#cfn-licensemanager-license-validitydateformat-begin
+ Begin *types.Value `json:"Begin,omitempty"`
+
+ // End AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-licensemanager-license-validitydateformat.html#cfn-licensemanager-license-validitydateformat-end
+ End *types.Value `json:"End,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *License_ValidityDateFormat) AWSCloudFormationType() string {
+ return "AWS::LicenseManager::License.ValidityDateFormat"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-database.go b/goformation/cloudformation/lightsail/aws-lightsail-database.go
new file mode 100644
index 0000000000..1679577c5c
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-database.go
@@ -0,0 +1,179 @@
+package lightsail
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Database AWS CloudFormation Resource (AWS::Lightsail::Database)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html
+type Database struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // BackupRetention AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-backupretention
+ BackupRetention *types.Value `json:"BackupRetention,omitempty"`
+
+ // CaCertificateIdentifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-cacertificateidentifier
+ CaCertificateIdentifier *types.Value `json:"CaCertificateIdentifier,omitempty"`
+
+ // MasterDatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-masterdatabasename
+ MasterDatabaseName *types.Value `json:"MasterDatabaseName,omitempty"`
+
+ // MasterUserPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-masteruserpassword
+ MasterUserPassword *types.Value `json:"MasterUserPassword,omitempty"`
+
+ // MasterUsername AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-masterusername
+ MasterUsername *types.Value `json:"MasterUsername,omitempty"`
+
+ // PreferredBackupWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-preferredbackupwindow
+ PreferredBackupWindow *types.Value `json:"PreferredBackupWindow,omitempty"`
+
+ // PreferredMaintenanceWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-preferredmaintenancewindow
+ PreferredMaintenanceWindow *types.Value `json:"PreferredMaintenanceWindow,omitempty"`
+
+ // PubliclyAccessible AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-publiclyaccessible
+ PubliclyAccessible *types.Value `json:"PubliclyAccessible,omitempty"`
+
+ // RelationalDatabaseBlueprintId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-relationaldatabaseblueprintid
+ RelationalDatabaseBlueprintId *types.Value `json:"RelationalDatabaseBlueprintId,omitempty"`
+
+ // RelationalDatabaseBundleId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-relationaldatabasebundleid
+ RelationalDatabaseBundleId *types.Value `json:"RelationalDatabaseBundleId,omitempty"`
+
+ // RelationalDatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-relationaldatabasename
+ RelationalDatabaseName *types.Value `json:"RelationalDatabaseName,omitempty"`
+
+ // RelationalDatabaseParameters AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-relationaldatabaseparameters
+ RelationalDatabaseParameters []Database_RelationalDatabaseParameter `json:"RelationalDatabaseParameters,omitempty"`
+
+ // RotateMasterUserPassword AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-rotatemasteruserpassword
+ RotateMasterUserPassword *types.Value `json:"RotateMasterUserPassword,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html#cfn-lightsail-database-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Database) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Database"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Database) MarshalJSON() ([]byte, error) {
+ type Properties Database
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Database) UnmarshalJSON(b []byte) error {
+ type Properties Database
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Database(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-database_relationaldatabaseparameter.go b/goformation/cloudformation/lightsail/aws-lightsail-database_relationaldatabaseparameter.go
new file mode 100644
index 0000000000..365b404225
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-database_relationaldatabaseparameter.go
@@ -0,0 +1,72 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Database_RelationalDatabaseParameter AWS CloudFormation Resource (AWS::Lightsail::Database.RelationalDatabaseParameter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html
+type Database_RelationalDatabaseParameter struct {
+
+ // AllowedValues AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-allowedvalues
+ AllowedValues *types.Value `json:"AllowedValues,omitempty"`
+
+ // ApplyMethod AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-applymethod
+ ApplyMethod *types.Value `json:"ApplyMethod,omitempty"`
+
+ // ApplyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-applytype
+ ApplyType *types.Value `json:"ApplyType,omitempty"`
+
+ // DataType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-datatype
+ DataType *types.Value `json:"DataType,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IsModifiable AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-ismodifiable
+ IsModifiable *types.Value `json:"IsModifiable,omitempty"`
+
+ // ParameterName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-parametername
+ ParameterName *types.Value `json:"ParameterName,omitempty"`
+
+ // ParameterValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html#cfn-lightsail-database-relationaldatabaseparameter-parametervalue
+ ParameterValue *types.Value `json:"ParameterValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Database_RelationalDatabaseParameter) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Database.RelationalDatabaseParameter"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-disk.go b/goformation/cloudformation/lightsail/aws-lightsail-disk.go
new file mode 100644
index 0000000000..a549f12cc0
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-disk.go
@@ -0,0 +1,129 @@
+package lightsail
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Disk AWS CloudFormation Resource (AWS::Lightsail::Disk)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html
+type Disk struct {
+
+ // AddOns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-addons
+ AddOns []Disk_AddOn `json:"AddOns,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // DiskName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-diskname
+ DiskName *types.Value `json:"DiskName,omitempty"`
+
+ // SizeInGb AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-sizeingb
+ SizeInGb *types.Value `json:"SizeInGb"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html#cfn-lightsail-disk-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Disk) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Disk"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Disk) MarshalJSON() ([]byte, error) {
+ type Properties Disk
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Disk) UnmarshalJSON(b []byte) error {
+ type Properties Disk
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Disk(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-disk_addon.go b/goformation/cloudformation/lightsail/aws-lightsail-disk_addon.go
new file mode 100644
index 0000000000..03d3033f0c
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-disk_addon.go
@@ -0,0 +1,47 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Disk_AddOn AWS CloudFormation Resource (AWS::Lightsail::Disk.AddOn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html
+type Disk_AddOn struct {
+
+ // AddOnType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html#cfn-lightsail-disk-addon-addontype
+ AddOnType *types.Value `json:"AddOnType,omitempty"`
+
+ // AutoSnapshotAddOnRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html#cfn-lightsail-disk-addon-autosnapshotaddonrequest
+ AutoSnapshotAddOnRequest *Disk_AutoSnapshotAddOn `json:"AutoSnapshotAddOnRequest,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html#cfn-lightsail-disk-addon-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Disk_AddOn) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Disk.AddOn"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-disk_autosnapshotaddon.go b/goformation/cloudformation/lightsail/aws-lightsail-disk_autosnapshotaddon.go
new file mode 100644
index 0000000000..5ffcaa4e98
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-disk_autosnapshotaddon.go
@@ -0,0 +1,37 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Disk_AutoSnapshotAddOn AWS CloudFormation Resource (AWS::Lightsail::Disk.AutoSnapshotAddOn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-autosnapshotaddon.html
+type Disk_AutoSnapshotAddOn struct {
+
+ // SnapshotTimeOfDay AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-autosnapshotaddon.html#cfn-lightsail-disk-autosnapshotaddon-snapshottimeofday
+ SnapshotTimeOfDay *types.Value `json:"SnapshotTimeOfDay,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Disk_AutoSnapshotAddOn) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Disk.AutoSnapshotAddOn"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance.go b/goformation/cloudformation/lightsail/aws-lightsail-instance.go
new file mode 100644
index 0000000000..17f923084c
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance.go
@@ -0,0 +1,154 @@
+package lightsail
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance AWS CloudFormation Resource (AWS::Lightsail::Instance)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html
+type Instance struct {
+
+ // AddOns AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-addons
+ AddOns []Instance_AddOn `json:"AddOns,omitempty"`
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // BlueprintId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-blueprintid
+ BlueprintId *types.Value `json:"BlueprintId,omitempty"`
+
+ // BundleId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-bundleid
+ BundleId *types.Value `json:"BundleId,omitempty"`
+
+ // Hardware AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-hardware
+ Hardware *Instance_Hardware `json:"Hardware,omitempty"`
+
+ // InstanceName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-instancename
+ InstanceName *types.Value `json:"InstanceName,omitempty"`
+
+ // KeyPairName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-keypairname
+ KeyPairName *types.Value `json:"KeyPairName,omitempty"`
+
+ // Networking AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-networking
+ Networking *Instance_Networking `json:"Networking,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // UserData AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html#cfn-lightsail-instance-userdata
+ UserData *types.Value `json:"UserData,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Instance) MarshalJSON() ([]byte, error) {
+ type Properties Instance
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Instance) UnmarshalJSON(b []byte) error {
+ type Properties Instance
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Instance(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_addon.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_addon.go
new file mode 100644
index 0000000000..bb66313702
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_addon.go
@@ -0,0 +1,47 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_AddOn AWS CloudFormation Resource (AWS::Lightsail::Instance.AddOn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html
+type Instance_AddOn struct {
+
+ // AddOnType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html#cfn-lightsail-instance-addon-addontype
+ AddOnType *types.Value `json:"AddOnType,omitempty"`
+
+ // AutoSnapshotAddOnRequest AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html#cfn-lightsail-instance-addon-autosnapshotaddonrequest
+ AutoSnapshotAddOnRequest *Instance_AutoSnapshotAddOn `json:"AutoSnapshotAddOnRequest,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html#cfn-lightsail-instance-addon-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_AddOn) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.AddOn"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_autosnapshotaddon.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_autosnapshotaddon.go
new file mode 100644
index 0000000000..da83c33f9e
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_autosnapshotaddon.go
@@ -0,0 +1,37 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_AutoSnapshotAddOn AWS CloudFormation Resource (AWS::Lightsail::Instance.AutoSnapshotAddOn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-autosnapshotaddon.html
+type Instance_AutoSnapshotAddOn struct {
+
+ // SnapshotTimeOfDay AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-autosnapshotaddon.html#cfn-lightsail-instance-autosnapshotaddon-snapshottimeofday
+ SnapshotTimeOfDay *types.Value `json:"SnapshotTimeOfDay,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_AutoSnapshotAddOn) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.AutoSnapshotAddOn"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_disk.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_disk.go
new file mode 100644
index 0000000000..b662b81ab3
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_disk.go
@@ -0,0 +1,67 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_Disk AWS CloudFormation Resource (AWS::Lightsail::Instance.Disk)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html
+type Instance_Disk struct {
+
+ // AttachedTo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-attachedto
+ AttachedTo *types.Value `json:"AttachedTo,omitempty"`
+
+ // AttachmentState AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-attachmentstate
+ AttachmentState *types.Value `json:"AttachmentState,omitempty"`
+
+ // DiskName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-diskname
+ DiskName *types.Value `json:"DiskName,omitempty"`
+
+ // IOPS AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-iops
+ IOPS *types.Value `json:"IOPS,omitempty"`
+
+ // IsSystemDisk AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-issystemdisk
+ IsSystemDisk *types.Value `json:"IsSystemDisk,omitempty"`
+
+ // Path AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-path
+ Path *types.Value `json:"Path,omitempty"`
+
+ // SizeInGb AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html#cfn-lightsail-instance-disk-sizeingb
+ SizeInGb *types.Value `json:"SizeInGb,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_Disk) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.Disk"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_hardware.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_hardware.go
new file mode 100644
index 0000000000..56a7b3375f
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_hardware.go
@@ -0,0 +1,47 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_Hardware AWS CloudFormation Resource (AWS::Lightsail::Instance.Hardware)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html
+type Instance_Hardware struct {
+
+ // CpuCount AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html#cfn-lightsail-instance-hardware-cpucount
+ CpuCount *types.Value `json:"CpuCount,omitempty"`
+
+ // Disks AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html#cfn-lightsail-instance-hardware-disks
+ Disks []Instance_Disk `json:"Disks,omitempty"`
+
+ // RamSizeInGb AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html#cfn-lightsail-instance-hardware-ramsizeingb
+ RamSizeInGb *types.Value `json:"RamSizeInGb,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_Hardware) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.Hardware"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_location.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_location.go
new file mode 100644
index 0000000000..96ccdc2262
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_location.go
@@ -0,0 +1,42 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_Location AWS CloudFormation Resource (AWS::Lightsail::Instance.Location)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-location.html
+type Instance_Location struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-location.html#cfn-lightsail-instance-location-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // RegionName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-location.html#cfn-lightsail-instance-location-regionname
+ RegionName *types.Value `json:"RegionName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_Location) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.Location"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_monthlytransfer.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_monthlytransfer.go
new file mode 100644
index 0000000000..ad0d39b925
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_monthlytransfer.go
@@ -0,0 +1,37 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_MonthlyTransfer AWS CloudFormation Resource (AWS::Lightsail::Instance.MonthlyTransfer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-monthlytransfer.html
+type Instance_MonthlyTransfer struct {
+
+ // GbPerMonthAllocated AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-monthlytransfer.html#cfn-lightsail-instance-monthlytransfer-gbpermonthallocated
+ GbPerMonthAllocated *types.Value `json:"GbPerMonthAllocated,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_MonthlyTransfer) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.MonthlyTransfer"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_networking.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_networking.go
new file mode 100644
index 0000000000..4d069eee4b
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_networking.go
@@ -0,0 +1,40 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_Networking AWS CloudFormation Resource (AWS::Lightsail::Instance.Networking)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html
+type Instance_Networking struct {
+
+ // MonthlyTransfer AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html#cfn-lightsail-instance-networking-monthlytransfer
+ MonthlyTransfer *Instance_MonthlyTransfer `json:"MonthlyTransfer,omitempty"`
+
+ // Ports AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html#cfn-lightsail-instance-networking-ports
+ Ports []Instance_Port `json:"Ports,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_Networking) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.Networking"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_port.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_port.go
new file mode 100644
index 0000000000..8876218fcb
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_port.go
@@ -0,0 +1,82 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_Port AWS CloudFormation Resource (AWS::Lightsail::Instance.Port)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html
+type Instance_Port struct {
+
+ // AccessDirection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-accessdirection
+ AccessDirection *types.Value `json:"AccessDirection,omitempty"`
+
+ // AccessFrom AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-accessfrom
+ AccessFrom *types.Value `json:"AccessFrom,omitempty"`
+
+ // AccessType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-accesstype
+ AccessType *types.Value `json:"AccessType,omitempty"`
+
+ // CidrListAliases AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-cidrlistaliases
+ CidrListAliases *types.Value `json:"CidrListAliases,omitempty"`
+
+ // Cidrs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-cidrs
+ Cidrs *types.Value `json:"Cidrs,omitempty"`
+
+ // CommonName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-commonname
+ CommonName *types.Value `json:"CommonName,omitempty"`
+
+ // FromPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-fromport
+ FromPort *types.Value `json:"FromPort,omitempty"`
+
+ // Ipv6Cidrs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-ipv6cidrs
+ Ipv6Cidrs *types.Value `json:"Ipv6Cidrs,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // ToPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html#cfn-lightsail-instance-port-toport
+ ToPort *types.Value `json:"ToPort,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_Port) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.Port"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-instance_state.go b/goformation/cloudformation/lightsail/aws-lightsail-instance_state.go
new file mode 100644
index 0000000000..2324f3a0ca
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-instance_state.go
@@ -0,0 +1,42 @@
+package lightsail
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Instance_State AWS CloudFormation Resource (AWS::Lightsail::Instance.State)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-state.html
+type Instance_State struct {
+
+ // Code AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-state.html#cfn-lightsail-instance-state-code
+ Code *types.Value `json:"Code,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-state.html#cfn-lightsail-instance-state-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Instance_State) AWSCloudFormationType() string {
+ return "AWS::Lightsail::Instance.State"
+}
diff --git a/goformation/cloudformation/lightsail/aws-lightsail-staticip.go b/goformation/cloudformation/lightsail/aws-lightsail-staticip.go
new file mode 100644
index 0000000000..c38124f1e4
--- /dev/null
+++ b/goformation/cloudformation/lightsail/aws-lightsail-staticip.go
@@ -0,0 +1,113 @@
+package lightsail
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// StaticIp AWS CloudFormation Resource (AWS::Lightsail::StaticIp)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html
+type StaticIp struct {
+
+ // AttachedTo AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html#cfn-lightsail-staticip-attachedto
+ AttachedTo *types.Value `json:"AttachedTo,omitempty"`
+
+ // StaticIpName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html#cfn-lightsail-staticip-staticipname
+ StaticIpName *types.Value `json:"StaticIpName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *StaticIp) AWSCloudFormationType() string {
+ return "AWS::Lightsail::StaticIp"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r StaticIp) MarshalJSON() ([]byte, error) {
+ type Properties StaticIp
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *StaticIp) UnmarshalJSON(b []byte) error {
+ type Properties StaticIp
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = StaticIp(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/location/aws-location-geofencecollection.go b/goformation/cloudformation/location/aws-location-geofencecollection.go
new file mode 100644
index 0000000000..9f7599bfb8
--- /dev/null
+++ b/goformation/cloudformation/location/aws-location-geofencecollection.go
@@ -0,0 +1,128 @@
+package location
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// GeofenceCollection AWS CloudFormation Resource (AWS::Location::GeofenceCollection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html
+type GeofenceCollection struct {
+
+ // CollectionName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html#cfn-location-geofencecollection-collectionname
+ CollectionName *types.Value `json:"CollectionName,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html#cfn-location-geofencecollection-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html#cfn-location-geofencecollection-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // PricingPlan AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html#cfn-location-geofencecollection-pricingplan
+ PricingPlan *types.Value `json:"PricingPlan,omitempty"`
+
+ // PricingPlanDataSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-geofencecollection.html#cfn-location-geofencecollection-pricingplandatasource
+ PricingPlanDataSource *types.Value `json:"PricingPlanDataSource,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *GeofenceCollection) AWSCloudFormationType() string {
+ return "AWS::Location::GeofenceCollection"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r GeofenceCollection) MarshalJSON() ([]byte, error) {
+ type Properties GeofenceCollection
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *GeofenceCollection) UnmarshalJSON(b []byte) error {
+ type Properties GeofenceCollection
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = GeofenceCollection(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/location/aws-location-map.go b/goformation/cloudformation/location/aws-location-map.go
new file mode 100644
index 0000000000..a3120e0f4c
--- /dev/null
+++ b/goformation/cloudformation/location/aws-location-map.go
@@ -0,0 +1,123 @@
+package location
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Map AWS CloudFormation Resource (AWS::Location::Map)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html
+type Map struct {
+
+ // Configuration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html#cfn-location-map-configuration
+ Configuration *Map_MapConfiguration `json:"Configuration,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html#cfn-location-map-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // MapName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html#cfn-location-map-mapname
+ MapName *types.Value `json:"MapName,omitempty"`
+
+ // PricingPlan AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-map.html#cfn-location-map-pricingplan
+ PricingPlan *types.Value `json:"PricingPlan,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Map) AWSCloudFormationType() string {
+ return "AWS::Location::Map"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Map) MarshalJSON() ([]byte, error) {
+ type Properties Map
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Map) UnmarshalJSON(b []byte) error {
+ type Properties Map
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Map(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/location/aws-location-map_mapconfiguration.go b/goformation/cloudformation/location/aws-location-map_mapconfiguration.go
new file mode 100644
index 0000000000..2a0cd0420c
--- /dev/null
+++ b/goformation/cloudformation/location/aws-location-map_mapconfiguration.go
@@ -0,0 +1,37 @@
+package location
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Map_MapConfiguration AWS CloudFormation Resource (AWS::Location::Map.MapConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-map-mapconfiguration.html
+type Map_MapConfiguration struct {
+
+ // Style AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-map-mapconfiguration.html#cfn-location-map-mapconfiguration-style
+ Style *types.Value `json:"Style,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Map_MapConfiguration) AWSCloudFormationType() string {
+ return "AWS::Location::Map.MapConfiguration"
+}
diff --git a/goformation/cloudformation/location/aws-location-placeindex.go b/goformation/cloudformation/location/aws-location-placeindex.go
new file mode 100644
index 0000000000..dc80d6ab51
--- /dev/null
+++ b/goformation/cloudformation/location/aws-location-placeindex.go
@@ -0,0 +1,128 @@
+package location
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PlaceIndex AWS CloudFormation Resource (AWS::Location::PlaceIndex)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html
+type PlaceIndex struct {
+
+ // DataSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html#cfn-location-placeindex-datasource
+ DataSource *types.Value `json:"DataSource,omitempty"`
+
+ // DataSourceConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html#cfn-location-placeindex-datasourceconfiguration
+ DataSourceConfiguration *PlaceIndex_DataSourceConfiguration `json:"DataSourceConfiguration,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html#cfn-location-placeindex-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IndexName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html#cfn-location-placeindex-indexname
+ IndexName *types.Value `json:"IndexName,omitempty"`
+
+ // PricingPlan AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-placeindex.html#cfn-location-placeindex-pricingplan
+ PricingPlan *types.Value `json:"PricingPlan,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PlaceIndex) AWSCloudFormationType() string {
+ return "AWS::Location::PlaceIndex"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r PlaceIndex) MarshalJSON() ([]byte, error) {
+ type Properties PlaceIndex
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *PlaceIndex) UnmarshalJSON(b []byte) error {
+ type Properties PlaceIndex
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = PlaceIndex(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/location/aws-location-placeindex_datasourceconfiguration.go b/goformation/cloudformation/location/aws-location-placeindex_datasourceconfiguration.go
new file mode 100644
index 0000000000..ba395ec10a
--- /dev/null
+++ b/goformation/cloudformation/location/aws-location-placeindex_datasourceconfiguration.go
@@ -0,0 +1,37 @@
+package location
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// PlaceIndex_DataSourceConfiguration AWS CloudFormation Resource (AWS::Location::PlaceIndex.DataSourceConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-placeindex-datasourceconfiguration.html
+type PlaceIndex_DataSourceConfiguration struct {
+
+ // IntendedUse AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-location-placeindex-datasourceconfiguration.html#cfn-location-placeindex-datasourceconfiguration-intendeduse
+ IntendedUse *types.Value `json:"IntendedUse,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *PlaceIndex_DataSourceConfiguration) AWSCloudFormationType() string {
+ return "AWS::Location::PlaceIndex.DataSourceConfiguration"
+}
diff --git a/goformation/cloudformation/location/aws-location-routecalculator.go b/goformation/cloudformation/location/aws-location-routecalculator.go
new file mode 100644
index 0000000000..3be2b89cd0
--- /dev/null
+++ b/goformation/cloudformation/location/aws-location-routecalculator.go
@@ -0,0 +1,123 @@
+package location
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// RouteCalculator AWS CloudFormation Resource (AWS::Location::RouteCalculator)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html
+type RouteCalculator struct {
+
+ // CalculatorName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html#cfn-location-routecalculator-calculatorname
+ CalculatorName *types.Value `json:"CalculatorName,omitempty"`
+
+ // DataSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html#cfn-location-routecalculator-datasource
+ DataSource *types.Value `json:"DataSource,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html#cfn-location-routecalculator-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // PricingPlan AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-routecalculator.html#cfn-location-routecalculator-pricingplan
+ PricingPlan *types.Value `json:"PricingPlan,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *RouteCalculator) AWSCloudFormationType() string {
+ return "AWS::Location::RouteCalculator"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r RouteCalculator) MarshalJSON() ([]byte, error) {
+ type Properties RouteCalculator
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *RouteCalculator) UnmarshalJSON(b []byte) error {
+ type Properties RouteCalculator
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = RouteCalculator(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/location/aws-location-tracker.go b/goformation/cloudformation/location/aws-location-tracker.go
new file mode 100644
index 0000000000..73c97f0dca
--- /dev/null
+++ b/goformation/cloudformation/location/aws-location-tracker.go
@@ -0,0 +1,133 @@
+package location
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Tracker AWS CloudFormation Resource (AWS::Location::Tracker)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html
+type Tracker struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // PositionFiltering AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-positionfiltering
+ PositionFiltering *types.Value `json:"PositionFiltering,omitempty"`
+
+ // PricingPlan AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-pricingplan
+ PricingPlan *types.Value `json:"PricingPlan,omitempty"`
+
+ // PricingPlanDataSource AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-pricingplandatasource
+ PricingPlanDataSource *types.Value `json:"PricingPlanDataSource,omitempty"`
+
+ // TrackerName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-tracker.html#cfn-location-tracker-trackername
+ TrackerName *types.Value `json:"TrackerName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Tracker) AWSCloudFormationType() string {
+ return "AWS::Location::Tracker"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Tracker) MarshalJSON() ([]byte, error) {
+ type Properties Tracker
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Tracker) UnmarshalJSON(b []byte) error {
+ type Properties Tracker
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Tracker(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/location/aws-location-trackerconsumer.go b/goformation/cloudformation/location/aws-location-trackerconsumer.go
new file mode 100644
index 0000000000..e03f1ac61b
--- /dev/null
+++ b/goformation/cloudformation/location/aws-location-trackerconsumer.go
@@ -0,0 +1,113 @@
+package location
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// TrackerConsumer AWS CloudFormation Resource (AWS::Location::TrackerConsumer)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-trackerconsumer.html
+type TrackerConsumer struct {
+
+ // ConsumerArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-trackerconsumer.html#cfn-location-trackerconsumer-consumerarn
+ ConsumerArn *types.Value `json:"ConsumerArn,omitempty"`
+
+ // TrackerName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-location-trackerconsumer.html#cfn-location-trackerconsumer-trackername
+ TrackerName *types.Value `json:"TrackerName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *TrackerConsumer) AWSCloudFormationType() string {
+ return "AWS::Location::TrackerConsumer"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r TrackerConsumer) MarshalJSON() ([]byte, error) {
+ type Properties TrackerConsumer
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *TrackerConsumer) UnmarshalJSON(b []byte) error {
+ type Properties TrackerConsumer
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = TrackerConsumer(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/logs/aws-logs-destination.go b/goformation/cloudformation/logs/aws-logs-destination.go
new file mode 100644
index 0000000000..51c17f3758
--- /dev/null
+++ b/goformation/cloudformation/logs/aws-logs-destination.go
@@ -0,0 +1,123 @@
+package logs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Destination AWS CloudFormation Resource (AWS::Logs::Destination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html
+type Destination struct {
+
+ // DestinationName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationname
+ DestinationName *types.Value `json:"DestinationName,omitempty"`
+
+ // DestinationPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-destinationpolicy
+ DestinationPolicy *types.Value `json:"DestinationPolicy,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // TargetArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-destination.html#cfn-logs-destination-targetarn
+ TargetArn *types.Value `json:"TargetArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Destination) AWSCloudFormationType() string {
+ return "AWS::Logs::Destination"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Destination) MarshalJSON() ([]byte, error) {
+ type Properties Destination
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Destination) UnmarshalJSON(b []byte) error {
+ type Properties Destination
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Destination(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/logs/aws-logs-loggroup.go b/goformation/cloudformation/logs/aws-logs-loggroup.go
new file mode 100644
index 0000000000..541f992f4e
--- /dev/null
+++ b/goformation/cloudformation/logs/aws-logs-loggroup.go
@@ -0,0 +1,124 @@
+package logs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// LogGroup AWS CloudFormation Resource (AWS::Logs::LogGroup)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html
+type LogGroup struct {
+
+ // KmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-kmskeyid
+ KmsKeyId *types.Value `json:"KmsKeyId,omitempty"`
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // RetentionInDays AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-retentionindays
+ RetentionInDays *types.Value `json:"RetentionInDays,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LogGroup) AWSCloudFormationType() string {
+ return "AWS::Logs::LogGroup"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LogGroup) MarshalJSON() ([]byte, error) {
+ type Properties LogGroup
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LogGroup) UnmarshalJSON(b []byte) error {
+ type Properties LogGroup
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LogGroup(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/logs/aws-logs-logstream.go b/goformation/cloudformation/logs/aws-logs-logstream.go
new file mode 100644
index 0000000000..f7bc2b7b2a
--- /dev/null
+++ b/goformation/cloudformation/logs/aws-logs-logstream.go
@@ -0,0 +1,113 @@
+package logs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// LogStream AWS CloudFormation Resource (AWS::Logs::LogStream)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html
+type LogStream struct {
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // LogStreamName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-logstream.html#cfn-logs-logstream-logstreamname
+ LogStreamName *types.Value `json:"LogStreamName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *LogStream) AWSCloudFormationType() string {
+ return "AWS::Logs::LogStream"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r LogStream) MarshalJSON() ([]byte, error) {
+ type Properties LogStream
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *LogStream) UnmarshalJSON(b []byte) error {
+ type Properties LogStream
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = LogStream(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/logs/aws-logs-metricfilter.go b/goformation/cloudformation/logs/aws-logs-metricfilter.go
new file mode 100644
index 0000000000..70238570b8
--- /dev/null
+++ b/goformation/cloudformation/logs/aws-logs-metricfilter.go
@@ -0,0 +1,118 @@
+package logs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MetricFilter AWS CloudFormation Resource (AWS::Logs::MetricFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html
+type MetricFilter struct {
+
+ // FilterPattern AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-filterpattern
+ FilterPattern *types.Value `json:"FilterPattern,omitempty"`
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // MetricTransformations AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html#cfn-cwl-metricfilter-metrictransformations
+ MetricTransformations []MetricFilter_MetricTransformation `json:"MetricTransformations,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MetricFilter) AWSCloudFormationType() string {
+ return "AWS::Logs::MetricFilter"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r MetricFilter) MarshalJSON() ([]byte, error) {
+ type Properties MetricFilter
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *MetricFilter) UnmarshalJSON(b []byte) error {
+ type Properties MetricFilter
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = MetricFilter(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/logs/aws-logs-metricfilter_metrictransformation.go b/goformation/cloudformation/logs/aws-logs-metricfilter_metrictransformation.go
new file mode 100644
index 0000000000..68a3566e31
--- /dev/null
+++ b/goformation/cloudformation/logs/aws-logs-metricfilter_metrictransformation.go
@@ -0,0 +1,52 @@
+package logs
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// MetricFilter_MetricTransformation AWS CloudFormation Resource (AWS::Logs::MetricFilter.MetricTransformation)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html
+type MetricFilter_MetricTransformation struct {
+
+ // DefaultValue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-defaultvalue
+ DefaultValue *types.Value `json:"DefaultValue,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // MetricNamespace AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricnamespace
+ MetricNamespace *types.Value `json:"MetricNamespace,omitempty"`
+
+ // MetricValue AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-logs-metricfilter-metrictransformation.html#cfn-cwl-metricfilter-metrictransformation-metricvalue
+ MetricValue *types.Value `json:"MetricValue,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *MetricFilter_MetricTransformation) AWSCloudFormationType() string {
+ return "AWS::Logs::MetricFilter.MetricTransformation"
+}
diff --git a/goformation/cloudformation/logs/aws-logs-querydefinition.go b/goformation/cloudformation/logs/aws-logs-querydefinition.go
new file mode 100644
index 0000000000..12da665a7f
--- /dev/null
+++ b/goformation/cloudformation/logs/aws-logs-querydefinition.go
@@ -0,0 +1,118 @@
+package logs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// QueryDefinition AWS CloudFormation Resource (AWS::Logs::QueryDefinition)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html
+type QueryDefinition struct {
+
+ // LogGroupNames AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-loggroupnames
+ LogGroupNames *types.Value `json:"LogGroupNames,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // QueryString AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-querydefinition.html#cfn-logs-querydefinition-querystring
+ QueryString *types.Value `json:"QueryString,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *QueryDefinition) AWSCloudFormationType() string {
+ return "AWS::Logs::QueryDefinition"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r QueryDefinition) MarshalJSON() ([]byte, error) {
+ type Properties QueryDefinition
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *QueryDefinition) UnmarshalJSON(b []byte) error {
+ type Properties QueryDefinition
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = QueryDefinition(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/logs/aws-logs-resourcepolicy.go b/goformation/cloudformation/logs/aws-logs-resourcepolicy.go
new file mode 100644
index 0000000000..0ae50dd739
--- /dev/null
+++ b/goformation/cloudformation/logs/aws-logs-resourcepolicy.go
@@ -0,0 +1,113 @@
+package logs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// ResourcePolicy AWS CloudFormation Resource (AWS::Logs::ResourcePolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html
+type ResourcePolicy struct {
+
+ // PolicyDocument AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policydocument
+ PolicyDocument *types.Value `json:"PolicyDocument,omitempty"`
+
+ // PolicyName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-resourcepolicy.html#cfn-logs-resourcepolicy-policyname
+ PolicyName *types.Value `json:"PolicyName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *ResourcePolicy) AWSCloudFormationType() string {
+ return "AWS::Logs::ResourcePolicy"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r ResourcePolicy) MarshalJSON() ([]byte, error) {
+ type Properties ResourcePolicy
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *ResourcePolicy) UnmarshalJSON(b []byte) error {
+ type Properties ResourcePolicy
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = ResourcePolicy(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/logs/aws-logs-subscriptionfilter.go b/goformation/cloudformation/logs/aws-logs-subscriptionfilter.go
new file mode 100644
index 0000000000..0946f3c181
--- /dev/null
+++ b/goformation/cloudformation/logs/aws-logs-subscriptionfilter.go
@@ -0,0 +1,123 @@
+package logs
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// SubscriptionFilter AWS CloudFormation Resource (AWS::Logs::SubscriptionFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html
+type SubscriptionFilter struct {
+
+ // DestinationArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-destinationarn
+ DestinationArn *types.Value `json:"DestinationArn,omitempty"`
+
+ // FilterPattern AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern
+ FilterPattern *types.Value `json:"FilterPattern,omitempty"`
+
+ // LogGroupName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname
+ LogGroupName *types.Value `json:"LogGroupName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *SubscriptionFilter) AWSCloudFormationType() string {
+ return "AWS::Logs::SubscriptionFilter"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r SubscriptionFilter) MarshalJSON() ([]byte, error) {
+ type Properties SubscriptionFilter
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *SubscriptionFilter) UnmarshalJSON(b []byte) error {
+ type Properties SubscriptionFilter
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = SubscriptionFilter(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lookoutequipment/aws-lookoutequipment-inferencescheduler.go b/goformation/cloudformation/lookoutequipment/aws-lookoutequipment-inferencescheduler.go
new file mode 100644
index 0000000000..65e6815c5f
--- /dev/null
+++ b/goformation/cloudformation/lookoutequipment/aws-lookoutequipment-inferencescheduler.go
@@ -0,0 +1,149 @@
+package lookoutequipment
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/cloudformation"
+ "goformation/v4/cloudformation/policies"
+)
+
+// InferenceScheduler AWS CloudFormation Resource (AWS::LookoutEquipment::InferenceScheduler)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html
+type InferenceScheduler struct {
+
+ // DataDelayOffsetInMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-datadelayoffsetinminutes
+ DataDelayOffsetInMinutes *types.Value `json:"DataDelayOffsetInMinutes,omitempty"`
+
+ // DataInputConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-datainputconfiguration
+ DataInputConfiguration interface{} `json:"DataInputConfiguration,omitempty"`
+
+ // DataOutputConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-dataoutputconfiguration
+ DataOutputConfiguration interface{} `json:"DataOutputConfiguration,omitempty"`
+
+ // DataUploadFrequency AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-datauploadfrequency
+ DataUploadFrequency *types.Value `json:"DataUploadFrequency,omitempty"`
+
+ // InferenceSchedulerName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-inferenceschedulername
+ InferenceSchedulerName *types.Value `json:"InferenceSchedulerName,omitempty"`
+
+ // ModelName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-modelname
+ ModelName *types.Value `json:"ModelName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // ServerSideKmsKeyId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-serversidekmskeyid
+ ServerSideKmsKeyId *types.Value `json:"ServerSideKmsKeyId,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutequipment-inferencescheduler.html#cfn-lookoutequipment-inferencescheduler-tags
+ Tags []cloudformation.Tag `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *InferenceScheduler) AWSCloudFormationType() string {
+ return "AWS::LookoutEquipment::InferenceScheduler"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r InferenceScheduler) MarshalJSON() ([]byte, error) {
+ type Properties InferenceScheduler
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *InferenceScheduler) UnmarshalJSON(b []byte) error {
+ type Properties InferenceScheduler
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = InferenceScheduler(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert.go
new file mode 100644
index 0000000000..bfcf02c64b
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert.go
@@ -0,0 +1,128 @@
+package lookoutmetrics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alert AWS CloudFormation Resource (AWS::LookoutMetrics::Alert)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-alert.html
+type Alert struct {
+
+ // Action AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-alert.html#cfn-lookoutmetrics-alert-action
+ Action *Alert_Action `json:"Action,omitempty"`
+
+ // AlertDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-alert.html#cfn-lookoutmetrics-alert-alertdescription
+ AlertDescription *types.Value `json:"AlertDescription,omitempty"`
+
+ // AlertName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-alert.html#cfn-lookoutmetrics-alert-alertname
+ AlertName *types.Value `json:"AlertName,omitempty"`
+
+ // AlertSensitivityThreshold AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-alert.html#cfn-lookoutmetrics-alert-alertsensitivitythreshold
+ AlertSensitivityThreshold *types.Value `json:"AlertSensitivityThreshold"`
+
+ // AnomalyDetectorArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-alert.html#cfn-lookoutmetrics-alert-anomalydetectorarn
+ AnomalyDetectorArn *types.Value `json:"AnomalyDetectorArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alert) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::Alert"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Alert) MarshalJSON() ([]byte, error) {
+ type Properties Alert
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Alert) UnmarshalJSON(b []byte) error {
+ type Properties Alert
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Alert(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_action.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_action.go
new file mode 100644
index 0000000000..f9a5e98a01
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_action.go
@@ -0,0 +1,40 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alert_Action AWS CloudFormation Resource (AWS::LookoutMetrics::Alert.Action)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-action.html
+type Alert_Action struct {
+
+ // LambdaConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-action.html#cfn-lookoutmetrics-alert-action-lambdaconfiguration
+ LambdaConfiguration *Alert_LambdaConfiguration `json:"LambdaConfiguration,omitempty"`
+
+ // SNSConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-action.html#cfn-lookoutmetrics-alert-action-snsconfiguration
+ SNSConfiguration *Alert_SNSConfiguration `json:"SNSConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alert_Action) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::Alert.Action"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_lambdaconfiguration.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_lambdaconfiguration.go
new file mode 100644
index 0000000000..e5bbb38200
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_lambdaconfiguration.go
@@ -0,0 +1,42 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alert_LambdaConfiguration AWS CloudFormation Resource (AWS::LookoutMetrics::Alert.LambdaConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-lambdaconfiguration.html
+type Alert_LambdaConfiguration struct {
+
+ // LambdaArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-lambdaconfiguration.html#cfn-lookoutmetrics-alert-lambdaconfiguration-lambdaarn
+ LambdaArn *types.Value `json:"LambdaArn,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-lambdaconfiguration.html#cfn-lookoutmetrics-alert-lambdaconfiguration-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alert_LambdaConfiguration) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::Alert.LambdaConfiguration"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_snsconfiguration.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_snsconfiguration.go
new file mode 100644
index 0000000000..a6916c1775
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-alert_snsconfiguration.go
@@ -0,0 +1,42 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Alert_SNSConfiguration AWS CloudFormation Resource (AWS::LookoutMetrics::Alert.SNSConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-snsconfiguration.html
+type Alert_SNSConfiguration struct {
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-snsconfiguration.html#cfn-lookoutmetrics-alert-snsconfiguration-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SnsTopicArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-alert-snsconfiguration.html#cfn-lookoutmetrics-alert-snsconfiguration-snstopicarn
+ SnsTopicArn *types.Value `json:"SnsTopicArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Alert_SNSConfiguration) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::Alert.SNSConfiguration"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector.go
new file mode 100644
index 0000000000..d30f9b7f64
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector.go
@@ -0,0 +1,128 @@
+package lookoutmetrics
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-anomalydetector.html
+type AnomalyDetector struct {
+
+ // AnomalyDetectorConfig AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-anomalydetector.html#cfn-lookoutmetrics-anomalydetector-anomalydetectorconfig
+ AnomalyDetectorConfig *AnomalyDetector_AnomalyDetectorConfig `json:"AnomalyDetectorConfig,omitempty"`
+
+ // AnomalyDetectorDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-anomalydetector.html#cfn-lookoutmetrics-anomalydetector-anomalydetectordescription
+ AnomalyDetectorDescription *types.Value `json:"AnomalyDetectorDescription,omitempty"`
+
+ // AnomalyDetectorName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-anomalydetector.html#cfn-lookoutmetrics-anomalydetector-anomalydetectorname
+ AnomalyDetectorName *types.Value `json:"AnomalyDetectorName,omitempty"`
+
+ // KmsKeyArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-anomalydetector.html#cfn-lookoutmetrics-anomalydetector-kmskeyarn
+ KmsKeyArn *types.Value `json:"KmsKeyArn,omitempty"`
+
+ // MetricSetList AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutmetrics-anomalydetector.html#cfn-lookoutmetrics-anomalydetector-metricsetlist
+ MetricSetList []AnomalyDetector_MetricSet `json:"MetricSetList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r AnomalyDetector) MarshalJSON() ([]byte, error) {
+ type Properties AnomalyDetector
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *AnomalyDetector) UnmarshalJSON(b []byte) error {
+ type Properties AnomalyDetector
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = AnomalyDetector(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_anomalydetectorconfig.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_anomalydetectorconfig.go
new file mode 100644
index 0000000000..435856e552
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_anomalydetectorconfig.go
@@ -0,0 +1,37 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_AnomalyDetectorConfig AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.AnomalyDetectorConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-anomalydetectorconfig.html
+type AnomalyDetector_AnomalyDetectorConfig struct {
+
+ // AnomalyDetectorFrequency AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-anomalydetectorconfig.html#cfn-lookoutmetrics-anomalydetector-anomalydetectorconfig-anomalydetectorfrequency
+ AnomalyDetectorFrequency *types.Value `json:"AnomalyDetectorFrequency,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_AnomalyDetectorConfig) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.AnomalyDetectorConfig"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_appflowconfig.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_appflowconfig.go
new file mode 100644
index 0000000000..d05399d5b3
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_appflowconfig.go
@@ -0,0 +1,42 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_AppFlowConfig AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-appflowconfig.html
+type AnomalyDetector_AppFlowConfig struct {
+
+ // FlowName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-appflowconfig.html#cfn-lookoutmetrics-anomalydetector-appflowconfig-flowname
+ FlowName *types.Value `json:"FlowName,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-appflowconfig.html#cfn-lookoutmetrics-anomalydetector-appflowconfig-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_AppFlowConfig) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_cloudwatchconfig.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_cloudwatchconfig.go
new file mode 100644
index 0000000000..8ed9d7a7fc
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_cloudwatchconfig.go
@@ -0,0 +1,37 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_CloudwatchConfig AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-cloudwatchconfig.html
+type AnomalyDetector_CloudwatchConfig struct {
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-cloudwatchconfig.html#cfn-lookoutmetrics-anomalydetector-cloudwatchconfig-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_CloudwatchConfig) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_csvformatdescriptor.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_csvformatdescriptor.go
new file mode 100644
index 0000000000..dbcb73a50e
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_csvformatdescriptor.go
@@ -0,0 +1,62 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_CsvFormatDescriptor AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html
+type AnomalyDetector_CsvFormatDescriptor struct {
+
+ // Charset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-csvformatdescriptor-charset
+ Charset *types.Value `json:"Charset,omitempty"`
+
+ // ContainsHeader AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-csvformatdescriptor-containsheader
+ ContainsHeader *types.Value `json:"ContainsHeader,omitempty"`
+
+ // Delimiter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-csvformatdescriptor-delimiter
+ Delimiter *types.Value `json:"Delimiter,omitempty"`
+
+ // FileCompression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-csvformatdescriptor-filecompression
+ FileCompression *types.Value `json:"FileCompression,omitempty"`
+
+ // HeaderList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-csvformatdescriptor-headerlist
+ HeaderList *types.Value `json:"HeaderList,omitempty"`
+
+ // QuoteSymbol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-csvformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-csvformatdescriptor-quotesymbol
+ QuoteSymbol *types.Value `json:"QuoteSymbol,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_CsvFormatDescriptor) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_fileformatdescriptor.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_fileformatdescriptor.go
new file mode 100644
index 0000000000..103db78072
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_fileformatdescriptor.go
@@ -0,0 +1,40 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_FileFormatDescriptor AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-fileformatdescriptor.html
+type AnomalyDetector_FileFormatDescriptor struct {
+
+ // CsvFormatDescriptor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-fileformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-fileformatdescriptor-csvformatdescriptor
+ CsvFormatDescriptor *AnomalyDetector_CsvFormatDescriptor `json:"CsvFormatDescriptor,omitempty"`
+
+ // JsonFormatDescriptor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-fileformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-fileformatdescriptor-jsonformatdescriptor
+ JsonFormatDescriptor *AnomalyDetector_JsonFormatDescriptor `json:"JsonFormatDescriptor,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_FileFormatDescriptor) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_jsonformatdescriptor.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_jsonformatdescriptor.go
new file mode 100644
index 0000000000..3000450125
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_jsonformatdescriptor.go
@@ -0,0 +1,42 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_JsonFormatDescriptor AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-jsonformatdescriptor.html
+type AnomalyDetector_JsonFormatDescriptor struct {
+
+ // Charset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-jsonformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-jsonformatdescriptor-charset
+ Charset *types.Value `json:"Charset,omitempty"`
+
+ // FileCompression AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-jsonformatdescriptor.html#cfn-lookoutmetrics-anomalydetector-jsonformatdescriptor-filecompression
+ FileCompression *types.Value `json:"FileCompression,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_JsonFormatDescriptor) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metric.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metric.go
new file mode 100644
index 0000000000..e9b68ff72e
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metric.go
@@ -0,0 +1,47 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_Metric AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.Metric)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metric.html
+type AnomalyDetector_Metric struct {
+
+ // AggregationFunction AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metric.html#cfn-lookoutmetrics-anomalydetector-metric-aggregationfunction
+ AggregationFunction *types.Value `json:"AggregationFunction,omitempty"`
+
+ // MetricName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metric.html#cfn-lookoutmetrics-anomalydetector-metric-metricname
+ MetricName *types.Value `json:"MetricName,omitempty"`
+
+ // Namespace AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metric.html#cfn-lookoutmetrics-anomalydetector-metric-namespace
+ Namespace *types.Value `json:"Namespace,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_Metric) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.Metric"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metricset.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metricset.go
new file mode 100644
index 0000000000..b9e4618c13
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metricset.go
@@ -0,0 +1,77 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_MetricSet AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.MetricSet)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html
+type AnomalyDetector_MetricSet struct {
+
+ // DimensionList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-dimensionlist
+ DimensionList *types.Value `json:"DimensionList,omitempty"`
+
+ // MetricList AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-metriclist
+ MetricList []AnomalyDetector_Metric `json:"MetricList,omitempty"`
+
+ // MetricSetDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-metricsetdescription
+ MetricSetDescription *types.Value `json:"MetricSetDescription,omitempty"`
+
+ // MetricSetFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-metricsetfrequency
+ MetricSetFrequency *types.Value `json:"MetricSetFrequency,omitempty"`
+
+ // MetricSetName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-metricsetname
+ MetricSetName *types.Value `json:"MetricSetName,omitempty"`
+
+ // MetricSource AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-metricsource
+ MetricSource *AnomalyDetector_MetricSource `json:"MetricSource,omitempty"`
+
+ // Offset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-offset
+ Offset *types.Value `json:"Offset,omitempty"`
+
+ // TimestampColumn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-timestampcolumn
+ TimestampColumn *AnomalyDetector_TimestampColumn `json:"TimestampColumn,omitempty"`
+
+ // Timezone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricset.html#cfn-lookoutmetrics-anomalydetector-metricset-timezone
+ Timezone *types.Value `json:"Timezone,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_MetricSet) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.MetricSet"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metricsource.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metricsource.go
new file mode 100644
index 0000000000..07f5231c97
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_metricsource.go
@@ -0,0 +1,55 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_MetricSource AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.MetricSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html
+type AnomalyDetector_MetricSource struct {
+
+ // AppFlowConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html#cfn-lookoutmetrics-anomalydetector-metricsource-appflowconfig
+ AppFlowConfig *AnomalyDetector_AppFlowConfig `json:"AppFlowConfig,omitempty"`
+
+ // CloudwatchConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html#cfn-lookoutmetrics-anomalydetector-metricsource-cloudwatchconfig
+ CloudwatchConfig *AnomalyDetector_CloudwatchConfig `json:"CloudwatchConfig,omitempty"`
+
+ // RDSSourceConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html#cfn-lookoutmetrics-anomalydetector-metricsource-rdssourceconfig
+ RDSSourceConfig *AnomalyDetector_RDSSourceConfig `json:"RDSSourceConfig,omitempty"`
+
+ // RedshiftSourceConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html#cfn-lookoutmetrics-anomalydetector-metricsource-redshiftsourceconfig
+ RedshiftSourceConfig *AnomalyDetector_RedshiftSourceConfig `json:"RedshiftSourceConfig,omitempty"`
+
+ // S3SourceConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-metricsource.html#cfn-lookoutmetrics-anomalydetector-metricsource-s3sourceconfig
+ S3SourceConfig *AnomalyDetector_S3SourceConfig `json:"S3SourceConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_MetricSource) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.MetricSource"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_rdssourceconfig.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_rdssourceconfig.go
new file mode 100644
index 0000000000..413b6aeaa4
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_rdssourceconfig.go
@@ -0,0 +1,72 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_RDSSourceConfig AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html
+type AnomalyDetector_RDSSourceConfig struct {
+
+ // DBInstanceIdentifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html#cfn-lookoutmetrics-anomalydetector-rdssourceconfig-dbinstanceidentifier
+ DBInstanceIdentifier *types.Value `json:"DBInstanceIdentifier,omitempty"`
+
+ // DatabaseHost AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html#cfn-lookoutmetrics-anomalydetector-rdssourceconfig-databasehost
+ DatabaseHost *types.Value `json:"DatabaseHost,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html#cfn-lookoutmetrics-anomalydetector-rdssourceconfig-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // DatabasePort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html#cfn-lookoutmetrics-anomalydetector-rdssourceconfig-databaseport
+ DatabasePort *types.Value `json:"DatabasePort"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html#cfn-lookoutmetrics-anomalydetector-rdssourceconfig-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecretManagerArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html#cfn-lookoutmetrics-anomalydetector-rdssourceconfig-secretmanagerarn
+ SecretManagerArn *types.Value `json:"SecretManagerArn,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html#cfn-lookoutmetrics-anomalydetector-rdssourceconfig-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // VpcConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-rdssourceconfig.html#cfn-lookoutmetrics-anomalydetector-rdssourceconfig-vpcconfiguration
+ VpcConfiguration *AnomalyDetector_VpcConfiguration `json:"VpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_RDSSourceConfig) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_redshiftsourceconfig.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_redshiftsourceconfig.go
new file mode 100644
index 0000000000..fb63a61eea
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_redshiftsourceconfig.go
@@ -0,0 +1,72 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_RedshiftSourceConfig AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html
+type AnomalyDetector_RedshiftSourceConfig struct {
+
+ // ClusterIdentifier AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html#cfn-lookoutmetrics-anomalydetector-redshiftsourceconfig-clusteridentifier
+ ClusterIdentifier *types.Value `json:"ClusterIdentifier,omitempty"`
+
+ // DatabaseHost AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html#cfn-lookoutmetrics-anomalydetector-redshiftsourceconfig-databasehost
+ DatabaseHost *types.Value `json:"DatabaseHost,omitempty"`
+
+ // DatabaseName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html#cfn-lookoutmetrics-anomalydetector-redshiftsourceconfig-databasename
+ DatabaseName *types.Value `json:"DatabaseName,omitempty"`
+
+ // DatabasePort AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html#cfn-lookoutmetrics-anomalydetector-redshiftsourceconfig-databaseport
+ DatabasePort *types.Value `json:"DatabasePort"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html#cfn-lookoutmetrics-anomalydetector-redshiftsourceconfig-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecretManagerArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html#cfn-lookoutmetrics-anomalydetector-redshiftsourceconfig-secretmanagerarn
+ SecretManagerArn *types.Value `json:"SecretManagerArn,omitempty"`
+
+ // TableName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html#cfn-lookoutmetrics-anomalydetector-redshiftsourceconfig-tablename
+ TableName *types.Value `json:"TableName,omitempty"`
+
+ // VpcConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-redshiftsourceconfig.html#cfn-lookoutmetrics-anomalydetector-redshiftsourceconfig-vpcconfiguration
+ VpcConfiguration *AnomalyDetector_VpcConfiguration `json:"VpcConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_RedshiftSourceConfig) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_s3sourceconfig.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_s3sourceconfig.go
new file mode 100644
index 0000000000..96a2e5dd39
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_s3sourceconfig.go
@@ -0,0 +1,52 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_S3SourceConfig AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-s3sourceconfig.html
+type AnomalyDetector_S3SourceConfig struct {
+
+ // FileFormatDescriptor AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-s3sourceconfig.html#cfn-lookoutmetrics-anomalydetector-s3sourceconfig-fileformatdescriptor
+ FileFormatDescriptor *AnomalyDetector_FileFormatDescriptor `json:"FileFormatDescriptor,omitempty"`
+
+ // HistoricalDataPathList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-s3sourceconfig.html#cfn-lookoutmetrics-anomalydetector-s3sourceconfig-historicaldatapathlist
+ HistoricalDataPathList *types.Value `json:"HistoricalDataPathList,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-s3sourceconfig.html#cfn-lookoutmetrics-anomalydetector-s3sourceconfig-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // TemplatedPathList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-s3sourceconfig.html#cfn-lookoutmetrics-anomalydetector-s3sourceconfig-templatedpathlist
+ TemplatedPathList *types.Value `json:"TemplatedPathList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_S3SourceConfig) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_timestampcolumn.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_timestampcolumn.go
new file mode 100644
index 0000000000..ca43e681ff
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_timestampcolumn.go
@@ -0,0 +1,42 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_TimestampColumn AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.TimestampColumn)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-timestampcolumn.html
+type AnomalyDetector_TimestampColumn struct {
+
+ // ColumnFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-timestampcolumn.html#cfn-lookoutmetrics-anomalydetector-timestampcolumn-columnformat
+ ColumnFormat *types.Value `json:"ColumnFormat,omitempty"`
+
+ // ColumnName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-timestampcolumn.html#cfn-lookoutmetrics-anomalydetector-timestampcolumn-columnname
+ ColumnName *types.Value `json:"ColumnName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_TimestampColumn) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.TimestampColumn"
+}
diff --git a/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_vpcconfiguration.go b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_vpcconfiguration.go
new file mode 100644
index 0000000000..8035ea7f6f
--- /dev/null
+++ b/goformation/cloudformation/lookoutmetrics/aws-lookoutmetrics-anomalydetector_vpcconfiguration.go
@@ -0,0 +1,42 @@
+package lookoutmetrics
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// AnomalyDetector_VpcConfiguration AWS CloudFormation Resource (AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html
+type AnomalyDetector_VpcConfiguration struct {
+
+ // SecurityGroupIdList AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html#cfn-lookoutmetrics-anomalydetector-vpcconfiguration-securitygroupidlist
+ SecurityGroupIdList *types.Value `json:"SecurityGroupIdList,omitempty"`
+
+ // SubnetIdList AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lookoutmetrics-anomalydetector-vpcconfiguration.html#cfn-lookoutmetrics-anomalydetector-vpcconfiguration-subnetidlist
+ SubnetIdList *types.Value `json:"SubnetIdList,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *AnomalyDetector_VpcConfiguration) AWSCloudFormationType() string {
+ return "AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration"
+}
diff --git a/goformation/cloudformation/lookoutvision/aws-lookoutvision-project.go b/goformation/cloudformation/lookoutvision/aws-lookoutvision-project.go
new file mode 100644
index 0000000000..ba3dd98bbd
--- /dev/null
+++ b/goformation/cloudformation/lookoutvision/aws-lookoutvision-project.go
@@ -0,0 +1,108 @@
+package lookoutvision
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Project AWS CloudFormation Resource (AWS::LookoutVision::Project)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutvision-project.html
+type Project struct {
+
+ // ProjectName AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lookoutvision-project.html#cfn-lookoutvision-project-projectname
+ ProjectName *types.Value `json:"ProjectName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Project) AWSCloudFormationType() string {
+ return "AWS::LookoutVision::Project"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Project) MarshalJSON() ([]byte, error) {
+ type Properties Project
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Project) UnmarshalJSON(b []byte) error {
+ type Properties Project
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Project(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/macie/aws-macie-customdataidentifier.go b/goformation/cloudformation/macie/aws-macie-customdataidentifier.go
new file mode 100644
index 0000000000..a8aa4d2064
--- /dev/null
+++ b/goformation/cloudformation/macie/aws-macie-customdataidentifier.go
@@ -0,0 +1,133 @@
+package macie
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// CustomDataIdentifier AWS CloudFormation Resource (AWS::Macie::CustomDataIdentifier)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html
+type CustomDataIdentifier struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // IgnoreWords AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-ignorewords
+ IgnoreWords *types.Value `json:"IgnoreWords,omitempty"`
+
+ // Keywords AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-keywords
+ Keywords *types.Value `json:"Keywords,omitempty"`
+
+ // MaximumMatchDistance AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-maximummatchdistance
+ MaximumMatchDistance *types.Value `json:"MaximumMatchDistance,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Regex AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-regex
+ Regex *types.Value `json:"Regex,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *CustomDataIdentifier) AWSCloudFormationType() string {
+ return "AWS::Macie::CustomDataIdentifier"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r CustomDataIdentifier) MarshalJSON() ([]byte, error) {
+ type Properties CustomDataIdentifier
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *CustomDataIdentifier) UnmarshalJSON(b []byte) error {
+ type Properties CustomDataIdentifier
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = CustomDataIdentifier(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/macie/aws-macie-findingsfilter.go b/goformation/cloudformation/macie/aws-macie-findingsfilter.go
new file mode 100644
index 0000000000..979d22241d
--- /dev/null
+++ b/goformation/cloudformation/macie/aws-macie-findingsfilter.go
@@ -0,0 +1,128 @@
+package macie
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FindingsFilter AWS CloudFormation Resource (AWS::Macie::FindingsFilter)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html
+type FindingsFilter struct {
+
+ // Action AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-action
+ Action *types.Value `json:"Action,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // FindingCriteria AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-findingcriteria
+ FindingCriteria *FindingsFilter_FindingCriteria `json:"FindingCriteria,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Position AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-position
+ Position *types.Value `json:"Position,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FindingsFilter) AWSCloudFormationType() string {
+ return "AWS::Macie::FindingsFilter"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FindingsFilter) MarshalJSON() ([]byte, error) {
+ type Properties FindingsFilter
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FindingsFilter) UnmarshalJSON(b []byte) error {
+ type Properties FindingsFilter
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FindingsFilter(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/macie/aws-macie-findingsfilter_criterion.go b/goformation/cloudformation/macie/aws-macie-findingsfilter_criterion.go
new file mode 100644
index 0000000000..3969afa58d
--- /dev/null
+++ b/goformation/cloudformation/macie/aws-macie-findingsfilter_criterion.go
@@ -0,0 +1,30 @@
+package macie
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// FindingsFilter_Criterion AWS CloudFormation Resource (AWS::Macie::FindingsFilter.Criterion)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-criterion.html
+type FindingsFilter_Criterion struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FindingsFilter_Criterion) AWSCloudFormationType() string {
+ return "AWS::Macie::FindingsFilter.Criterion"
+}
diff --git a/goformation/cloudformation/macie/aws-macie-findingsfilter_findingcriteria.go b/goformation/cloudformation/macie/aws-macie-findingsfilter_findingcriteria.go
new file mode 100644
index 0000000000..5ce19439a3
--- /dev/null
+++ b/goformation/cloudformation/macie/aws-macie-findingsfilter_findingcriteria.go
@@ -0,0 +1,35 @@
+package macie
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// FindingsFilter_FindingCriteria AWS CloudFormation Resource (AWS::Macie::FindingsFilter.FindingCriteria)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-findingcriteria.html
+type FindingsFilter_FindingCriteria struct {
+
+ // Criterion AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-findingcriteria.html#cfn-macie-findingsfilter-findingcriteria-criterion
+ Criterion *FindingsFilter_Criterion `json:"Criterion,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FindingsFilter_FindingCriteria) AWSCloudFormationType() string {
+ return "AWS::Macie::FindingsFilter.FindingCriteria"
+}
diff --git a/goformation/cloudformation/macie/aws-macie-findingsfilter_findingsfilterlistitem.go b/goformation/cloudformation/macie/aws-macie-findingsfilter_findingsfilterlistitem.go
new file mode 100644
index 0000000000..68a1f9eb09
--- /dev/null
+++ b/goformation/cloudformation/macie/aws-macie-findingsfilter_findingsfilterlistitem.go
@@ -0,0 +1,42 @@
+package macie
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FindingsFilter_FindingsFilterListItem AWS CloudFormation Resource (AWS::Macie::FindingsFilter.FindingsFilterListItem)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-findingsfilterlistitem.html
+type FindingsFilter_FindingsFilterListItem struct {
+
+ // Id AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-findingsfilterlistitem.html#cfn-macie-findingsfilter-findingsfilterlistitem-id
+ Id *types.Value `json:"Id,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-macie-findingsfilter-findingsfilterlistitem.html#cfn-macie-findingsfilter-findingsfilterlistitem-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FindingsFilter_FindingsFilterListItem) AWSCloudFormationType() string {
+ return "AWS::Macie::FindingsFilter.FindingsFilterListItem"
+}
diff --git a/goformation/cloudformation/macie/aws-macie-session.go b/goformation/cloudformation/macie/aws-macie-session.go
new file mode 100644
index 0000000000..d7e2515cc7
--- /dev/null
+++ b/goformation/cloudformation/macie/aws-macie-session.go
@@ -0,0 +1,113 @@
+package macie
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Session AWS CloudFormation Resource (AWS::Macie::Session)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-session.html
+type Session struct {
+
+ // FindingPublishingFrequency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-session.html#cfn-macie-session-findingpublishingfrequency
+ FindingPublishingFrequency *types.Value `json:"FindingPublishingFrequency,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-session.html#cfn-macie-session-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Session) AWSCloudFormationType() string {
+ return "AWS::Macie::Session"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Session) MarshalJSON() ([]byte, error) {
+ type Properties Session
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Session) UnmarshalJSON(b []byte) error {
+ type Properties Session
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Session(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member.go
new file mode 100644
index 0000000000..ec70a639d2
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member.go
@@ -0,0 +1,123 @@
+package managedblockchain
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member AWS CloudFormation Resource (AWS::ManagedBlockchain::Member)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html
+type Member struct {
+
+ // InvitationId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html#cfn-managedblockchain-member-invitationid
+ InvitationId *types.Value `json:"InvitationId,omitempty"`
+
+ // MemberConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html#cfn-managedblockchain-member-memberconfiguration
+ MemberConfiguration *Member_MemberConfiguration `json:"MemberConfiguration,omitempty"`
+
+ // NetworkConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html#cfn-managedblockchain-member-networkconfiguration
+ NetworkConfiguration *Member_NetworkConfiguration `json:"NetworkConfiguration,omitempty"`
+
+ // NetworkId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-member.html#cfn-managedblockchain-member-networkid
+ NetworkId *types.Value `json:"NetworkId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Member) MarshalJSON() ([]byte, error) {
+ type Properties Member
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Member) UnmarshalJSON(b []byte) error {
+ type Properties Member
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Member(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_approvalthresholdpolicy.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_approvalthresholdpolicy.go
new file mode 100644
index 0000000000..2dcf656f1f
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_approvalthresholdpolicy.go
@@ -0,0 +1,47 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member_ApprovalThresholdPolicy AWS CloudFormation Resource (AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-approvalthresholdpolicy.html
+type Member_ApprovalThresholdPolicy struct {
+
+ // ProposalDurationInHours AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-approvalthresholdpolicy.html#cfn-managedblockchain-member-approvalthresholdpolicy-proposaldurationinhours
+ ProposalDurationInHours *types.Value `json:"ProposalDurationInHours,omitempty"`
+
+ // ThresholdComparator AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-approvalthresholdpolicy.html#cfn-managedblockchain-member-approvalthresholdpolicy-thresholdcomparator
+ ThresholdComparator *types.Value `json:"ThresholdComparator,omitempty"`
+
+ // ThresholdPercentage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-approvalthresholdpolicy.html#cfn-managedblockchain-member-approvalthresholdpolicy-thresholdpercentage
+ ThresholdPercentage *types.Value `json:"ThresholdPercentage,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member_ApprovalThresholdPolicy) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy"
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberconfiguration.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberconfiguration.go
new file mode 100644
index 0000000000..b9957d1df2
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberconfiguration.go
@@ -0,0 +1,47 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member_MemberConfiguration AWS CloudFormation Resource (AWS::ManagedBlockchain::Member.MemberConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberconfiguration.html
+type Member_MemberConfiguration struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberconfiguration.html#cfn-managedblockchain-member-memberconfiguration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // MemberFrameworkConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberconfiguration.html#cfn-managedblockchain-member-memberconfiguration-memberframeworkconfiguration
+ MemberFrameworkConfiguration *Member_MemberFrameworkConfiguration `json:"MemberFrameworkConfiguration,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberconfiguration.html#cfn-managedblockchain-member-memberconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member_MemberConfiguration) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member.MemberConfiguration"
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberfabricconfiguration.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberfabricconfiguration.go
new file mode 100644
index 0000000000..cbe1d4b954
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberfabricconfiguration.go
@@ -0,0 +1,42 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member_MemberFabricConfiguration AWS CloudFormation Resource (AWS::ManagedBlockchain::Member.MemberFabricConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberfabricconfiguration.html
+type Member_MemberFabricConfiguration struct {
+
+ // AdminPassword AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberfabricconfiguration.html#cfn-managedblockchain-member-memberfabricconfiguration-adminpassword
+ AdminPassword *types.Value `json:"AdminPassword,omitempty"`
+
+ // AdminUsername AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberfabricconfiguration.html#cfn-managedblockchain-member-memberfabricconfiguration-adminusername
+ AdminUsername *types.Value `json:"AdminUsername,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member_MemberFabricConfiguration) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member.MemberFabricConfiguration"
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberframeworkconfiguration.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberframeworkconfiguration.go
new file mode 100644
index 0000000000..d9b6491f85
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_memberframeworkconfiguration.go
@@ -0,0 +1,35 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member_MemberFrameworkConfiguration AWS CloudFormation Resource (AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberframeworkconfiguration.html
+type Member_MemberFrameworkConfiguration struct {
+
+ // MemberFabricConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-memberframeworkconfiguration.html#cfn-managedblockchain-member-memberframeworkconfiguration-memberfabricconfiguration
+ MemberFabricConfiguration *Member_MemberFabricConfiguration `json:"MemberFabricConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member_MemberFrameworkConfiguration) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration"
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkconfiguration.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkconfiguration.go
new file mode 100644
index 0000000000..aab6e7da8d
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkconfiguration.go
@@ -0,0 +1,62 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member_NetworkConfiguration AWS CloudFormation Resource (AWS::ManagedBlockchain::Member.NetworkConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html
+type Member_NetworkConfiguration struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html#cfn-managedblockchain-member-networkconfiguration-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Framework AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html#cfn-managedblockchain-member-networkconfiguration-framework
+ Framework *types.Value `json:"Framework,omitempty"`
+
+ // FrameworkVersion AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html#cfn-managedblockchain-member-networkconfiguration-frameworkversion
+ FrameworkVersion *types.Value `json:"FrameworkVersion,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html#cfn-managedblockchain-member-networkconfiguration-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // NetworkFrameworkConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html#cfn-managedblockchain-member-networkconfiguration-networkframeworkconfiguration
+ NetworkFrameworkConfiguration *Member_NetworkFrameworkConfiguration `json:"NetworkFrameworkConfiguration,omitempty"`
+
+ // VotingPolicy AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkconfiguration.html#cfn-managedblockchain-member-networkconfiguration-votingpolicy
+ VotingPolicy *Member_VotingPolicy `json:"VotingPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member_NetworkConfiguration) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member.NetworkConfiguration"
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkfabricconfiguration.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkfabricconfiguration.go
new file mode 100644
index 0000000000..a09c4f7b33
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkfabricconfiguration.go
@@ -0,0 +1,37 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member_NetworkFabricConfiguration AWS CloudFormation Resource (AWS::ManagedBlockchain::Member.NetworkFabricConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html
+type Member_NetworkFabricConfiguration struct {
+
+ // Edition AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkfabricconfiguration.html#cfn-managedblockchain-member-networkfabricconfiguration-edition
+ Edition *types.Value `json:"Edition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member_NetworkFabricConfiguration) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member.NetworkFabricConfiguration"
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkframeworkconfiguration.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkframeworkconfiguration.go
new file mode 100644
index 0000000000..48e011ab85
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_networkframeworkconfiguration.go
@@ -0,0 +1,35 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member_NetworkFrameworkConfiguration AWS CloudFormation Resource (AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkframeworkconfiguration.html
+type Member_NetworkFrameworkConfiguration struct {
+
+ // NetworkFabricConfiguration AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-networkframeworkconfiguration.html#cfn-managedblockchain-member-networkframeworkconfiguration-networkfabricconfiguration
+ NetworkFabricConfiguration *Member_NetworkFabricConfiguration `json:"NetworkFabricConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member_NetworkFrameworkConfiguration) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration"
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_votingpolicy.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_votingpolicy.go
new file mode 100644
index 0000000000..d39c9e7339
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-member_votingpolicy.go
@@ -0,0 +1,35 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Member_VotingPolicy AWS CloudFormation Resource (AWS::ManagedBlockchain::Member.VotingPolicy)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html
+type Member_VotingPolicy struct {
+
+ // ApprovalThresholdPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-member-votingpolicy.html#cfn-managedblockchain-member-votingpolicy-approvalthresholdpolicy
+ ApprovalThresholdPolicy *Member_ApprovalThresholdPolicy `json:"ApprovalThresholdPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Member_VotingPolicy) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Member.VotingPolicy"
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-node.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-node.go
new file mode 100644
index 0000000000..68a7972076
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-node.go
@@ -0,0 +1,118 @@
+package managedblockchain
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Node AWS CloudFormation Resource (AWS::ManagedBlockchain::Node)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html
+type Node struct {
+
+ // MemberId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html#cfn-managedblockchain-node-memberid
+ MemberId *types.Value `json:"MemberId,omitempty"`
+
+ // NetworkId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html#cfn-managedblockchain-node-networkid
+ NetworkId *types.Value `json:"NetworkId,omitempty"`
+
+ // NodeConfiguration AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-managedblockchain-node.html#cfn-managedblockchain-node-nodeconfiguration
+ NodeConfiguration *Node_NodeConfiguration `json:"NodeConfiguration,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Node) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Node"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Node) MarshalJSON() ([]byte, error) {
+ type Properties Node
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Node) UnmarshalJSON(b []byte) error {
+ type Properties Node
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Node(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/managedblockchain/aws-managedblockchain-node_nodeconfiguration.go b/goformation/cloudformation/managedblockchain/aws-managedblockchain-node_nodeconfiguration.go
new file mode 100644
index 0000000000..8b863eb04b
--- /dev/null
+++ b/goformation/cloudformation/managedblockchain/aws-managedblockchain-node_nodeconfiguration.go
@@ -0,0 +1,42 @@
+package managedblockchain
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Node_NodeConfiguration AWS CloudFormation Resource (AWS::ManagedBlockchain::Node.NodeConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html
+type Node_NodeConfiguration struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html#cfn-managedblockchain-node-nodeconfiguration-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // InstanceType AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-managedblockchain-node-nodeconfiguration.html#cfn-managedblockchain-node-nodeconfiguration-instancetype
+ InstanceType *types.Value `json:"InstanceType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Node_NodeConfiguration) AWSCloudFormationType() string {
+ return "AWS::ManagedBlockchain::Node.NodeConfiguration"
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow.go
new file mode 100644
index 0000000000..4d7a7d48db
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow.go
@@ -0,0 +1,123 @@
+package mediaconnect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow AWS CloudFormation Resource (AWS::MediaConnect::Flow)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html
+type Flow struct {
+
+ // AvailabilityZone AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html#cfn-mediaconnect-flow-availabilityzone
+ AvailabilityZone *types.Value `json:"AvailabilityZone,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html#cfn-mediaconnect-flow-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Source AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html#cfn-mediaconnect-flow-source
+ Source *Flow_Source `json:"Source,omitempty"`
+
+ // SourceFailoverConfig AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flow.html#cfn-mediaconnect-flow-sourcefailoverconfig
+ SourceFailoverConfig *Flow_FailoverConfig `json:"SourceFailoverConfig,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::Flow"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Flow) MarshalJSON() ([]byte, error) {
+ type Properties Flow
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Flow) UnmarshalJSON(b []byte) error {
+ type Properties Flow
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Flow(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_encryption.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_encryption.go
new file mode 100644
index 0000000000..23f1957ac5
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_encryption.go
@@ -0,0 +1,77 @@
+package mediaconnect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_Encryption AWS CloudFormation Resource (AWS::MediaConnect::Flow.Encryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html
+type Flow_Encryption struct {
+
+ // Algorithm AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-algorithm
+ Algorithm *types.Value `json:"Algorithm,omitempty"`
+
+ // ConstantInitializationVector AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-constantinitializationvector
+ ConstantInitializationVector *types.Value `json:"ConstantInitializationVector,omitempty"`
+
+ // DeviceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-deviceid
+ DeviceId *types.Value `json:"DeviceId,omitempty"`
+
+ // KeyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-keytype
+ KeyType *types.Value `json:"KeyType,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // Url AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-encryption.html#cfn-mediaconnect-flow-encryption-url
+ Url *types.Value `json:"Url,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_Encryption) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::Flow.Encryption"
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_failoverconfig.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_failoverconfig.go
new file mode 100644
index 0000000000..784fc94214
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_failoverconfig.go
@@ -0,0 +1,42 @@
+package mediaconnect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_FailoverConfig AWS CloudFormation Resource (AWS::MediaConnect::Flow.FailoverConfig)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-failoverconfig.html
+type Flow_FailoverConfig struct {
+
+ // RecoveryWindow AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-failoverconfig.html#cfn-mediaconnect-flow-failoverconfig-recoverywindow
+ RecoveryWindow *types.Value `json:"RecoveryWindow,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-failoverconfig.html#cfn-mediaconnect-flow-failoverconfig-state
+ State *types.Value `json:"State,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_FailoverConfig) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::Flow.FailoverConfig"
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_source.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_source.go
new file mode 100644
index 0000000000..a923343109
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flow_source.go
@@ -0,0 +1,107 @@
+package mediaconnect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Flow_Source AWS CloudFormation Resource (AWS::MediaConnect::Flow.Source)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html
+type Flow_Source struct {
+
+ // Decryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-decryption
+ Decryption *Flow_Encryption `json:"Decryption,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EntitlementArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-entitlementarn
+ EntitlementArn *types.Value `json:"EntitlementArn,omitempty"`
+
+ // IngestIp AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-ingestip
+ IngestIp *types.Value `json:"IngestIp,omitempty"`
+
+ // IngestPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-ingestport
+ IngestPort *types.Value `json:"IngestPort,omitempty"`
+
+ // MaxBitrate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-maxbitrate
+ MaxBitrate *types.Value `json:"MaxBitrate,omitempty"`
+
+ // MaxLatency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-maxlatency
+ MaxLatency *types.Value `json:"MaxLatency,omitempty"`
+
+ // MinLatency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-minlatency
+ MinLatency *types.Value `json:"MinLatency,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // SourceArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-sourcearn
+ SourceArn *types.Value `json:"SourceArn,omitempty"`
+
+ // SourceIngestPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-sourceingestport
+ SourceIngestPort *types.Value `json:"SourceIngestPort,omitempty"`
+
+ // StreamId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-streamid
+ StreamId *types.Value `json:"StreamId,omitempty"`
+
+ // VpcInterfaceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-vpcinterfacename
+ VpcInterfaceName *types.Value `json:"VpcInterfaceName,omitempty"`
+
+ // WhitelistCidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flow-source.html#cfn-mediaconnect-flow-source-whitelistcidr
+ WhitelistCidr *types.Value `json:"WhitelistCidr,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Flow_Source) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::Flow.Source"
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowentitlement.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowentitlement.go
new file mode 100644
index 0000000000..ce348635a6
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowentitlement.go
@@ -0,0 +1,138 @@
+package mediaconnect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowEntitlement AWS CloudFormation Resource (AWS::MediaConnect::FlowEntitlement)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html
+type FlowEntitlement struct {
+
+ // DataTransferSubscriberFeePercent AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html#cfn-mediaconnect-flowentitlement-datatransfersubscriberfeepercent
+ DataTransferSubscriberFeePercent *types.Value `json:"DataTransferSubscriberFeePercent,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html#cfn-mediaconnect-flowentitlement-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Encryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html#cfn-mediaconnect-flowentitlement-encryption
+ Encryption *FlowEntitlement_Encryption `json:"Encryption,omitempty"`
+
+ // EntitlementStatus AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html#cfn-mediaconnect-flowentitlement-entitlementstatus
+ EntitlementStatus *types.Value `json:"EntitlementStatus,omitempty"`
+
+ // FlowArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html#cfn-mediaconnect-flowentitlement-flowarn
+ FlowArn *types.Value `json:"FlowArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html#cfn-mediaconnect-flowentitlement-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Subscribers AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowentitlement.html#cfn-mediaconnect-flowentitlement-subscribers
+ Subscribers *types.Value `json:"Subscribers,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowEntitlement) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::FlowEntitlement"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FlowEntitlement) MarshalJSON() ([]byte, error) {
+ type Properties FlowEntitlement
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FlowEntitlement) UnmarshalJSON(b []byte) error {
+ type Properties FlowEntitlement
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FlowEntitlement(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowentitlement_encryption.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowentitlement_encryption.go
new file mode 100644
index 0000000000..b70a8260ce
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowentitlement_encryption.go
@@ -0,0 +1,77 @@
+package mediaconnect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowEntitlement_Encryption AWS CloudFormation Resource (AWS::MediaConnect::FlowEntitlement.Encryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html
+type FlowEntitlement_Encryption struct {
+
+ // Algorithm AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-algorithm
+ Algorithm *types.Value `json:"Algorithm,omitempty"`
+
+ // ConstantInitializationVector AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-constantinitializationvector
+ ConstantInitializationVector *types.Value `json:"ConstantInitializationVector,omitempty"`
+
+ // DeviceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-deviceid
+ DeviceId *types.Value `json:"DeviceId,omitempty"`
+
+ // KeyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-keytype
+ KeyType *types.Value `json:"KeyType,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // Url AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowentitlement-encryption.html#cfn-mediaconnect-flowentitlement-encryption-url
+ Url *types.Value `json:"Url,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowEntitlement_Encryption) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::FlowEntitlement.Encryption"
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput.go
new file mode 100644
index 0000000000..c7494e1c1a
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput.go
@@ -0,0 +1,173 @@
+package mediaconnect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowOutput AWS CloudFormation Resource (AWS::MediaConnect::FlowOutput)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html
+type FlowOutput struct {
+
+ // CidrAllowList AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-cidrallowlist
+ CidrAllowList *types.Value `json:"CidrAllowList,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Destination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-destination
+ Destination *types.Value `json:"Destination,omitempty"`
+
+ // Encryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-encryption
+ Encryption *FlowOutput_Encryption `json:"Encryption,omitempty"`
+
+ // FlowArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-flowarn
+ FlowArn *types.Value `json:"FlowArn,omitempty"`
+
+ // MaxLatency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-maxlatency
+ MaxLatency *types.Value `json:"MaxLatency,omitempty"`
+
+ // MinLatency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-minlatency
+ MinLatency *types.Value `json:"MinLatency,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Port AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-port
+ Port *types.Value `json:"Port,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // RemoteId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-remoteid
+ RemoteId *types.Value `json:"RemoteId,omitempty"`
+
+ // SmoothingLatency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-smoothinglatency
+ SmoothingLatency *types.Value `json:"SmoothingLatency,omitempty"`
+
+ // StreamId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-streamid
+ StreamId *types.Value `json:"StreamId,omitempty"`
+
+ // VpcInterfaceAttachment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowoutput.html#cfn-mediaconnect-flowoutput-vpcinterfaceattachment
+ VpcInterfaceAttachment *FlowOutput_VpcInterfaceAttachment `json:"VpcInterfaceAttachment,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowOutput) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::FlowOutput"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FlowOutput) MarshalJSON() ([]byte, error) {
+ type Properties FlowOutput
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FlowOutput) UnmarshalJSON(b []byte) error {
+ type Properties FlowOutput
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FlowOutput(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_encryption.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_encryption.go
new file mode 100644
index 0000000000..111f64f4b9
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_encryption.go
@@ -0,0 +1,52 @@
+package mediaconnect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowOutput_Encryption AWS CloudFormation Resource (AWS::MediaConnect::FlowOutput.Encryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html
+type FlowOutput_Encryption struct {
+
+ // Algorithm AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html#cfn-mediaconnect-flowoutput-encryption-algorithm
+ Algorithm *types.Value `json:"Algorithm,omitempty"`
+
+ // KeyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html#cfn-mediaconnect-flowoutput-encryption-keytype
+ KeyType *types.Value `json:"KeyType,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html#cfn-mediaconnect-flowoutput-encryption-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-encryption.html#cfn-mediaconnect-flowoutput-encryption-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowOutput_Encryption) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::FlowOutput.Encryption"
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_vpcinterfaceattachment.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_vpcinterfaceattachment.go
new file mode 100644
index 0000000000..14305a54d3
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowoutput_vpcinterfaceattachment.go
@@ -0,0 +1,37 @@
+package mediaconnect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowOutput_VpcInterfaceAttachment AWS CloudFormation Resource (AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-vpcinterfaceattachment.html
+type FlowOutput_VpcInterfaceAttachment struct {
+
+ // VpcInterfaceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowoutput-vpcinterfaceattachment.html#cfn-mediaconnect-flowoutput-vpcinterfaceattachment-vpcinterfacename
+ VpcInterfaceName *types.Value `json:"VpcInterfaceName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowOutput_VpcInterfaceAttachment) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment"
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowsource.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowsource.go
new file mode 100644
index 0000000000..ed5d9bb375
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowsource.go
@@ -0,0 +1,163 @@
+package mediaconnect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowSource AWS CloudFormation Resource (AWS::MediaConnect::FlowSource)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html
+type FlowSource struct {
+
+ // Decryption AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-decryption
+ Decryption *FlowSource_Encryption `json:"Decryption,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // EntitlementArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-entitlementarn
+ EntitlementArn *types.Value `json:"EntitlementArn,omitempty"`
+
+ // FlowArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-flowarn
+ FlowArn *types.Value `json:"FlowArn,omitempty"`
+
+ // IngestPort AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-ingestport
+ IngestPort *types.Value `json:"IngestPort,omitempty"`
+
+ // MaxBitrate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-maxbitrate
+ MaxBitrate *types.Value `json:"MaxBitrate,omitempty"`
+
+ // MaxLatency AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-maxlatency
+ MaxLatency *types.Value `json:"MaxLatency,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Protocol AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-protocol
+ Protocol *types.Value `json:"Protocol,omitempty"`
+
+ // StreamId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-streamid
+ StreamId *types.Value `json:"StreamId,omitempty"`
+
+ // VpcInterfaceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-vpcinterfacename
+ VpcInterfaceName *types.Value `json:"VpcInterfaceName,omitempty"`
+
+ // WhitelistCidr AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowsource.html#cfn-mediaconnect-flowsource-whitelistcidr
+ WhitelistCidr *types.Value `json:"WhitelistCidr,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowSource) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::FlowSource"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FlowSource) MarshalJSON() ([]byte, error) {
+ type Properties FlowSource
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FlowSource) UnmarshalJSON(b []byte) error {
+ type Properties FlowSource
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FlowSource(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowsource_encryption.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowsource_encryption.go
new file mode 100644
index 0000000000..759f7d91fe
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowsource_encryption.go
@@ -0,0 +1,77 @@
+package mediaconnect
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowSource_Encryption AWS CloudFormation Resource (AWS::MediaConnect::FlowSource.Encryption)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html
+type FlowSource_Encryption struct {
+
+ // Algorithm AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-algorithm
+ Algorithm *types.Value `json:"Algorithm,omitempty"`
+
+ // ConstantInitializationVector AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-constantinitializationvector
+ ConstantInitializationVector *types.Value `json:"ConstantInitializationVector,omitempty"`
+
+ // DeviceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-deviceid
+ DeviceId *types.Value `json:"DeviceId,omitempty"`
+
+ // KeyType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-keytype
+ KeyType *types.Value `json:"KeyType,omitempty"`
+
+ // Region AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-region
+ Region *types.Value `json:"Region,omitempty"`
+
+ // ResourceId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-resourceid
+ ResourceId *types.Value `json:"ResourceId,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecretArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-secretarn
+ SecretArn *types.Value `json:"SecretArn,omitempty"`
+
+ // Url AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconnect-flowsource-encryption.html#cfn-mediaconnect-flowsource-encryption-url
+ Url *types.Value `json:"Url,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowSource_Encryption) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::FlowSource.Encryption"
+}
diff --git a/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowvpcinterface.go b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowvpcinterface.go
new file mode 100644
index 0000000000..5ada12b3da
--- /dev/null
+++ b/goformation/cloudformation/mediaconnect/aws-mediaconnect-flowvpcinterface.go
@@ -0,0 +1,128 @@
+package mediaconnect
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// FlowVpcInterface AWS CloudFormation Resource (AWS::MediaConnect::FlowVpcInterface)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html
+type FlowVpcInterface struct {
+
+ // FlowArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html#cfn-mediaconnect-flowvpcinterface-flowarn
+ FlowArn *types.Value `json:"FlowArn,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html#cfn-mediaconnect-flowvpcinterface-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html#cfn-mediaconnect-flowvpcinterface-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // SecurityGroupIds AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html#cfn-mediaconnect-flowvpcinterface-securitygroupids
+ SecurityGroupIds *types.Value `json:"SecurityGroupIds,omitempty"`
+
+ // SubnetId AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconnect-flowvpcinterface.html#cfn-mediaconnect-flowvpcinterface-subnetid
+ SubnetId *types.Value `json:"SubnetId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *FlowVpcInterface) AWSCloudFormationType() string {
+ return "AWS::MediaConnect::FlowVpcInterface"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r FlowVpcInterface) MarshalJSON() ([]byte, error) {
+ type Properties FlowVpcInterface
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *FlowVpcInterface) UnmarshalJSON(b []byte) error {
+ type Properties FlowVpcInterface
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = FlowVpcInterface(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate.go b/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate.go
new file mode 100644
index 0000000000..c0a22d6314
--- /dev/null
+++ b/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate.go
@@ -0,0 +1,153 @@
+package mediaconvert
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobTemplate AWS CloudFormation Resource (AWS::MediaConvert::JobTemplate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html
+type JobTemplate struct {
+
+ // AccelerationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-accelerationsettings
+ AccelerationSettings *JobTemplate_AccelerationSettings `json:"AccelerationSettings,omitempty"`
+
+ // Category AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-category
+ Category *types.Value `json:"Category,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // HopDestinations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-hopdestinations
+ HopDestinations []JobTemplate_HopDestination `json:"HopDestinations,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // Priority AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-priority
+ Priority *types.Value `json:"Priority,omitempty"`
+
+ // Queue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-queue
+ Queue *types.Value `json:"Queue,omitempty"`
+
+ // SettingsJson AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-settingsjson
+ SettingsJson interface{} `json:"SettingsJson,omitempty"`
+
+ // StatusUpdateInterval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-statusupdateinterval
+ StatusUpdateInterval *types.Value `json:"StatusUpdateInterval,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-jobtemplate.html#cfn-mediaconvert-jobtemplate-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobTemplate) AWSCloudFormationType() string {
+ return "AWS::MediaConvert::JobTemplate"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r JobTemplate) MarshalJSON() ([]byte, error) {
+ type Properties JobTemplate
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *JobTemplate) UnmarshalJSON(b []byte) error {
+ type Properties JobTemplate
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = JobTemplate(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate_accelerationsettings.go b/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate_accelerationsettings.go
new file mode 100644
index 0000000000..c180cf29ff
--- /dev/null
+++ b/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate_accelerationsettings.go
@@ -0,0 +1,37 @@
+package mediaconvert
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobTemplate_AccelerationSettings AWS CloudFormation Resource (AWS::MediaConvert::JobTemplate.AccelerationSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-accelerationsettings.html
+type JobTemplate_AccelerationSettings struct {
+
+ // Mode AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-accelerationsettings.html#cfn-mediaconvert-jobtemplate-accelerationsettings-mode
+ Mode *types.Value `json:"Mode,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobTemplate_AccelerationSettings) AWSCloudFormationType() string {
+ return "AWS::MediaConvert::JobTemplate.AccelerationSettings"
+}
diff --git a/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate_hopdestination.go b/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate_hopdestination.go
new file mode 100644
index 0000000000..847983f115
--- /dev/null
+++ b/goformation/cloudformation/mediaconvert/aws-mediaconvert-jobtemplate_hopdestination.go
@@ -0,0 +1,47 @@
+package mediaconvert
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// JobTemplate_HopDestination AWS CloudFormation Resource (AWS::MediaConvert::JobTemplate.HopDestination)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-hopdestination.html
+type JobTemplate_HopDestination struct {
+
+ // Priority AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-hopdestination.html#cfn-mediaconvert-jobtemplate-hopdestination-priority
+ Priority *types.Value `json:"Priority,omitempty"`
+
+ // Queue AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-hopdestination.html#cfn-mediaconvert-jobtemplate-hopdestination-queue
+ Queue *types.Value `json:"Queue,omitempty"`
+
+ // WaitMinutes AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediaconvert-jobtemplate-hopdestination.html#cfn-mediaconvert-jobtemplate-hopdestination-waitminutes
+ WaitMinutes *types.Value `json:"WaitMinutes,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *JobTemplate_HopDestination) AWSCloudFormationType() string {
+ return "AWS::MediaConvert::JobTemplate.HopDestination"
+}
diff --git a/goformation/cloudformation/mediaconvert/aws-mediaconvert-preset.go b/goformation/cloudformation/mediaconvert/aws-mediaconvert-preset.go
new file mode 100644
index 0000000000..3aca79adbb
--- /dev/null
+++ b/goformation/cloudformation/mediaconvert/aws-mediaconvert-preset.go
@@ -0,0 +1,128 @@
+package mediaconvert
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Preset AWS CloudFormation Resource (AWS::MediaConvert::Preset)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html
+type Preset struct {
+
+ // Category AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-category
+ Category *types.Value `json:"Category,omitempty"`
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SettingsJson AWS CloudFormation Property
+ // Required: true
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-settingsjson
+ SettingsJson interface{} `json:"SettingsJson,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-preset.html#cfn-mediaconvert-preset-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Preset) AWSCloudFormationType() string {
+ return "AWS::MediaConvert::Preset"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Preset) MarshalJSON() ([]byte, error) {
+ type Properties Preset
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Preset) UnmarshalJSON(b []byte) error {
+ type Properties Preset
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Preset(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/mediaconvert/aws-mediaconvert-queue.go b/goformation/cloudformation/mediaconvert/aws-mediaconvert-queue.go
new file mode 100644
index 0000000000..c33b4f1d99
--- /dev/null
+++ b/goformation/cloudformation/mediaconvert/aws-mediaconvert-queue.go
@@ -0,0 +1,128 @@
+package mediaconvert
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Queue AWS CloudFormation Resource (AWS::MediaConvert::Queue)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html
+type Queue struct {
+
+ // Description AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html#cfn-mediaconvert-queue-description
+ Description *types.Value `json:"Description,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html#cfn-mediaconvert-queue-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // PricingPlan AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html#cfn-mediaconvert-queue-pricingplan
+ PricingPlan *types.Value `json:"PricingPlan,omitempty"`
+
+ // Status AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html#cfn-mediaconvert-queue-status
+ Status *types.Value `json:"Status,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediaconvert-queue.html#cfn-mediaconvert-queue-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Queue) AWSCloudFormationType() string {
+ return "AWS::MediaConvert::Queue"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Queue) MarshalJSON() ([]byte, error) {
+ type Properties Queue
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Queue) UnmarshalJSON(b []byte) error {
+ type Properties Queue
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Queue(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel.go b/goformation/cloudformation/medialive/aws-medialive-channel.go
new file mode 100644
index 0000000000..332e3c4689
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel.go
@@ -0,0 +1,158 @@
+package medialive
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel AWS CloudFormation Resource (AWS::MediaLive::Channel)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html
+type Channel struct {
+
+ // CdiInputSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-cdiinputspecification
+ CdiInputSpecification *Channel_CdiInputSpecification `json:"CdiInputSpecification,omitempty"`
+
+ // ChannelClass AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-channelclass
+ ChannelClass *types.Value `json:"ChannelClass,omitempty"`
+
+ // Destinations AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-destinations
+ Destinations []Channel_OutputDestination `json:"Destinations,omitempty"`
+
+ // EncoderSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-encodersettings
+ EncoderSettings *Channel_EncoderSettings `json:"EncoderSettings,omitempty"`
+
+ // InputAttachments AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-inputattachments
+ InputAttachments []Channel_InputAttachment `json:"InputAttachments,omitempty"`
+
+ // InputSpecification AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-inputspecification
+ InputSpecification *Channel_InputSpecification `json:"InputSpecification,omitempty"`
+
+ // LogLevel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-loglevel
+ LogLevel *types.Value `json:"LogLevel,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RoleArn AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-rolearn
+ RoleArn *types.Value `json:"RoleArn,omitempty"`
+
+ // Tags AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-tags
+ Tags interface{} `json:"Tags,omitempty"`
+
+ // Vpc AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-vpc
+ Vpc *Channel_VpcOutputSettings `json:"Vpc,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel"
+}
+
+// MarshalJSON is a custom JSON marshalling hook that embeds this object into
+// an AWS CloudFormation JSON resource's 'Properties' field and adds a 'Type'.
+func (r Channel) MarshalJSON() ([]byte, error) {
+ type Properties Channel
+ return json.Marshal(&struct {
+ Type string
+ Properties Properties
+ DependsOn []string `json:"DependsOn,omitempty"`
+ Metadata map[string]interface{} `json:"Metadata,omitempty"`
+ DeletionPolicy policies.DeletionPolicy `json:"DeletionPolicy,omitempty"`
+ UpdateReplacePolicy policies.UpdateReplacePolicy `json:"UpdateReplacePolicy,omitempty"`
+ Condition string `json:"Condition,omitempty"`
+ }{
+ Type: r.AWSCloudFormationType(),
+ Properties: (Properties)(r),
+ DependsOn: r.AWSCloudFormationDependsOn,
+ Metadata: r.AWSCloudFormationMetadata,
+ DeletionPolicy: r.AWSCloudFormationDeletionPolicy,
+ UpdateReplacePolicy: r.AWSCloudFormationUpdateReplacePolicy,
+ Condition: r.AWSCloudFormationCondition,
+ })
+}
+
+// UnmarshalJSON is a custom JSON unmarshalling hook that strips the outer
+// AWS CloudFormation resource object, and just keeps the 'Properties' field.
+func (r *Channel) UnmarshalJSON(b []byte) error {
+ type Properties Channel
+ res := &struct {
+ Type string
+ Properties *Properties
+ DependsOn []string
+ Metadata map[string]interface{}
+ DeletionPolicy string
+ UpdateReplacePolicy string
+ Condition string
+ }{}
+
+ dec := json.NewDecoder(bytes.NewReader(b))
+ dec.DisallowUnknownFields() // Force error if unknown field is found
+
+ if err := dec.Decode(&res); err != nil {
+ fmt.Printf("ERROR: %s\n", err)
+ return err
+ }
+
+ // If the resource has no Properties set, it could be nil
+ if res.Properties != nil {
+ *r = Channel(*res.Properties)
+ }
+ if res.DependsOn != nil {
+ r.AWSCloudFormationDependsOn = res.DependsOn
+ }
+ if res.Metadata != nil {
+ r.AWSCloudFormationMetadata = res.Metadata
+ }
+ if res.DeletionPolicy != "" {
+ r.AWSCloudFormationDeletionPolicy = policies.DeletionPolicy(res.DeletionPolicy)
+ }
+ if res.UpdateReplacePolicy != "" {
+ r.AWSCloudFormationUpdateReplacePolicy = policies.UpdateReplacePolicy(res.UpdateReplacePolicy)
+ }
+ if res.Condition != "" {
+ r.AWSCloudFormationCondition = res.Condition
+ }
+ return nil
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_aacsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_aacsettings.go
new file mode 100644
index 0000000000..8201015d06
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_aacsettings.go
@@ -0,0 +1,77 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AacSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AacSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html
+type Channel_AacSettings struct {
+
+ // Bitrate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-bitrate
+ Bitrate *types.Value `json:"Bitrate,omitempty"`
+
+ // CodingMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-codingmode
+ CodingMode *types.Value `json:"CodingMode,omitempty"`
+
+ // InputType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-inputtype
+ InputType *types.Value `json:"InputType,omitempty"`
+
+ // Profile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-profile
+ Profile *types.Value `json:"Profile,omitempty"`
+
+ // RateControlMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-ratecontrolmode
+ RateControlMode *types.Value `json:"RateControlMode,omitempty"`
+
+ // RawFormat AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-rawformat
+ RawFormat *types.Value `json:"RawFormat,omitempty"`
+
+ // SampleRate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-samplerate
+ SampleRate *types.Value `json:"SampleRate,omitempty"`
+
+ // Spec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-spec
+ Spec *types.Value `json:"Spec,omitempty"`
+
+ // VbrQuality AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-vbrquality
+ VbrQuality *types.Value `json:"VbrQuality,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AacSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AacSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_ac3settings.go b/goformation/cloudformation/medialive/aws-medialive-channel_ac3settings.go
new file mode 100644
index 0000000000..93826b2c9a
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_ac3settings.go
@@ -0,0 +1,67 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_Ac3Settings AWS CloudFormation Resource (AWS::MediaLive::Channel.Ac3Settings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html
+type Channel_Ac3Settings struct {
+
+ // Bitrate AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-bitrate
+ Bitrate *types.Value `json:"Bitrate,omitempty"`
+
+ // BitstreamMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-bitstreammode
+ BitstreamMode *types.Value `json:"BitstreamMode,omitempty"`
+
+ // CodingMode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-codingmode
+ CodingMode *types.Value `json:"CodingMode,omitempty"`
+
+ // Dialnorm AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-dialnorm
+ Dialnorm *types.Value `json:"Dialnorm,omitempty"`
+
+ // DrcProfile AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-drcprofile
+ DrcProfile *types.Value `json:"DrcProfile,omitempty"`
+
+ // LfeFilter AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-lfefilter
+ LfeFilter *types.Value `json:"LfeFilter,omitempty"`
+
+ // MetadataControl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-metadatacontrol
+ MetadataControl *types.Value `json:"MetadataControl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_Ac3Settings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.Ac3Settings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_ancillarysourcesettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_ancillarysourcesettings.go
new file mode 100644
index 0000000000..6979aa3e0c
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_ancillarysourcesettings.go
@@ -0,0 +1,37 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AncillarySourceSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AncillarySourceSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ancillarysourcesettings.html
+type Channel_AncillarySourceSettings struct {
+
+ // SourceAncillaryChannelNumber AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ancillarysourcesettings.html#cfn-medialive-channel-ancillarysourcesettings-sourceancillarychannelnumber
+ SourceAncillaryChannelNumber *types.Value `json:"SourceAncillaryChannelNumber,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AncillarySourceSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AncillarySourceSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_archivecdnsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_archivecdnsettings.go
new file mode 100644
index 0000000000..04a354a981
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_archivecdnsettings.go
@@ -0,0 +1,35 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_ArchiveCdnSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.ArchiveCdnSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecdnsettings.html
+type Channel_ArchiveCdnSettings struct {
+
+ // ArchiveS3Settings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecdnsettings.html#cfn-medialive-channel-archivecdnsettings-archives3settings
+ ArchiveS3Settings *Channel_ArchiveS3Settings `json:"ArchiveS3Settings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_ArchiveCdnSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.ArchiveCdnSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_archivecontainersettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_archivecontainersettings.go
new file mode 100644
index 0000000000..2b13bd6ee4
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_archivecontainersettings.go
@@ -0,0 +1,40 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_ArchiveContainerSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.ArchiveContainerSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html
+type Channel_ArchiveContainerSettings struct {
+
+ // M2tsSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html#cfn-medialive-channel-archivecontainersettings-m2tssettings
+ M2tsSettings *Channel_M2tsSettings `json:"M2tsSettings,omitempty"`
+
+ // RawSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html#cfn-medialive-channel-archivecontainersettings-rawsettings
+ RawSettings *Channel_RawSettings `json:"RawSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_ArchiveContainerSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.ArchiveContainerSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_archivegroupsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_archivegroupsettings.go
new file mode 100644
index 0000000000..620b6f8de5
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_archivegroupsettings.go
@@ -0,0 +1,47 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_ArchiveGroupSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.ArchiveGroupSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html
+type Channel_ArchiveGroupSettings struct {
+
+ // ArchiveCdnSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html#cfn-medialive-channel-archivegroupsettings-archivecdnsettings
+ ArchiveCdnSettings *Channel_ArchiveCdnSettings `json:"ArchiveCdnSettings,omitempty"`
+
+ // Destination AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html#cfn-medialive-channel-archivegroupsettings-destination
+ Destination *Channel_OutputLocationRef `json:"Destination,omitempty"`
+
+ // RolloverInterval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html#cfn-medialive-channel-archivegroupsettings-rolloverinterval
+ RolloverInterval *types.Value `json:"RolloverInterval,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_ArchiveGroupSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.ArchiveGroupSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_archiveoutputsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_archiveoutputsettings.go
new file mode 100644
index 0000000000..63ddec1dee
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_archiveoutputsettings.go
@@ -0,0 +1,47 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_ArchiveOutputSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.ArchiveOutputSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html
+type Channel_ArchiveOutputSettings struct {
+
+ // ContainerSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html#cfn-medialive-channel-archiveoutputsettings-containersettings
+ ContainerSettings *Channel_ArchiveContainerSettings `json:"ContainerSettings,omitempty"`
+
+ // Extension AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html#cfn-medialive-channel-archiveoutputsettings-extension
+ Extension *types.Value `json:"Extension,omitempty"`
+
+ // NameModifier AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html#cfn-medialive-channel-archiveoutputsettings-namemodifier
+ NameModifier *types.Value `json:"NameModifier,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_ArchiveOutputSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.ArchiveOutputSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_archives3settings.go b/goformation/cloudformation/medialive/aws-medialive-channel_archives3settings.go
new file mode 100644
index 0000000000..ae1989aebd
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_archives3settings.go
@@ -0,0 +1,37 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_ArchiveS3Settings AWS CloudFormation Resource (AWS::MediaLive::Channel.ArchiveS3Settings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archives3settings.html
+type Channel_ArchiveS3Settings struct {
+
+ // CannedAcl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archives3settings.html#cfn-medialive-channel-archives3settings-cannedacl
+ CannedAcl *types.Value `json:"CannedAcl,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_ArchiveS3Settings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.ArchiveS3Settings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_aribdestinationsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_aribdestinationsettings.go
new file mode 100644
index 0000000000..6aaf2b17dc
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_aribdestinationsettings.go
@@ -0,0 +1,30 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AribDestinationSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AribDestinationSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribdestinationsettings.html
+type Channel_AribDestinationSettings struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AribDestinationSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AribDestinationSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_aribsourcesettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_aribsourcesettings.go
new file mode 100644
index 0000000000..26a1407af3
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_aribsourcesettings.go
@@ -0,0 +1,30 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AribSourceSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AribSourceSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribsourcesettings.html
+type Channel_AribSourceSettings struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AribSourceSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AribSourceSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiochannelmapping.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiochannelmapping.go
new file mode 100644
index 0000000000..89356fb0a5
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiochannelmapping.go
@@ -0,0 +1,42 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioChannelMapping AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioChannelMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html
+type Channel_AudioChannelMapping struct {
+
+ // InputChannelLevels AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html#cfn-medialive-channel-audiochannelmapping-inputchannellevels
+ InputChannelLevels []Channel_InputChannelLevel `json:"InputChannelLevels,omitempty"`
+
+ // OutputChannel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html#cfn-medialive-channel-audiochannelmapping-outputchannel
+ OutputChannel *types.Value `json:"OutputChannel,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioChannelMapping) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioChannelMapping"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiocodecsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiocodecsettings.go
new file mode 100644
index 0000000000..993d32db59
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiocodecsettings.go
@@ -0,0 +1,60 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioCodecSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioCodecSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html
+type Channel_AudioCodecSettings struct {
+
+ // AacSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-aacsettings
+ AacSettings *Channel_AacSettings `json:"AacSettings,omitempty"`
+
+ // Ac3Settings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-ac3settings
+ Ac3Settings *Channel_Ac3Settings `json:"Ac3Settings,omitempty"`
+
+ // Eac3Settings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-eac3settings
+ Eac3Settings *Channel_Eac3Settings `json:"Eac3Settings,omitempty"`
+
+ // Mp2Settings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-mp2settings
+ Mp2Settings *Channel_Mp2Settings `json:"Mp2Settings,omitempty"`
+
+ // PassThroughSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-passthroughsettings
+ PassThroughSettings *Channel_PassThroughSettings `json:"PassThroughSettings,omitempty"`
+
+ // WavSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-wavsettings
+ WavSettings *Channel_WavSettings `json:"WavSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioCodecSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioCodecSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiodescription.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiodescription.go
new file mode 100644
index 0000000000..c84e325012
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiodescription.go
@@ -0,0 +1,87 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioDescription AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioDescription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html
+type Channel_AudioDescription struct {
+
+ // AudioNormalizationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audionormalizationsettings
+ AudioNormalizationSettings *Channel_AudioNormalizationSettings `json:"AudioNormalizationSettings,omitempty"`
+
+ // AudioSelectorName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audioselectorname
+ AudioSelectorName *types.Value `json:"AudioSelectorName,omitempty"`
+
+ // AudioType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audiotype
+ AudioType *types.Value `json:"AudioType,omitempty"`
+
+ // AudioTypeControl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audiotypecontrol
+ AudioTypeControl *types.Value `json:"AudioTypeControl,omitempty"`
+
+ // AudioWatermarkingSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audiowatermarkingsettings
+ AudioWatermarkingSettings *Channel_AudioWatermarkSettings `json:"AudioWatermarkingSettings,omitempty"`
+
+ // CodecSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-codecsettings
+ CodecSettings *Channel_AudioCodecSettings `json:"CodecSettings,omitempty"`
+
+ // LanguageCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-languagecode
+ LanguageCode *types.Value `json:"LanguageCode,omitempty"`
+
+ // LanguageCodeControl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-languagecodecontrol
+ LanguageCodeControl *types.Value `json:"LanguageCodeControl,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // RemixSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-remixsettings
+ RemixSettings *Channel_RemixSettings `json:"RemixSettings,omitempty"`
+
+ // StreamName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-streamname
+ StreamName *types.Value `json:"StreamName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioDescription) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioDescription"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiohlsrenditionselection.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiohlsrenditionselection.go
new file mode 100644
index 0000000000..c095b6c928
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiohlsrenditionselection.go
@@ -0,0 +1,42 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioHlsRenditionSelection AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioHlsRenditionSelection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiohlsrenditionselection.html
+type Channel_AudioHlsRenditionSelection struct {
+
+ // GroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiohlsrenditionselection.html#cfn-medialive-channel-audiohlsrenditionselection-groupid
+ GroupId *types.Value `json:"GroupId,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiohlsrenditionselection.html#cfn-medialive-channel-audiohlsrenditionselection-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioHlsRenditionSelection) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioHlsRenditionSelection"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiolanguageselection.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiolanguageselection.go
new file mode 100644
index 0000000000..cfe56c0e0d
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiolanguageselection.go
@@ -0,0 +1,42 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioLanguageSelection AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioLanguageSelection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html
+type Channel_AudioLanguageSelection struct {
+
+ // LanguageCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html#cfn-medialive-channel-audiolanguageselection-languagecode
+ LanguageCode *types.Value `json:"LanguageCode,omitempty"`
+
+ // LanguageSelectionPolicy AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html#cfn-medialive-channel-audiolanguageselection-languageselectionpolicy
+ LanguageSelectionPolicy *types.Value `json:"LanguageSelectionPolicy,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioLanguageSelection) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioLanguageSelection"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audionormalizationsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_audionormalizationsettings.go
new file mode 100644
index 0000000000..81d9d3d412
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audionormalizationsettings.go
@@ -0,0 +1,47 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioNormalizationSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioNormalizationSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html
+type Channel_AudioNormalizationSettings struct {
+
+ // Algorithm AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html#cfn-medialive-channel-audionormalizationsettings-algorithm
+ Algorithm *types.Value `json:"Algorithm,omitempty"`
+
+ // AlgorithmControl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html#cfn-medialive-channel-audionormalizationsettings-algorithmcontrol
+ AlgorithmControl *types.Value `json:"AlgorithmControl,omitempty"`
+
+ // TargetLkfs AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html#cfn-medialive-channel-audionormalizationsettings-targetlkfs
+ TargetLkfs *types.Value `json:"TargetLkfs,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioNormalizationSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioNormalizationSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audioonlyhlssettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_audioonlyhlssettings.go
new file mode 100644
index 0000000000..5d58fb85b6
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audioonlyhlssettings.go
@@ -0,0 +1,52 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioOnlyHlsSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioOnlyHlsSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html
+type Channel_AudioOnlyHlsSettings struct {
+
+ // AudioGroupId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html#cfn-medialive-channel-audioonlyhlssettings-audiogroupid
+ AudioGroupId *types.Value `json:"AudioGroupId,omitempty"`
+
+ // AudioOnlyImage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html#cfn-medialive-channel-audioonlyhlssettings-audioonlyimage
+ AudioOnlyImage *Channel_InputLocation `json:"AudioOnlyImage,omitempty"`
+
+ // AudioTrackType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html#cfn-medialive-channel-audioonlyhlssettings-audiotracktype
+ AudioTrackType *types.Value `json:"AudioTrackType,omitempty"`
+
+ // SegmentType AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html#cfn-medialive-channel-audioonlyhlssettings-segmenttype
+ SegmentType *types.Value `json:"SegmentType,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioOnlyHlsSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioOnlyHlsSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiopidselection.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiopidselection.go
new file mode 100644
index 0000000000..99d3aae143
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiopidselection.go
@@ -0,0 +1,37 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioPidSelection AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioPidSelection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html
+type Channel_AudioPidSelection struct {
+
+ // Pid AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html#cfn-medialive-channel-audiopidselection-pid
+ Pid *types.Value `json:"Pid,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioPidSelection) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioPidSelection"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audioselector.go b/goformation/cloudformation/medialive/aws-medialive-channel_audioselector.go
new file mode 100644
index 0000000000..0ea01a1712
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audioselector.go
@@ -0,0 +1,42 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioSelector AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioSelector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html
+type Channel_AudioSelector struct {
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html#cfn-medialive-channel-audioselector-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SelectorSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html#cfn-medialive-channel-audioselector-selectorsettings
+ SelectorSettings *Channel_AudioSelectorSettings `json:"SelectorSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioSelector) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioSelector"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audioselectorsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_audioselectorsettings.go
new file mode 100644
index 0000000000..69d8020847
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audioselectorsettings.go
@@ -0,0 +1,50 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioSelectorSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioSelectorSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html
+type Channel_AudioSelectorSettings struct {
+
+ // AudioHlsRenditionSelection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiohlsrenditionselection
+ AudioHlsRenditionSelection *Channel_AudioHlsRenditionSelection `json:"AudioHlsRenditionSelection,omitempty"`
+
+ // AudioLanguageSelection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiolanguageselection
+ AudioLanguageSelection *Channel_AudioLanguageSelection `json:"AudioLanguageSelection,omitempty"`
+
+ // AudioPidSelection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiopidselection
+ AudioPidSelection *Channel_AudioPidSelection `json:"AudioPidSelection,omitempty"`
+
+ // AudioTrackSelection AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiotrackselection
+ AudioTrackSelection *Channel_AudioTrackSelection `json:"AudioTrackSelection,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioSelectorSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioSelectorSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiosilencefailoversettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiosilencefailoversettings.go
new file mode 100644
index 0000000000..64fb25d86f
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiosilencefailoversettings.go
@@ -0,0 +1,42 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioSilenceFailoverSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioSilenceFailoverSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html
+type Channel_AudioSilenceFailoverSettings struct {
+
+ // AudioSelectorName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html#cfn-medialive-channel-audiosilencefailoversettings-audioselectorname
+ AudioSelectorName *types.Value `json:"AudioSelectorName,omitempty"`
+
+ // AudioSilenceThresholdMsec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html#cfn-medialive-channel-audiosilencefailoversettings-audiosilencethresholdmsec
+ AudioSilenceThresholdMsec *types.Value `json:"AudioSilenceThresholdMsec,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioSilenceFailoverSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioSilenceFailoverSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiotrack.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiotrack.go
new file mode 100644
index 0000000000..45f2d76af6
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiotrack.go
@@ -0,0 +1,37 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioTrack AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioTrack)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrack.html
+type Channel_AudioTrack struct {
+
+ // Track AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrack.html#cfn-medialive-channel-audiotrack-track
+ Track *types.Value `json:"Track,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioTrack) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioTrack"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiotrackselection.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiotrackselection.go
new file mode 100644
index 0000000000..6ef94810bf
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiotrackselection.go
@@ -0,0 +1,35 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioTrackSelection AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioTrackSelection)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrackselection.html
+type Channel_AudioTrackSelection struct {
+
+ // Tracks AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrackselection.html#cfn-medialive-channel-audiotrackselection-tracks
+ Tracks []Channel_AudioTrack `json:"Tracks,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioTrackSelection) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioTrackSelection"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_audiowatermarksettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_audiowatermarksettings.go
new file mode 100644
index 0000000000..a9cb2ddab0
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_audiowatermarksettings.go
@@ -0,0 +1,35 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AudioWatermarkSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AudioWatermarkSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiowatermarksettings.html
+type Channel_AudioWatermarkSettings struct {
+
+ // NielsenWatermarksSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiowatermarksettings.html#cfn-medialive-channel-audiowatermarksettings-nielsenwatermarkssettings
+ NielsenWatermarksSettings *Channel_NielsenWatermarksSettings `json:"NielsenWatermarksSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AudioWatermarkSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AudioWatermarkSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_automaticinputfailoversettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_automaticinputfailoversettings.go
new file mode 100644
index 0000000000..d63cac8f50
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_automaticinputfailoversettings.go
@@ -0,0 +1,52 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AutomaticInputFailoverSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AutomaticInputFailoverSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html
+type Channel_AutomaticInputFailoverSettings struct {
+
+ // ErrorClearTimeMsec AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html#cfn-medialive-channel-automaticinputfailoversettings-errorcleartimemsec
+ ErrorClearTimeMsec *types.Value `json:"ErrorClearTimeMsec,omitempty"`
+
+ // FailoverConditions AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html#cfn-medialive-channel-automaticinputfailoversettings-failoverconditions
+ FailoverConditions []Channel_FailoverCondition `json:"FailoverConditions,omitempty"`
+
+ // InputPreference AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html#cfn-medialive-channel-automaticinputfailoversettings-inputpreference
+ InputPreference *types.Value `json:"InputPreference,omitempty"`
+
+ // SecondaryInputId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html#cfn-medialive-channel-automaticinputfailoversettings-secondaryinputid
+ SecondaryInputId *types.Value `json:"SecondaryInputId,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AutomaticInputFailoverSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AutomaticInputFailoverSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_availblanking.go b/goformation/cloudformation/medialive/aws-medialive-channel_availblanking.go
new file mode 100644
index 0000000000..3e1aa4d42d
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_availblanking.go
@@ -0,0 +1,42 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AvailBlanking AWS CloudFormation Resource (AWS::MediaLive::Channel.AvailBlanking)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html
+type Channel_AvailBlanking struct {
+
+ // AvailBlankingImage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html#cfn-medialive-channel-availblanking-availblankingimage
+ AvailBlankingImage *Channel_InputLocation `json:"AvailBlankingImage,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html#cfn-medialive-channel-availblanking-state
+ State *types.Value `json:"State,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AvailBlanking) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AvailBlanking"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_availconfiguration.go b/goformation/cloudformation/medialive/aws-medialive-channel_availconfiguration.go
new file mode 100644
index 0000000000..98bb49da8a
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_availconfiguration.go
@@ -0,0 +1,35 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AvailConfiguration AWS CloudFormation Resource (AWS::MediaLive::Channel.AvailConfiguration)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availconfiguration.html
+type Channel_AvailConfiguration struct {
+
+ // AvailSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availconfiguration.html#cfn-medialive-channel-availconfiguration-availsettings
+ AvailSettings *Channel_AvailSettings `json:"AvailSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AvailConfiguration) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AvailConfiguration"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_availsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_availsettings.go
new file mode 100644
index 0000000000..f76d73ba14
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_availsettings.go
@@ -0,0 +1,40 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_AvailSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.AvailSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html
+type Channel_AvailSettings struct {
+
+ // Scte35SpliceInsert AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html#cfn-medialive-channel-availsettings-scte35spliceinsert
+ Scte35SpliceInsert *Channel_Scte35SpliceInsert `json:"Scte35SpliceInsert,omitempty"`
+
+ // Scte35TimeSignalApos AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html#cfn-medialive-channel-availsettings-scte35timesignalapos
+ Scte35TimeSignalApos *Channel_Scte35TimeSignalApos `json:"Scte35TimeSignalApos,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_AvailSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.AvailSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_blackoutslate.go b/goformation/cloudformation/medialive/aws-medialive-channel_blackoutslate.go
new file mode 100644
index 0000000000..bdd111d52c
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_blackoutslate.go
@@ -0,0 +1,57 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_BlackoutSlate AWS CloudFormation Resource (AWS::MediaLive::Channel.BlackoutSlate)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html
+type Channel_BlackoutSlate struct {
+
+ // BlackoutSlateImage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-blackoutslateimage
+ BlackoutSlateImage *Channel_InputLocation `json:"BlackoutSlateImage,omitempty"`
+
+ // NetworkEndBlackout AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-networkendblackout
+ NetworkEndBlackout *types.Value `json:"NetworkEndBlackout,omitempty"`
+
+ // NetworkEndBlackoutImage AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-networkendblackoutimage
+ NetworkEndBlackoutImage *Channel_InputLocation `json:"NetworkEndBlackoutImage,omitempty"`
+
+ // NetworkId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-networkid
+ NetworkId *types.Value `json:"NetworkId,omitempty"`
+
+ // State AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-state
+ State *types.Value `json:"State,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_BlackoutSlate) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.BlackoutSlate"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_burnindestinationsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_burnindestinationsettings.go
new file mode 100644
index 0000000000..d908d98f18
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_burnindestinationsettings.go
@@ -0,0 +1,117 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_BurnInDestinationSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.BurnInDestinationSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html
+type Channel_BurnInDestinationSettings struct {
+
+ // Alignment AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-alignment
+ Alignment *types.Value `json:"Alignment,omitempty"`
+
+ // BackgroundColor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-backgroundcolor
+ BackgroundColor *types.Value `json:"BackgroundColor,omitempty"`
+
+ // BackgroundOpacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-backgroundopacity
+ BackgroundOpacity *types.Value `json:"BackgroundOpacity,omitempty"`
+
+ // Font AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-font
+ Font *Channel_InputLocation `json:"Font,omitempty"`
+
+ // FontColor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-fontcolor
+ FontColor *types.Value `json:"FontColor,omitempty"`
+
+ // FontOpacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-fontopacity
+ FontOpacity *types.Value `json:"FontOpacity,omitempty"`
+
+ // FontResolution AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-fontresolution
+ FontResolution *types.Value `json:"FontResolution,omitempty"`
+
+ // FontSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-fontsize
+ FontSize *types.Value `json:"FontSize,omitempty"`
+
+ // OutlineColor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-outlinecolor
+ OutlineColor *types.Value `json:"OutlineColor,omitempty"`
+
+ // OutlineSize AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-outlinesize
+ OutlineSize *types.Value `json:"OutlineSize,omitempty"`
+
+ // ShadowColor AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-shadowcolor
+ ShadowColor *types.Value `json:"ShadowColor,omitempty"`
+
+ // ShadowOpacity AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-shadowopacity
+ ShadowOpacity *types.Value `json:"ShadowOpacity,omitempty"`
+
+ // ShadowXOffset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-shadowxoffset
+ ShadowXOffset *types.Value `json:"ShadowXOffset,omitempty"`
+
+ // ShadowYOffset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-shadowyoffset
+ ShadowYOffset *types.Value `json:"ShadowYOffset,omitempty"`
+
+ // TeletextGridControl AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-teletextgridcontrol
+ TeletextGridControl *types.Value `json:"TeletextGridControl,omitempty"`
+
+ // XPosition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-xposition
+ XPosition *types.Value `json:"XPosition,omitempty"`
+
+ // YPosition AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-yposition
+ YPosition *types.Value `json:"YPosition,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_BurnInDestinationSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.BurnInDestinationSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_captiondescription.go b/goformation/cloudformation/medialive/aws-medialive-channel_captiondescription.go
new file mode 100644
index 0000000000..f41a48fd68
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_captiondescription.go
@@ -0,0 +1,57 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_CaptionDescription AWS CloudFormation Resource (AWS::MediaLive::Channel.CaptionDescription)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html
+type Channel_CaptionDescription struct {
+
+ // CaptionSelectorName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-captionselectorname
+ CaptionSelectorName *types.Value `json:"CaptionSelectorName,omitempty"`
+
+ // DestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-destinationsettings
+ DestinationSettings *Channel_CaptionDestinationSettings `json:"DestinationSettings,omitempty"`
+
+ // LanguageCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-languagecode
+ LanguageCode *types.Value `json:"LanguageCode,omitempty"`
+
+ // LanguageDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-languagedescription
+ LanguageDescription *types.Value `json:"LanguageDescription,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_CaptionDescription) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.CaptionDescription"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_captiondestinationsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_captiondestinationsettings.go
new file mode 100644
index 0000000000..2c8d9e1a8f
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_captiondestinationsettings.go
@@ -0,0 +1,95 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_CaptionDestinationSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.CaptionDestinationSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html
+type Channel_CaptionDestinationSettings struct {
+
+ // AribDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-aribdestinationsettings
+ AribDestinationSettings *Channel_AribDestinationSettings `json:"AribDestinationSettings,omitempty"`
+
+ // BurnInDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-burnindestinationsettings
+ BurnInDestinationSettings *Channel_BurnInDestinationSettings `json:"BurnInDestinationSettings,omitempty"`
+
+ // DvbSubDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-dvbsubdestinationsettings
+ DvbSubDestinationSettings *Channel_DvbSubDestinationSettings `json:"DvbSubDestinationSettings,omitempty"`
+
+ // EbuTtDDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-ebuttddestinationsettings
+ EbuTtDDestinationSettings *Channel_EbuTtDDestinationSettings `json:"EbuTtDDestinationSettings,omitempty"`
+
+ // EmbeddedDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-embeddeddestinationsettings
+ EmbeddedDestinationSettings *Channel_EmbeddedDestinationSettings `json:"EmbeddedDestinationSettings,omitempty"`
+
+ // EmbeddedPlusScte20DestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-embeddedplusscte20destinationsettings
+ EmbeddedPlusScte20DestinationSettings *Channel_EmbeddedPlusScte20DestinationSettings `json:"EmbeddedPlusScte20DestinationSettings,omitempty"`
+
+ // RtmpCaptionInfoDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-rtmpcaptioninfodestinationsettings
+ RtmpCaptionInfoDestinationSettings *Channel_RtmpCaptionInfoDestinationSettings `json:"RtmpCaptionInfoDestinationSettings,omitempty"`
+
+ // Scte20PlusEmbeddedDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-scte20plusembeddeddestinationsettings
+ Scte20PlusEmbeddedDestinationSettings *Channel_Scte20PlusEmbeddedDestinationSettings `json:"Scte20PlusEmbeddedDestinationSettings,omitempty"`
+
+ // Scte27DestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-scte27destinationsettings
+ Scte27DestinationSettings *Channel_Scte27DestinationSettings `json:"Scte27DestinationSettings,omitempty"`
+
+ // SmpteTtDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-smptettdestinationsettings
+ SmpteTtDestinationSettings *Channel_SmpteTtDestinationSettings `json:"SmpteTtDestinationSettings,omitempty"`
+
+ // TeletextDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-teletextdestinationsettings
+ TeletextDestinationSettings *Channel_TeletextDestinationSettings `json:"TeletextDestinationSettings,omitempty"`
+
+ // TtmlDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-ttmldestinationsettings
+ TtmlDestinationSettings *Channel_TtmlDestinationSettings `json:"TtmlDestinationSettings,omitempty"`
+
+ // WebvttDestinationSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-webvttdestinationsettings
+ WebvttDestinationSettings *Channel_WebvttDestinationSettings `json:"WebvttDestinationSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_CaptionDestinationSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.CaptionDestinationSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_captionlanguagemapping.go b/goformation/cloudformation/medialive/aws-medialive-channel_captionlanguagemapping.go
new file mode 100644
index 0000000000..2e52988c37
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_captionlanguagemapping.go
@@ -0,0 +1,47 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_CaptionLanguageMapping AWS CloudFormation Resource (AWS::MediaLive::Channel.CaptionLanguageMapping)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html
+type Channel_CaptionLanguageMapping struct {
+
+ // CaptionChannel AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html#cfn-medialive-channel-captionlanguagemapping-captionchannel
+ CaptionChannel *types.Value `json:"CaptionChannel,omitempty"`
+
+ // LanguageCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html#cfn-medialive-channel-captionlanguagemapping-languagecode
+ LanguageCode *types.Value `json:"LanguageCode,omitempty"`
+
+ // LanguageDescription AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html#cfn-medialive-channel-captionlanguagemapping-languagedescription
+ LanguageDescription *types.Value `json:"LanguageDescription,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_CaptionLanguageMapping) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.CaptionLanguageMapping"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_captionrectangle.go b/goformation/cloudformation/medialive/aws-medialive-channel_captionrectangle.go
new file mode 100644
index 0000000000..098a43ab3f
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_captionrectangle.go
@@ -0,0 +1,52 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_CaptionRectangle AWS CloudFormation Resource (AWS::MediaLive::Channel.CaptionRectangle)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionrectangle.html
+type Channel_CaptionRectangle struct {
+
+ // Height AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionrectangle.html#cfn-medialive-channel-captionrectangle-height
+ Height *types.Value `json:"Height,omitempty"`
+
+ // LeftOffset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionrectangle.html#cfn-medialive-channel-captionrectangle-leftoffset
+ LeftOffset *types.Value `json:"LeftOffset,omitempty"`
+
+ // TopOffset AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionrectangle.html#cfn-medialive-channel-captionrectangle-topoffset
+ TopOffset *types.Value `json:"TopOffset,omitempty"`
+
+ // Width AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionrectangle.html#cfn-medialive-channel-captionrectangle-width
+ Width *types.Value `json:"Width,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_CaptionRectangle) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.CaptionRectangle"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_captionselector.go b/goformation/cloudformation/medialive/aws-medialive-channel_captionselector.go
new file mode 100644
index 0000000000..e6ef7b8fbd
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_captionselector.go
@@ -0,0 +1,47 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_CaptionSelector AWS CloudFormation Resource (AWS::MediaLive::Channel.CaptionSelector)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html
+type Channel_CaptionSelector struct {
+
+ // LanguageCode AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-languagecode
+ LanguageCode *types.Value `json:"LanguageCode,omitempty"`
+
+ // Name AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-name
+ Name *types.Value `json:"Name,omitempty"`
+
+ // SelectorSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-selectorsettings
+ SelectorSettings *Channel_CaptionSelectorSettings `json:"SelectorSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_CaptionSelector) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.CaptionSelector"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_captionselectorsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_captionselectorsettings.go
new file mode 100644
index 0000000000..bfce7d1e77
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_captionselectorsettings.go
@@ -0,0 +1,65 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_CaptionSelectorSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.CaptionSelectorSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html
+type Channel_CaptionSelectorSettings struct {
+
+ // AncillarySourceSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-ancillarysourcesettings
+ AncillarySourceSettings *Channel_AncillarySourceSettings `json:"AncillarySourceSettings,omitempty"`
+
+ // AribSourceSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-aribsourcesettings
+ AribSourceSettings *Channel_AribSourceSettings `json:"AribSourceSettings,omitempty"`
+
+ // DvbSubSourceSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-dvbsubsourcesettings
+ DvbSubSourceSettings *Channel_DvbSubSourceSettings `json:"DvbSubSourceSettings,omitempty"`
+
+ // EmbeddedSourceSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-embeddedsourcesettings
+ EmbeddedSourceSettings *Channel_EmbeddedSourceSettings `json:"EmbeddedSourceSettings,omitempty"`
+
+ // Scte20SourceSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-scte20sourcesettings
+ Scte20SourceSettings *Channel_Scte20SourceSettings `json:"Scte20SourceSettings,omitempty"`
+
+ // Scte27SourceSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-scte27sourcesettings
+ Scte27SourceSettings *Channel_Scte27SourceSettings `json:"Scte27SourceSettings,omitempty"`
+
+ // TeletextSourceSettings AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-teletextsourcesettings
+ TeletextSourceSettings *Channel_TeletextSourceSettings `json:"TeletextSourceSettings,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_CaptionSelectorSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.CaptionSelectorSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_cdiinputspecification.go b/goformation/cloudformation/medialive/aws-medialive-channel_cdiinputspecification.go
new file mode 100644
index 0000000000..3255c6473c
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_cdiinputspecification.go
@@ -0,0 +1,37 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_CdiInputSpecification AWS CloudFormation Resource (AWS::MediaLive::Channel.CdiInputSpecification)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-cdiinputspecification.html
+type Channel_CdiInputSpecification struct {
+
+ // Resolution AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-cdiinputspecification.html#cfn-medialive-channel-cdiinputspecification-resolution
+ Resolution *types.Value `json:"Resolution,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_CdiInputSpecification) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.CdiInputSpecification"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_colorspacepassthroughsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_colorspacepassthroughsettings.go
new file mode 100644
index 0000000000..15b6728a5e
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_colorspacepassthroughsettings.go
@@ -0,0 +1,30 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_ColorSpacePassthroughSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.ColorSpacePassthroughSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-colorspacepassthroughsettings.html
+type Channel_ColorSpacePassthroughSettings struct {
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_ColorSpacePassthroughSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.ColorSpacePassthroughSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_dvbnitsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_dvbnitsettings.go
new file mode 100644
index 0000000000..cfdf1b2109
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_dvbnitsettings.go
@@ -0,0 +1,47 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_DvbNitSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.DvbNitSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html
+type Channel_DvbNitSettings struct {
+
+ // NetworkId AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html#cfn-medialive-channel-dvbnitsettings-networkid
+ NetworkId *types.Value `json:"NetworkId,omitempty"`
+
+ // NetworkName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html#cfn-medialive-channel-dvbnitsettings-networkname
+ NetworkName *types.Value `json:"NetworkName,omitempty"`
+
+ // RepInterval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html#cfn-medialive-channel-dvbnitsettings-repinterval
+ RepInterval *types.Value `json:"RepInterval,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy
+ AWSCloudFormationDeletionPolicy policies.DeletionPolicy `json:"-"`
+
+ // AWSCloudFormationUpdateReplacePolicy represents a CloudFormation UpdateReplacePolicy
+ AWSCloudFormationUpdateReplacePolicy policies.UpdateReplacePolicy `json:"-"`
+
+ // AWSCloudFormationDependsOn stores the logical ID of the resources to be created before this resource
+ AWSCloudFormationDependsOn []string `json:"-"`
+
+ // AWSCloudFormationMetadata stores structured data associated with this resource
+ AWSCloudFormationMetadata map[string]interface{} `json:"-"`
+
+ // AWSCloudFormationCondition stores the logical ID of the condition that must be satisfied for this resource to be created
+ AWSCloudFormationCondition string `json:"-"`
+}
+
+// AWSCloudFormationType returns the AWS CloudFormation resource type
+func (r *Channel_DvbNitSettings) AWSCloudFormationType() string {
+ return "AWS::MediaLive::Channel.DvbNitSettings"
+}
diff --git a/goformation/cloudformation/medialive/aws-medialive-channel_dvbsdtsettings.go b/goformation/cloudformation/medialive/aws-medialive-channel_dvbsdtsettings.go
new file mode 100644
index 0000000000..4ce544ab5f
--- /dev/null
+++ b/goformation/cloudformation/medialive/aws-medialive-channel_dvbsdtsettings.go
@@ -0,0 +1,52 @@
+package medialive
+
+import (
+ "goformation/v4/cloudformation/types"
+
+ "goformation/v4/cloudformation/policies"
+)
+
+// Channel_DvbSdtSettings AWS CloudFormation Resource (AWS::MediaLive::Channel.DvbSdtSettings)
+// See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html
+type Channel_DvbSdtSettings struct {
+
+ // OutputSdt AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html#cfn-medialive-channel-dvbsdtsettings-outputsdt
+ OutputSdt *types.Value `json:"OutputSdt,omitempty"`
+
+ // RepInterval AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html#cfn-medialive-channel-dvbsdtsettings-repinterval
+ RepInterval *types.Value `json:"RepInterval,omitempty"`
+
+ // ServiceName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html#cfn-medialive-channel-dvbsdtsettings-servicename
+ ServiceName *types.Value `json:"ServiceName,omitempty"`
+
+ // ServiceProviderName AWS CloudFormation Property
+ // Required: false
+ // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html#cfn-medialive-channel-dvbsdtsettings-serviceprovidername
+ ServiceProviderName *types.Value `json:"ServiceProviderName,omitempty"`
+
+ // AWSCloudFormationDeletionPolicy represents a CloudFormation DeletionPolicy